Magic 4 (#345)
* - fix: Fix teleport scroll. * - add: Spell book. * - add: Smite scroll & update shuttle. * - tweak: Tweak cost.
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
||||||
Title="{Loc 'store-ui-default-title'}"
|
Title="{Loc 'store-ui-default-title'}"
|
||||||
MinSize="512 512"
|
MinSize="512 512"
|
||||||
SetSize="512 512">
|
SetSize="768 512">
|
||||||
<BoxContainer Orientation="Vertical">
|
<BoxContainer Orientation="Vertical">
|
||||||
<BoxContainer Orientation="Vertical" VerticalExpand="True">
|
<BoxContainer Orientation="Vertical" VerticalExpand="True">
|
||||||
<BoxContainer Margin="4,4,4,4" Orientation="Horizontal">
|
<BoxContainer Margin="4,4,4,4" Orientation="Horizontal">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
using Content.Server._White.Wizard.Magic;
|
||||||
using Content.Server.Body.Components;
|
using Content.Server.Body.Components;
|
||||||
using Content.Server.Body.Systems;
|
using Content.Server.Body.Systems;
|
||||||
using Content.Server.Chat.Systems;
|
using Content.Server.Chat.Systems;
|
||||||
@@ -44,6 +45,7 @@ public sealed class MagicSystem : EntitySystem
|
|||||||
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
||||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
[Dependency] private readonly ChatSystem _chat = default!;
|
[Dependency] private readonly ChatSystem _chat = default!;
|
||||||
|
[Dependency] private readonly WizardSpellsSystem _wizardSpells = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -157,7 +159,7 @@ public sealed class MagicSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnKnockSpell(KnockSpellEvent args)
|
private void OnKnockSpell(KnockSpellEvent args)
|
||||||
{
|
{
|
||||||
if (args.Handled)
|
if (!_wizardSpells.CanCast(args)) // WD EDIT
|
||||||
return;
|
return;
|
||||||
|
|
||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
@@ -180,7 +182,7 @@ public sealed class MagicSystem : EntitySystem
|
|||||||
|
|
||||||
private void OnSmiteSpell(SmiteSpellEvent ev)
|
private void OnSmiteSpell(SmiteSpellEvent ev)
|
||||||
{
|
{
|
||||||
if (ev.Handled)
|
if (!_wizardSpells.CanCast(ev)) // WD EDIT
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
|
|||||||
@@ -736,7 +736,7 @@ public sealed class WizardSpellsSystem : EntitySystem
|
|||||||
RaiseLocalEvent(uid, new EnergyDomeClothesTurnOffEvent());
|
RaiseLocalEvent(uid, new EnergyDomeClothesTurnOffEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool CanCast(BaseActionEvent msg)
|
public bool CanCast(BaseActionEvent msg)
|
||||||
{
|
{
|
||||||
return !msg.Handled && CheckRequirements(msg.Action, msg.Performer) &&
|
return !msg.Handled && CheckRequirements(msg.Action, msg.Performer) &&
|
||||||
!_statusEffectsSystem.HasStatusEffect(msg.Performer, "Incorporeal");
|
!_statusEffectsSystem.HasStatusEffect(msg.Performer, "Incorporeal");
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
using Content.Server.Pinpointer;
|
using Content.Server.Pinpointer;
|
||||||
|
using Content.Server.Station.Systems;
|
||||||
using Content.Server.Warps;
|
using Content.Server.Warps;
|
||||||
|
using Content.Shared.Coordinates.Helpers;
|
||||||
|
using Content.Shared.Maps;
|
||||||
|
using Content.Shared.Physics;
|
||||||
|
|
||||||
namespace Content.Server._White.Wizard.Teleport;
|
namespace Content.Server._White.Wizard.Teleport;
|
||||||
|
|
||||||
public sealed class TeleportLocationSystem : EntitySystem
|
public sealed class TeleportLocationSystem : EntitySystem
|
||||||
{
|
{
|
||||||
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
||||||
|
[Dependency] private readonly StationSystem _station = default!;
|
||||||
|
[Dependency] private readonly TurfSystem _turf = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -20,10 +26,30 @@ public sealed class TeleportLocationSystem : EntitySystem
|
|||||||
if (!TryComp(ent, out WarpPointComponent? warpPoint) || warpPoint.Location == null)
|
if (!TryComp(ent, out WarpPointComponent? warpPoint) || warpPoint.Location == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var newEnt = Spawn(null, Transform(ent).Coordinates);
|
var xForm = Transform(ent);
|
||||||
var xForm = EnsureComp<TransformComponent>(newEnt);
|
|
||||||
_transformSystem.AttachToGridOrMap(newEnt, xForm);
|
if (!CanTeleport(ent, xForm))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var newEnt = Spawn(null, xForm.Coordinates);
|
||||||
|
var newXForm = EnsureComp<TransformComponent>(newEnt);
|
||||||
|
_transformSystem.AttachToGridOrMap(newEnt, newXForm);
|
||||||
var location = EnsureComp<TeleportLocationComponent>(newEnt);
|
var location = EnsureComp<TeleportLocationComponent>(newEnt);
|
||||||
location.Location = warpPoint.Location;
|
location.Location = warpPoint.Location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool CanTeleport(EntityUid uid, TransformComponent xForm)
|
||||||
|
{
|
||||||
|
var station = _station.GetOwningStation(uid, xForm);
|
||||||
|
|
||||||
|
if (!HasComp<TeleportLocationTargetStationComponent>(station))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var turf = xForm.Coordinates.SnapToGrid(EntityManager).GetTileRef(EntityManager);
|
||||||
|
|
||||||
|
if (turf == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return !_turf.IsTileBlocked(turf.Value, CollisionGroup.Impassable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
namespace Content.Server._White.Wizard.Teleport;
|
||||||
|
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed partial class TeleportLocationTargetStationComponent : Component
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Content.Server.EUI;
|
using Content.Server.EUI;
|
||||||
using Content.Server.Popups;
|
using Content.Server.Popups;
|
||||||
using Content.Server.Station.Systems;
|
|
||||||
using Content.Shared._White.Wizard.Teleport;
|
using Content.Shared._White.Wizard.Teleport;
|
||||||
using Content.Shared.Eui;
|
using Content.Shared.Eui;
|
||||||
using Robust.Shared.Timing;
|
using Robust.Shared.Timing;
|
||||||
@@ -13,7 +12,7 @@ public sealed class TeleportSpellEui : BaseEui
|
|||||||
{
|
{
|
||||||
[Dependency] private readonly EntityManager _entityManager = default!;
|
[Dependency] private readonly EntityManager _entityManager = default!;
|
||||||
private readonly SharedTransformSystem _transformSystem;
|
private readonly SharedTransformSystem _transformSystem;
|
||||||
private readonly StationSystem _station;
|
private readonly TeleportLocationSystem _teleportLocation;
|
||||||
private readonly PopupSystem _popupSystem;
|
private readonly PopupSystem _popupSystem;
|
||||||
|
|
||||||
private readonly EntityUid _performer;
|
private readonly EntityUid _performer;
|
||||||
@@ -25,7 +24,7 @@ public sealed class TeleportSpellEui : BaseEui
|
|||||||
IoCManager.InjectDependencies(this);
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
_transformSystem = _entityManager.System<SharedTransformSystem>();
|
_transformSystem = _entityManager.System<SharedTransformSystem>();
|
||||||
_station = _entityManager.System<StationSystem>();
|
_teleportLocation = _entityManager.System<TeleportLocationSystem>();
|
||||||
_popupSystem = _entityManager.System<PopupSystem>();
|
_popupSystem = _entityManager.System<PopupSystem>();
|
||||||
|
|
||||||
_performer = performer;
|
_performer = performer;
|
||||||
@@ -40,12 +39,8 @@ public sealed class TeleportSpellEui : BaseEui
|
|||||||
|
|
||||||
while (locationQuery.MoveNext(out var locationUid, out var locationComponent, out var transformComponent))
|
while (locationQuery.MoveNext(out var locationUid, out var locationComponent, out var transformComponent))
|
||||||
{
|
{
|
||||||
var station = _station.GetOwningStation(locationUid, transformComponent);
|
if (_teleportLocation.CanTeleport(locationUid, transformComponent))
|
||||||
if (_entityManager.EntityQuery<WizardRuleComponent>(true)
|
|
||||||
.Any(wizardRule => wizardRule.TargetStation == station))
|
|
||||||
{
|
|
||||||
state.Locations.Add((int) locationUid, locationComponent.Location);
|
state.Locations.Add((int) locationUid, locationComponent.Location);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return state;
|
return state;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public sealed partial class WizardRuleComponent : Component
|
|||||||
{
|
{
|
||||||
public readonly List<EntityUid> WizardMinds = new();
|
public readonly List<EntityUid> WizardMinds = new();
|
||||||
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
[ViewVariables]
|
||||||
public EntityUid? TargetStation;
|
public EntityUid? TargetStation;
|
||||||
|
|
||||||
[DataField("minPlayers")]
|
[DataField("minPlayers")]
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ public sealed class WizardRuleSystem : GameRuleSystem<WizardRuleComponent>
|
|||||||
if (meta.EntityPrototype?.ID != component.SpawnPointProto.Id)
|
if (meta.EntityPrototype?.ID != component.SpawnPointProto.Id)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (xform.ParentUid != component.ShuttleMap)
|
if (xform.MapUid != component.ShuttleMap)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
spawn = xform.Coordinates;
|
spawn = xform.Coordinates;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ scroll-component-clown = бананы
|
|||||||
scroll-component-silence = тишину
|
scroll-component-silence = тишину
|
||||||
scroll-component-recall = призыв
|
scroll-component-recall = призыв
|
||||||
scroll-component-teleport = телепортацию
|
scroll-component-teleport = телепортацию
|
||||||
|
scroll-component-smite = кару
|
||||||
|
|
||||||
ent-BaseScroll = магический свиток
|
ent-BaseScroll = магический свиток
|
||||||
.desc = Этот древний пергамент, ставший реликвией в арканных преданиях, хранит в себе бесчисленные мистические заклятия и забытые заклинания.
|
.desc = Этот древний пергамент, ставший реликвией в арканных преданиях, хранит в себе бесчисленные мистические заклятия и забытые заклинания.
|
||||||
@@ -46,3 +47,5 @@ ent-ScrollInstantRecall = свиток мгновенного призыва
|
|||||||
.desc = { ent-BaseScroll.desc }
|
.desc = { ent-BaseScroll.desc }
|
||||||
ent-ScrollTeleport = свиток телепортации
|
ent-ScrollTeleport = свиток телепортации
|
||||||
.desc = { ent-BaseScroll.desc }
|
.desc = { ent-BaseScroll.desc }
|
||||||
|
ent-ScrollSmite = свиток кары
|
||||||
|
.desc = { ent-BaseScroll.desc }
|
||||||
|
|||||||
@@ -20,3 +20,13 @@ magic-component-missing-req = Недостающие требования! Ва
|
|||||||
|
|
||||||
ent-WizardSurviveObjective = Переживете смену, устроив как можно больше хаоса.
|
ent-WizardSurviveObjective = Переживете смену, устроив как можно больше хаоса.
|
||||||
.desc = Федерация Космических Волшебников отправила вас на станцию Nanotrasen, чтобы навести там смуту. Не разочаруйте их.
|
.desc = Федерация Космических Волшебников отправила вас на станцию Nanotrasen, чтобы навести там смуту. Не разочаруйте их.
|
||||||
|
|
||||||
|
ent-SpellBook = книга заклинаний
|
||||||
|
.desc = Неземной фолиант, излучающий силу.
|
||||||
|
|
||||||
|
store-currency-display-spell-point = Очки заклинаний
|
||||||
|
|
||||||
|
store-category-spells-attack = Атакующие заклинания
|
||||||
|
store-category-spells-defence = Защитные заклинания
|
||||||
|
store-category-spells-utility = Вспомогательные заклинания
|
||||||
|
store-category-magic-items = Магические предметы
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -545,6 +545,7 @@
|
|||||||
Slash: 0.9
|
Slash: 0.9
|
||||||
Piercing: 0.9
|
Piercing: 0.9
|
||||||
Heat: 0.9
|
Heat: 0.9
|
||||||
|
- type: WizardClothes
|
||||||
|
|
||||||
#Organic Space Suit
|
#Organic Space Suit
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -703,6 +703,7 @@
|
|||||||
useRate: 0
|
useRate: 0
|
||||||
- type: UseDelay
|
- type: UseDelay
|
||||||
delay: 10.0
|
delay: 10.0
|
||||||
|
- type: WizardClothes
|
||||||
|
|
||||||
#Ling Space Suit
|
#Ling Space Suit
|
||||||
- type: entity
|
- type: entity
|
||||||
|
|||||||
@@ -120,4 +120,10 @@
|
|||||||
id: BaseStationAllEventsEligible
|
id: BaseStationAllEventsEligible
|
||||||
abstract: true
|
abstract: true
|
||||||
components:
|
components:
|
||||||
- type: StationEventEligible # For when someone makes this more granular in the future.
|
- type: StationEventEligible # For when someone makes this more granular in the future.
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: BaseStationTeleportLocation
|
||||||
|
abstract: true
|
||||||
|
components:
|
||||||
|
- type: TeleportLocationTargetStation
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
- BaseStationSiliconLawCrewsimov
|
- BaseStationSiliconLawCrewsimov
|
||||||
- BaseStationAllEventsEligible
|
- BaseStationAllEventsEligible
|
||||||
- BaseStationNanotrasen
|
- BaseStationNanotrasen
|
||||||
|
- BaseStationTeleportLocation
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: Transform
|
- type: Transform
|
||||||
|
|||||||
@@ -4,12 +4,11 @@
|
|||||||
description: This spell opens nearby doors.
|
description: This spell opens nearby doors.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: Magic
|
|
||||||
requiresClothes: false
|
|
||||||
- type: InstantAction
|
- type: InstantAction
|
||||||
useDelay: 8
|
useDelay: 8
|
||||||
itemIconStyle: BigAction
|
itemIconStyle: BigAction
|
||||||
checkCanInteract: false
|
checkCanInteract: false
|
||||||
|
alwaysPlaySound: false
|
||||||
icon:
|
icon:
|
||||||
sprite: Objects/Magic/magicactions.rsi
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
state: knock
|
state: knock
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
- type: entity
|
- type: entity
|
||||||
id: ActionSmite
|
id: ActionSmite
|
||||||
name: Smite
|
name: Smite
|
||||||
description: Instantly gibs a target.
|
description: Instantly gibs a target.
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
|
- type: Magic
|
||||||
|
requiresClothes: true
|
||||||
- type: EntityTargetAction
|
- type: EntityTargetAction
|
||||||
useDelay: 60
|
useDelay: 60
|
||||||
itemIconStyle: BigAction
|
itemIconStyle: BigAction
|
||||||
@@ -12,6 +14,7 @@
|
|||||||
- Body
|
- Body
|
||||||
canTargetSelf: false
|
canTargetSelf: false
|
||||||
interactOnMiss: false
|
interactOnMiss: false
|
||||||
|
alwaysPlaySound: false
|
||||||
sound: !type:SoundPathSpecifier
|
sound: !type:SoundPathSpecifier
|
||||||
path: /Audio/Magic/disintegrate.ogg
|
path: /Audio/Magic/disintegrate.ogg
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -217,6 +217,9 @@
|
|||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: EntityTargetAction
|
- type: EntityTargetAction
|
||||||
|
whitelist:
|
||||||
|
components:
|
||||||
|
- HumanoidAppearance
|
||||||
canTargetSelf: false
|
canTargetSelf: false
|
||||||
range: 3
|
range: 3
|
||||||
useDelay: 60
|
useDelay: 60
|
||||||
@@ -233,6 +236,9 @@
|
|||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: EntityTargetAction
|
- type: EntityTargetAction
|
||||||
|
whitelist:
|
||||||
|
components:
|
||||||
|
- HumanoidAppearance
|
||||||
canTargetSelf: false
|
canTargetSelf: false
|
||||||
range: 3
|
range: 3
|
||||||
useDelay: 30
|
useDelay: 30
|
||||||
@@ -249,6 +255,9 @@
|
|||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: EntityTargetAction
|
- type: EntityTargetAction
|
||||||
|
whitelist:
|
||||||
|
components:
|
||||||
|
- HumanoidAppearance
|
||||||
canTargetSelf: false
|
canTargetSelf: false
|
||||||
range: 3
|
range: 3
|
||||||
useDelay: 30
|
useDelay: 30
|
||||||
@@ -278,8 +287,6 @@
|
|||||||
name: Teleport
|
name: Teleport
|
||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: Magic
|
|
||||||
requiresClothes: true
|
|
||||||
- type: InstantAction
|
- type: InstantAction
|
||||||
checkCanInteract: false
|
checkCanInteract: false
|
||||||
useDelay: 60
|
useDelay: 60
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
- HolyKatana
|
- HolyKatana
|
||||||
- MultiverseBlade
|
- MultiverseBlade
|
||||||
- VorpalScythe
|
- VorpalScythe
|
||||||
- HighFrequencyBlade
|
|
||||||
- SpellBlade
|
- SpellBlade
|
||||||
- PossessedBlade
|
- PossessedBlade
|
||||||
- ChainsawHand
|
- ChainsawHand
|
||||||
@@ -196,29 +195,6 @@
|
|||||||
sprite: White/Objects/Weapons/Chaplain/scythe-inhands.rsi
|
sprite: White/Objects/Weapons/Chaplain/scythe-inhands.rsi
|
||||||
- type: HolyWeapon
|
- type: HolyWeapon
|
||||||
|
|
||||||
- type: entity
|
|
||||||
name: высокочастотный клинок
|
|
||||||
parent: HolyKatana
|
|
||||||
id: HighFrequencyBlade
|
|
||||||
description: Клинок, способный отражать выстрелы.
|
|
||||||
components:
|
|
||||||
- type: Sprite
|
|
||||||
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
|
||||||
- type: MeleeWeapon
|
|
||||||
damage:
|
|
||||||
types:
|
|
||||||
Slash: 18
|
|
||||||
- type: Clothing
|
|
||||||
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
|
||||||
slots:
|
|
||||||
- back
|
|
||||||
- suitStorage
|
|
||||||
- type: Reflect
|
|
||||||
reflectProb: 0.33
|
|
||||||
- type: Item
|
|
||||||
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
|
||||||
- type: HolyWeapon
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: клинок заклинаний
|
name: клинок заклинаний
|
||||||
parent: HolyKatana
|
parent: HolyKatana
|
||||||
|
|||||||
@@ -142,3 +142,12 @@
|
|||||||
- type: Scroll
|
- type: Scroll
|
||||||
actionId: ActionTeleportSpell
|
actionId: ActionTeleportSpell
|
||||||
learnPopup: scroll-component-teleport
|
learnPopup: scroll-component-teleport
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: ScrollSmite
|
||||||
|
parent: BaseScroll
|
||||||
|
name: "Smite scroll"
|
||||||
|
components:
|
||||||
|
- type: Scroll
|
||||||
|
actionId: ActionSmite
|
||||||
|
learnPopup: scroll-component-smite
|
||||||
|
|||||||
23
Resources/Prototypes/_White/Wizard/magic_items.yml
Normal file
23
Resources/Prototypes/_White/Wizard/magic_items.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
- type: entity
|
||||||
|
name: высокочастотный клинок
|
||||||
|
parent: Katana
|
||||||
|
id: HighFrequencyBlade
|
||||||
|
description: Клинок, атакующий с невероятной быстротой, а также способный отражать выстрелы.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
||||||
|
- type: MeleeWeapon
|
||||||
|
autoAttack: true
|
||||||
|
attackRate: 4
|
||||||
|
damage:
|
||||||
|
types:
|
||||||
|
Slash: 10
|
||||||
|
- type: Clothing
|
||||||
|
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
||||||
|
slots:
|
||||||
|
- back
|
||||||
|
- suitStorage
|
||||||
|
- type: Reflect
|
||||||
|
reflectProb: 0.4
|
||||||
|
- type: Item
|
||||||
|
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
||||||
63
Resources/Prototypes/_White/Wizard/spellbook.yml
Normal file
63
Resources/Prototypes/_White/Wizard/spellbook.yml
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
- type: entity
|
||||||
|
id: SpellBook
|
||||||
|
parent: BaseItem
|
||||||
|
name: spell book
|
||||||
|
description: An unearthly tome that glows with power.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Misc/books.rsi
|
||||||
|
layers:
|
||||||
|
- state: paper
|
||||||
|
- state: cover_old
|
||||||
|
color: "#473F40"
|
||||||
|
- state: decor_wingette
|
||||||
|
color: "#352D2F"
|
||||||
|
- state: icon_stars
|
||||||
|
color: gold
|
||||||
|
- type: UserInterface
|
||||||
|
interfaces:
|
||||||
|
- key: enum.StoreUiKey.Key
|
||||||
|
type: StoreBoundUserInterface
|
||||||
|
- type: ActivatableUI
|
||||||
|
key: enum.StoreUiKey.Key
|
||||||
|
- type: Store
|
||||||
|
preset: StorePresetSpellBook
|
||||||
|
balance:
|
||||||
|
SpellPoint: 10
|
||||||
|
- type: GiftIgnore
|
||||||
|
|
||||||
|
- type: storePreset
|
||||||
|
id: StorePresetSpellBook
|
||||||
|
storeName: Spell Book
|
||||||
|
categories:
|
||||||
|
- AttackSpells
|
||||||
|
- DefenceSpells
|
||||||
|
- UtilitySpells
|
||||||
|
- MagicItems
|
||||||
|
currencyWhitelist:
|
||||||
|
- SpellPoint
|
||||||
|
|
||||||
|
- type: currency
|
||||||
|
id: SpellPoint
|
||||||
|
displayName: store-currency-display-spell-point
|
||||||
|
canWithdraw: false
|
||||||
|
|
||||||
|
- type: storeCategory
|
||||||
|
id: AttackSpells
|
||||||
|
name: store-category-spells-attack
|
||||||
|
priority: 0
|
||||||
|
|
||||||
|
- type: storeCategory
|
||||||
|
id: DefenceSpells
|
||||||
|
name: store-category-spells-defence
|
||||||
|
priority: 1
|
||||||
|
|
||||||
|
- type: storeCategory
|
||||||
|
id: UtilitySpells
|
||||||
|
name: store-category-spells-utility
|
||||||
|
priority: 2
|
||||||
|
|
||||||
|
- type: storeCategory
|
||||||
|
id: MagicItems
|
||||||
|
name: store-category-magic-items
|
||||||
|
priority: 3
|
||||||
249
Resources/Prototypes/_White/Wizard/spellbook_catalog.yml
Normal file
249
Resources/Prototypes/_White/Wizard/spellbook_catalog.yml
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
- type: listing
|
||||||
|
id: SpellBookFireball
|
||||||
|
name: spellbook-fireball-name
|
||||||
|
description: spellbook-fireball-desc
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: fireball
|
||||||
|
productEntity: ScrollFireball
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- AttackSpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookForcewall
|
||||||
|
name: spellbook-forcewall-name
|
||||||
|
description: spellbook-forcewall-desc
|
||||||
|
productEntity: ScrollForcewall
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: shield
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- DefenceSpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookKnock
|
||||||
|
name: spellbook-knock-name
|
||||||
|
description: spellbook-knock-desc
|
||||||
|
productEntity: ScrollKnock
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: knock
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookArc
|
||||||
|
name: spellbook-arc-name
|
||||||
|
description: spellbook-arc-desc
|
||||||
|
productEntity: ScrollArc
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: thunder
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- AttackSpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookForce
|
||||||
|
name: spellbook-force-name
|
||||||
|
description: spellbook-force-desc
|
||||||
|
productEntity: ScrollForce
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: push
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookCards
|
||||||
|
name: spellbook-cards-name
|
||||||
|
description: spellbook-cards-desc
|
||||||
|
productEntity: ScrollCards
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/card.rsi
|
||||||
|
state: icon
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- AttackSpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookBlink
|
||||||
|
name: spellbook-blink-name
|
||||||
|
description: spellbook-blink-desc
|
||||||
|
productEntity: ScrollBlink
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: blink
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookEtherealJaunt
|
||||||
|
name: spellbook-jaunt-name
|
||||||
|
description: spellbook-jaunt-desc
|
||||||
|
productEntity: ScrollEtherealJaunt
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: jaunt
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookEmp
|
||||||
|
name: spellbook-emp-name
|
||||||
|
description: spellbook-emp-desc
|
||||||
|
productEntity: ScrollEmp
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: emp_new
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- DefenceSpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookCluwneCurse
|
||||||
|
name: spellbook-cluwne-name
|
||||||
|
description: spellbook-cluwne-desc
|
||||||
|
productEntity: ScrollCluwneCurse
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: cluwne
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookBananaTouch
|
||||||
|
name: spellbook-clown-name
|
||||||
|
description: spellbook-clown-desc
|
||||||
|
productEntity: ScrollBananaTouch
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: clown
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookMimeTouch
|
||||||
|
name: spellbook-mime-name
|
||||||
|
description: spellbook-mime-desc
|
||||||
|
productEntity: ScrollMimeTouch
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: mime_curse
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookInstantRecall
|
||||||
|
name: spellbook-recall-name
|
||||||
|
description: spellbook-recall-desc
|
||||||
|
productEntity: ScrollInstantRecall
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: summons
|
||||||
|
cost:
|
||||||
|
SpellPoint: 1
|
||||||
|
categories:
|
||||||
|
- UtilitySpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookSmite
|
||||||
|
name: spellbook-smite-name
|
||||||
|
description: spellbook-smite-desc
|
||||||
|
productEntity: ScrollSmite
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Magic/magicactions.rsi
|
||||||
|
state: gib
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- AttackSpells
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookHardsuit
|
||||||
|
name: spellbook-hardsuit-name
|
||||||
|
description: spellbook-hardsuit-desc
|
||||||
|
productEntity: ClothingOuterHardsuitWizard
|
||||||
|
cost:
|
||||||
|
SpellPoint: 4
|
||||||
|
categories:
|
||||||
|
- MagicItems
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
|
|
||||||
|
- type: listing
|
||||||
|
id: SpellBookHighFrequencyBlade
|
||||||
|
name: spellbook-hfrequency-name
|
||||||
|
description: spellbook-hfrequency-desc
|
||||||
|
productEntity: HighFrequencyBlade
|
||||||
|
cost:
|
||||||
|
SpellPoint: 2
|
||||||
|
categories:
|
||||||
|
- MagicItems
|
||||||
|
conditions:
|
||||||
|
- !type:ListingLimitedStockCondition
|
||||||
|
stock: 1
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
head: ClothingHeadHatRealWizardFancy
|
head: ClothingHeadHatRealWizardFancy
|
||||||
outerClothing: ClothingOuterRealWizardFancy
|
outerClothing: ClothingOuterRealWizardFancy
|
||||||
shoes: ClothingShoesWizard
|
shoes: ClothingShoesWizard
|
||||||
|
pocket1: SpellBook
|
||||||
innerClothingSkirt: ClothingUniformJumpskirtColorDarkBlue
|
innerClothingSkirt: ClothingUniformJumpskirtColorDarkBlue
|
||||||
satchel: ClothingBackpackSatchelFilled
|
satchel: ClothingBackpackSatchelFilled
|
||||||
duffelbag: ClothingBackpackDuffelFilled
|
duffelbag: ClothingBackpackDuffelFilled
|
||||||
|
|||||||
Reference in New Issue
Block a user