diff --git a/Content.Client/Store/Ui/StoreMenu.xaml b/Content.Client/Store/Ui/StoreMenu.xaml index fc4cbe444f..7073d0c678 100644 --- a/Content.Client/Store/Ui/StoreMenu.xaml +++ b/Content.Client/Store/Ui/StoreMenu.xaml @@ -3,7 +3,7 @@ xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client" Title="{Loc 'store-ui-default-title'}" MinSize="512 512" - SetSize="512 512"> + SetSize="768 512"> diff --git a/Content.Server/Magic/MagicSystem.cs b/Content.Server/Magic/MagicSystem.cs index 811fa96bb9..c970588ad7 100644 --- a/Content.Server/Magic/MagicSystem.cs +++ b/Content.Server/Magic/MagicSystem.cs @@ -1,5 +1,6 @@ using System.Linq; using System.Numerics; +using Content.Server._White.Wizard.Magic; using Content.Server.Body.Components; using Content.Server.Body.Systems; using Content.Server.Chat.Systems; @@ -44,6 +45,7 @@ public sealed class MagicSystem : EntitySystem [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly WizardSpellsSystem _wizardSpells = default!; public override void Initialize() { @@ -157,7 +159,7 @@ public sealed class MagicSystem : EntitySystem private void OnKnockSpell(KnockSpellEvent args) { - if (args.Handled) + if (!_wizardSpells.CanCast(args)) // WD EDIT return; args.Handled = true; @@ -180,7 +182,7 @@ public sealed class MagicSystem : EntitySystem private void OnSmiteSpell(SmiteSpellEvent ev) { - if (ev.Handled) + if (!_wizardSpells.CanCast(ev)) // WD EDIT return; ev.Handled = true; diff --git a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs index 2dfa6ca016..5a1c0ef886 100644 --- a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs +++ b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs @@ -736,7 +736,7 @@ public sealed class WizardSpellsSystem : EntitySystem RaiseLocalEvent(uid, new EnergyDomeClothesTurnOffEvent()); } - private bool CanCast(BaseActionEvent msg) + public bool CanCast(BaseActionEvent msg) { return !msg.Handled && CheckRequirements(msg.Action, msg.Performer) && !_statusEffectsSystem.HasStatusEffect(msg.Performer, "Incorporeal"); diff --git a/Content.Server/_White/Wizard/Teleport/TeleportLocationSystem.cs b/Content.Server/_White/Wizard/Teleport/TeleportLocationSystem.cs index 6091017938..0a808b6fe6 100644 --- a/Content.Server/_White/Wizard/Teleport/TeleportLocationSystem.cs +++ b/Content.Server/_White/Wizard/Teleport/TeleportLocationSystem.cs @@ -1,11 +1,17 @@ using Content.Server.Pinpointer; +using Content.Server.Station.Systems; using Content.Server.Warps; +using Content.Shared.Coordinates.Helpers; +using Content.Shared.Maps; +using Content.Shared.Physics; namespace Content.Server._White.Wizard.Teleport; public sealed class TeleportLocationSystem : EntitySystem { [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly StationSystem _station = default!; + [Dependency] private readonly TurfSystem _turf = default!; public override void Initialize() { @@ -20,10 +26,30 @@ public sealed class TeleportLocationSystem : EntitySystem if (!TryComp(ent, out WarpPointComponent? warpPoint) || warpPoint.Location == null) return; - var newEnt = Spawn(null, Transform(ent).Coordinates); - var xForm = EnsureComp(newEnt); - _transformSystem.AttachToGridOrMap(newEnt, xForm); + var xForm = Transform(ent); + + if (!CanTeleport(ent, xForm)) + return; + + var newEnt = Spawn(null, xForm.Coordinates); + var newXForm = EnsureComp(newEnt); + _transformSystem.AttachToGridOrMap(newEnt, newXForm); var location = EnsureComp(newEnt); location.Location = warpPoint.Location; } + + public bool CanTeleport(EntityUid uid, TransformComponent xForm) + { + var station = _station.GetOwningStation(uid, xForm); + + if (!HasComp(station)) + return false; + + var turf = xForm.Coordinates.SnapToGrid(EntityManager).GetTileRef(EntityManager); + + if (turf == null) + return false; + + return !_turf.IsTileBlocked(turf.Value, CollisionGroup.Impassable); + } } diff --git a/Content.Server/_White/Wizard/Teleport/TeleportLocationTargetStationComponent.cs b/Content.Server/_White/Wizard/Teleport/TeleportLocationTargetStationComponent.cs new file mode 100644 index 0000000000..bb6a106a17 --- /dev/null +++ b/Content.Server/_White/Wizard/Teleport/TeleportLocationTargetStationComponent.cs @@ -0,0 +1,6 @@ +namespace Content.Server._White.Wizard.Teleport; + +[RegisterComponent] +public sealed partial class TeleportLocationTargetStationComponent : Component +{ +} diff --git a/Content.Server/_White/Wizard/Teleport/TeleportSpellEui.cs b/Content.Server/_White/Wizard/Teleport/TeleportSpellEui.cs index 83235d141b..f9bb440233 100644 --- a/Content.Server/_White/Wizard/Teleport/TeleportSpellEui.cs +++ b/Content.Server/_White/Wizard/Teleport/TeleportSpellEui.cs @@ -1,7 +1,6 @@ using System.Linq; using Content.Server.EUI; using Content.Server.Popups; -using Content.Server.Station.Systems; using Content.Shared._White.Wizard.Teleport; using Content.Shared.Eui; using Robust.Shared.Timing; @@ -13,7 +12,7 @@ public sealed class TeleportSpellEui : BaseEui { [Dependency] private readonly EntityManager _entityManager = default!; private readonly SharedTransformSystem _transformSystem; - private readonly StationSystem _station; + private readonly TeleportLocationSystem _teleportLocation; private readonly PopupSystem _popupSystem; private readonly EntityUid _performer; @@ -25,7 +24,7 @@ public sealed class TeleportSpellEui : BaseEui IoCManager.InjectDependencies(this); _transformSystem = _entityManager.System(); - _station = _entityManager.System(); + _teleportLocation = _entityManager.System(); _popupSystem = _entityManager.System(); _performer = performer; @@ -40,12 +39,8 @@ public sealed class TeleportSpellEui : BaseEui while (locationQuery.MoveNext(out var locationUid, out var locationComponent, out var transformComponent)) { - var station = _station.GetOwningStation(locationUid, transformComponent); - if (_entityManager.EntityQuery(true) - .Any(wizardRule => wizardRule.TargetStation == station)) - { + if (_teleportLocation.CanTeleport(locationUid, transformComponent)) state.Locations.Add((int) locationUid, locationComponent.Location); - } } return state; diff --git a/Content.Server/_White/Wizard/WizardRuleComponent.cs b/Content.Server/_White/Wizard/WizardRuleComponent.cs index dd37c8128a..271dffcbca 100644 --- a/Content.Server/_White/Wizard/WizardRuleComponent.cs +++ b/Content.Server/_White/Wizard/WizardRuleComponent.cs @@ -14,7 +14,7 @@ public sealed partial class WizardRuleComponent : Component { public readonly List WizardMinds = new(); - [ViewVariables(VVAccess.ReadWrite)] + [ViewVariables] public EntityUid? TargetStation; [DataField("minPlayers")] diff --git a/Content.Server/_White/Wizard/WizardRuleSystem.cs b/Content.Server/_White/Wizard/WizardRuleSystem.cs index fedc51e296..c5b45ef761 100644 --- a/Content.Server/_White/Wizard/WizardRuleSystem.cs +++ b/Content.Server/_White/Wizard/WizardRuleSystem.cs @@ -310,7 +310,7 @@ public sealed class WizardRuleSystem : GameRuleSystem if (meta.EntityPrototype?.ID != component.SpawnPointProto.Id) continue; - if (xform.ParentUid != component.ShuttleMap) + if (xform.MapUid != component.ShuttleMap) continue; spawn = xform.Coordinates; diff --git a/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl b/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl index a22dbfb0f8..40c0ac5cb9 100644 --- a/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/scrolls.ftl @@ -15,6 +15,7 @@ scroll-component-clown = бананы scroll-component-silence = тишину scroll-component-recall = призыв scroll-component-teleport = телепортацию +scroll-component-smite = кару ent-BaseScroll = магический свиток .desc = Этот древний пергамент, ставший реликвией в арканных преданиях, хранит в себе бесчисленные мистические заклятия и забытые заклинания. @@ -46,3 +47,5 @@ ent-ScrollInstantRecall = свиток мгновенного призыва .desc = { ent-BaseScroll.desc } ent-ScrollTeleport = свиток телепортации .desc = { ent-BaseScroll.desc } +ent-ScrollSmite = свиток кары + .desc = { ent-BaseScroll.desc } diff --git a/Resources/Locale/ru-RU/_white/wizard/wizard.ftl b/Resources/Locale/ru-RU/_white/wizard/wizard.ftl index b145d0d95f..ee9f0461b4 100644 --- a/Resources/Locale/ru-RU/_white/wizard/wizard.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/wizard.ftl @@ -20,3 +20,13 @@ magic-component-missing-req = Недостающие требования! Ва ent-WizardSurviveObjective = Переживете смену, устроив как можно больше хаоса. .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 = Магические предметы diff --git a/Resources/Maps/White/Shuttles/wizard.yml b/Resources/Maps/White/Shuttles/wizard.yml index 65bdc21b2d..0efc2f61c2 100644 --- a/Resources/Maps/White/Shuttles/wizard.yml +++ b/Resources/Maps/White/Shuttles/wizard.yml @@ -455,13 +455,15 @@ entities: -1,-4: 0: 65535 -1,-3: - 0: 65535 + 0: 65527 + 1: 8 -1,-2: - 0: 65535 + 0: 65527 + 1: 8 0,-4: 0: 62271 - 1: 192 - 2: 3072 + 2: 192 + 3: 3072 0,-3: 0: 65535 0,-2: @@ -538,6 +540,29 @@ entities: - 0 - 0 - 0 + - volume: 2500 + temperature: 293.14975 + moles: + - 20.078888 + - 75.53487 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 - volume: 2500 temperature: 293.15 moles: @@ -2013,48 +2038,48 @@ entities: parent: 2 - proto: ClothingHeadHatRealWizardFancyAlt entities: - - uid: 274 + - uid: 273 components: - type: Transform pos: -2.571265,8.784239 parent: 2 - proto: ClothingHeadHatWitch1 entities: - - uid: 275 + - uid: 274 components: - type: Transform pos: -5.52865,-9.359842 parent: 2 - proto: ClothingMaskGasChameleon entities: - - uid: 276 + - uid: 275 components: - type: Transform pos: -9.537922,-3.3987489 parent: 2 - proto: ClothingUniformJumpskirtColorBlack entities: - - uid: 277 + - uid: 276 components: - type: Transform pos: -5.617341,-9.575869 parent: 2 - proto: ClothingUniformJumpsuitColorBlack entities: - - uid: 278 + - uid: 277 components: - type: Transform pos: -5.429654,-9.555006 parent: 2 - proto: ComfyChair entities: - - uid: 279 + - uid: 278 components: - type: Transform rot: 1.5707963267948966 rad pos: -7.5,3.5 parent: 2 - - uid: 280 + - uid: 279 components: - type: Transform rot: -1.5707963267948966 rad @@ -2062,49 +2087,49 @@ entities: parent: 2 - proto: ComputerIFFSyndicate entities: - - uid: 281 + - uid: 280 components: - type: Transform pos: -1.5,10.5 parent: 2 - proto: ComputerShuttle entities: - - uid: 282 + - uid: 281 components: - type: Transform pos: -0.5,10.5 parent: 2 - proto: ComputerSurveillanceWirelessCameraMonitor entities: - - uid: 283 + - uid: 282 components: - type: Transform pos: -3.5,6.5 parent: 2 - proto: CrayonBox entities: - - uid: 284 + - uid: 283 components: - type: Transform pos: -3.8145962,2.6666646 parent: 2 - proto: CrayonRainbow entities: - - uid: 285 + - uid: 284 components: - type: Transform pos: -3.6894722,2.437179 parent: 2 - proto: DiceBag entities: - - uid: 286 + - uid: 285 components: - type: Transform pos: 4.037085,4.423369 parent: 2 - proto: Dresser entities: - - uid: 273 + - uid: 286 components: - type: Transform pos: 0.5,-11.5 @@ -3940,107 +3965,16 @@ entities: - type: Transform pos: 7.5,3.5 parent: 2 -- proto: ScrollArc - entities: - - uid: 598 - components: - - type: Transform - pos: 1.6040134,-1.2683926 - parent: 2 -- proto: ScrollBananaTouch - entities: - - uid: 599 - components: - - type: Transform - pos: 1.6251822,-2.5377865 - parent: 2 -- proto: ScrollBlink - entities: - - uid: 600 - components: - - type: Transform - pos: 1.6251822,-2.2415943 - parent: 2 -- proto: ScrollCards - entities: - - uid: 601 - components: - - type: Transform - pos: 1.6040134,-2.0300293 - parent: 2 -- proto: ScrollCluwneCurse - entities: - - uid: 602 - components: - - type: Transform - pos: 1.6463518,-1.6492105 - parent: 2 -- proto: ScrollEmp - entities: - - uid: 603 - components: - - type: Transform - pos: 1.5828438,-0.99335766 - parent: 2 -- proto: ScrollEtherealJaunt - entities: - - uid: 604 - components: - - type: Transform - pos: 1.5405054,-0.7606354 - parent: 2 -- proto: ScrollFireball - entities: - - uid: 605 - components: - - type: Transform - pos: -2.5028415,-2.4954739 - parent: 2 -- proto: ScrollForce - entities: - - uid: 606 - components: - - type: Transform - pos: -2.5028415,-2.1358118 - parent: 2 -- proto: ScrollForcewall - entities: - - uid: 607 - components: - - type: Transform - pos: -2.460503,-1.8396206 - parent: 2 -- proto: ScrollInstantRecall - entities: - - uid: 608 - components: - - type: Transform - pos: -2.5028415,-1.5222716 - parent: 2 -- proto: ScrollKnock - entities: - - uid: 609 - components: - - type: Transform - pos: -2.5028415,-1.1414533 - parent: 2 -- proto: ScrollMimeTouch - entities: - - uid: 610 - components: - - type: Transform - pos: -2.5028415,-0.908731 - parent: 2 - proto: ScrollTeleport entities: - - uid: 611 + - uid: 598 components: - type: Transform pos: 1.484683,8.741926 parent: 2 - proto: SinkWide entities: - - uid: 612 + - uid: 599 components: - type: Transform rot: 1.5707963267948966 rad @@ -4048,47 +3982,54 @@ entities: parent: 2 - proto: Skub entities: - - uid: 613 + - uid: 600 components: - type: Transform pos: 4.572705,-11.394358 parent: 2 - proto: SMESBasic entities: - - uid: 614 + - uid: 601 components: - type: Transform pos: -0.5,-15.5 parent: 2 - proto: SoapOmega entities: - - uid: 615 + - uid: 602 components: - type: Transform pos: 2.4979851,-9.465773 parent: 2 - proto: SpaceCash1000 entities: - - uid: 616 + - uid: 603 components: - type: Transform pos: 1.5532203,-0.27368456 parent: 2 - proto: SpawnMobBear entities: - - uid: 617 + - uid: 604 components: - type: Transform pos: 7.5,-0.5 parent: 2 - - uid: 618 + - uid: 605 components: - type: Transform pos: 6.5,-2.5 parent: 2 +- proto: SpawnPointWizard + entities: + - uid: 606 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 2 - proto: StealthBox entities: - - uid: 619 + - uid: 607 components: - type: Transform pos: -5.369279,-11.020669 @@ -4099,120 +4040,120 @@ entities: open: True - proto: SubstationBasic entities: - - uid: 620 + - uid: 608 components: - type: Transform pos: -1.5,-15.5 parent: 2 -- proto: SuitStorageWizard +- proto: SuitStorageBasic entities: - - uid: 621 + - uid: 609 components: - type: Transform pos: -0.5,-11.5 parent: 2 - proto: TableCarpet entities: - - uid: 622 + - uid: 610 components: - type: Transform pos: 3.5,4.5 parent: 2 - - uid: 623 + - uid: 611 components: - type: Transform pos: 4.5,3.5 parent: 2 - - uid: 624 + - uid: 612 components: - type: Transform pos: 4.5,4.5 parent: 2 - proto: TableStone entities: - - uid: 625 + - uid: 613 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-1.5 parent: 2 - - uid: 626 + - uid: 614 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-0.5 parent: 2 - - uid: 627 + - uid: 615 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-0.5 parent: 2 - - uid: 628 + - uid: 616 components: - type: Transform rot: -1.5707963267948966 rad pos: 1.5,-2.5 parent: 2 - - uid: 629 + - uid: 617 components: - type: Transform rot: -1.5707963267948966 rad pos: -2.5,-1.5 parent: 2 - - uid: 630 + - uid: 618 components: - type: Transform pos: -2.5,-2.5 parent: 2 - proto: TableWood entities: - - uid: 631 + - uid: 619 components: - type: Transform pos: 1.5,8.5 parent: 2 - - uid: 632 + - uid: 620 components: - type: Transform rot: 1.5707963267948966 rad pos: -2.5,9.5 parent: 2 - - uid: 633 + - uid: 621 components: - type: Transform rot: 1.5707963267948966 rad pos: 1.5,9.5 parent: 2 - - uid: 634 + - uid: 622 components: - type: Transform pos: -2.5,8.5 parent: 2 - - uid: 635 + - uid: 623 components: - type: Transform pos: -4.5,6.5 parent: 2 - - uid: 636 + - uid: 624 components: - type: Transform rot: 1.5707963267948966 rad pos: -7.5,2.5 parent: 2 - - uid: 637 + - uid: 625 components: - type: Transform rot: 1.5707963267948966 rad pos: -1.5,-9.5 parent: 2 - - uid: 638 + - uid: 626 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,2.5 parent: 2 - - uid: 639 + - uid: 627 components: - type: Transform rot: -1.5707963267948966 rad @@ -4220,60 +4161,60 @@ entities: parent: 2 - proto: TargetStrange entities: - - uid: 640 + - uid: 628 components: - type: Transform pos: -4.5,-11.5 parent: 2 - proto: Thruster entities: - - uid: 641 + - uid: 629 components: - type: Transform pos: -3.5,11.5 parent: 2 - - uid: 642 + - uid: 630 components: - type: Transform pos: 2.5,11.5 parent: 2 - - uid: 643 + - uid: 631 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,5.5 parent: 2 - - uid: 644 + - uid: 632 components: - type: Transform rot: 1.5707963267948966 rad pos: -8.5,5.5 parent: 2 - - uid: 645 + - uid: 633 components: - type: Transform rot: 3.141592653589793 rad pos: -4.5,-16.5 parent: 2 - - uid: 646 + - uid: 634 components: - type: Transform rot: 3.141592653589793 rad pos: -0.5,-17.5 parent: 2 - - uid: 647 + - uid: 635 components: - type: Transform rot: 3.141592653589793 rad pos: 3.5,-16.5 parent: 2 - - uid: 648 + - uid: 636 components: - type: Transform rot: -1.5707963267948966 rad pos: 7.5,-8.5 parent: 2 - - uid: 649 + - uid: 637 components: - type: Transform rot: 1.5707963267948966 rad @@ -4281,7 +4222,7 @@ entities: parent: 2 - proto: ToiletEmpty entities: - - uid: 650 + - uid: 638 components: - type: Transform rot: 3.141592653589793 rad @@ -4289,673 +4230,673 @@ entities: parent: 2 - proto: ToolboxEmergencyFilled entities: - - uid: 651 + - uid: 639 components: - type: Transform pos: -4.5425706,-10.5089035 parent: 2 - proto: VendingMachineClothing entities: - - uid: 652 + - uid: 640 components: - type: Transform pos: -1.5,2.5 parent: 2 - proto: VendingMachineCoffee entities: - - uid: 653 + - uid: 641 components: - type: Transform pos: 3.5,6.5 parent: 2 - proto: VendingMachineDiscount entities: - - uid: 654 + - uid: 642 components: - type: Transform pos: 0.5,2.5 parent: 2 - proto: VendingMachineGames entities: - - uid: 655 + - uid: 643 components: - type: Transform pos: 2.5,6.5 parent: 2 - proto: VendingMachineTankDispenserEVA entities: - - uid: 656 + - uid: 644 components: - type: Transform pos: -8.5,-3.5 parent: 2 - proto: WallDiamond entities: - - uid: 657 + - uid: 645 components: - type: Transform pos: -5.5,-6.5 parent: 2 - - uid: 658 + - uid: 646 components: - type: Transform pos: -3.5,-6.5 parent: 2 - - uid: 659 + - uid: 647 components: - type: Transform pos: -1.5,-6.5 parent: 2 - - uid: 660 + - uid: 648 components: - type: Transform pos: 0.5,-6.5 parent: 2 - - uid: 661 + - uid: 649 components: - type: Transform pos: 2.5,-6.5 parent: 2 - - uid: 662 + - uid: 650 components: - type: Transform pos: 4.5,-6.5 parent: 2 - proto: WallUranium entities: - - uid: 663 + - uid: 651 components: - type: Transform pos: -2.5,6.5 parent: 2 - - uid: 664 + - uid: 652 components: - type: Transform pos: 1.5,6.5 parent: 2 - - uid: 665 + - uid: 653 components: - type: Transform pos: 1.5,11.5 parent: 2 - - uid: 666 + - uid: 654 components: - type: Transform pos: 1.5,10.5 parent: 2 - - uid: 667 + - uid: 655 components: - type: Transform pos: 2.5,10.5 parent: 2 - - uid: 668 + - uid: 656 components: - type: Transform pos: 2.5,7.5 parent: 2 - - uid: 669 + - uid: 657 components: - type: Transform pos: 1.5,7.5 parent: 2 - - uid: 670 + - uid: 658 components: - type: Transform pos: -2.5,11.5 parent: 2 - - uid: 671 + - uid: 659 components: - type: Transform pos: -2.5,10.5 parent: 2 - - uid: 672 + - uid: 660 components: - type: Transform pos: -3.5,10.5 parent: 2 - - uid: 673 + - uid: 661 components: - type: Transform pos: -2.5,7.5 parent: 2 - - uid: 674 + - uid: 662 components: - type: Transform pos: -3.5,7.5 parent: 2 - - uid: 675 + - uid: 663 components: - type: Transform pos: -6.5,6.5 parent: 2 - - uid: 676 + - uid: 664 components: - type: Transform pos: -5.5,6.5 parent: 2 - - uid: 677 + - uid: 665 components: - type: Transform pos: -5.5,7.5 parent: 2 - - uid: 678 + - uid: 666 components: - type: Transform pos: -4.5,7.5 parent: 2 - - uid: 679 + - uid: 667 components: - type: Transform pos: -6.5,5.5 parent: 2 - - uid: 680 + - uid: 668 components: - type: Transform pos: -7.5,5.5 parent: 2 - - uid: 681 + - uid: 669 components: - type: Transform pos: -7.5,4.5 parent: 2 - - uid: 682 + - uid: 670 components: - type: Transform pos: -8.5,4.5 parent: 2 - - uid: 683 + - uid: 671 components: - type: Transform pos: -1.5,1.5 parent: 2 - - uid: 684 + - uid: 672 components: - type: Transform pos: 0.5,1.5 parent: 2 - - uid: 685 + - uid: 673 components: - type: Transform pos: 3.5,7.5 parent: 2 - - uid: 686 + - uid: 674 components: - type: Transform pos: 4.5,7.5 parent: 2 - - uid: 687 + - uid: 675 components: - type: Transform pos: 4.5,6.5 parent: 2 - - uid: 688 + - uid: 676 components: - type: Transform pos: 5.5,6.5 parent: 2 - - uid: 689 + - uid: 677 components: - type: Transform pos: 5.5,5.5 parent: 2 - - uid: 690 + - uid: 678 components: - type: Transform pos: 6.5,5.5 parent: 2 - - uid: 691 + - uid: 679 components: - type: Transform pos: 6.5,4.5 parent: 2 - - uid: 692 + - uid: 680 components: - type: Transform pos: 7.5,4.5 parent: 2 - - uid: 693 + - uid: 681 components: - type: Transform pos: 7.5,1.5 parent: 2 - - uid: 694 + - uid: 682 components: - type: Transform pos: 3.5,1.5 parent: 2 - - uid: 695 + - uid: 683 components: - type: Transform pos: 2.5,1.5 parent: 2 - - uid: 696 + - uid: 684 components: - type: Transform pos: 1.5,1.5 parent: 2 - - uid: 697 + - uid: 685 components: - type: Transform pos: 1.5,3.5 parent: 2 - - uid: 698 + - uid: 686 components: - type: Transform pos: 1.5,2.5 parent: 2 - - uid: 699 + - uid: 687 components: - type: Transform pos: 1.5,5.5 parent: 2 - - uid: 700 + - uid: 688 components: - type: Transform pos: -2.5,1.5 parent: 2 - - uid: 701 + - uid: 689 components: - type: Transform pos: -2.5,2.5 parent: 2 - - uid: 702 + - uid: 690 components: - type: Transform pos: -2.5,3.5 parent: 2 - - uid: 703 + - uid: 691 components: - type: Transform pos: -2.5,5.5 parent: 2 - - uid: 704 + - uid: 692 components: - type: Transform pos: -3.5,1.5 parent: 2 - - uid: 705 + - uid: 693 components: - type: Transform pos: -4.5,1.5 parent: 2 - - uid: 706 + - uid: 694 components: - type: Transform pos: -5.5,1.5 parent: 2 - - uid: 707 + - uid: 695 components: - type: Transform pos: -7.5,1.5 parent: 2 - - uid: 708 + - uid: 696 components: - type: Transform pos: -8.5,1.5 parent: 2 - - uid: 709 + - uid: 697 components: - type: Transform pos: 6.5,-7.5 parent: 2 - - uid: 710 + - uid: 698 components: - type: Transform pos: 7.5,-7.5 parent: 2 - - uid: 711 + - uid: 699 components: - type: Transform pos: -8.5,-4.5 parent: 2 - - uid: 712 + - uid: 700 components: - type: Transform pos: -8.5,-7.5 parent: 2 - - uid: 713 + - uid: 701 components: - type: Transform pos: 8.5,1.5 parent: 2 - - uid: 714 + - uid: 702 components: - type: Transform pos: 8.5,0.5 parent: 2 - - uid: 715 + - uid: 703 components: - type: Transform pos: 9.5,0.5 parent: 2 - - uid: 716 + - uid: 704 components: - type: Transform pos: 9.5,-3.5 parent: 2 - - uid: 717 + - uid: 705 components: - type: Transform pos: 8.5,-3.5 parent: 2 - - uid: 718 + - uid: 706 components: - type: Transform pos: 8.5,-4.5 parent: 2 - - uid: 719 + - uid: 707 components: - type: Transform pos: 7.5,-4.5 parent: 2 - - uid: 720 + - uid: 708 components: - type: Transform pos: 3.5,0.5 parent: 2 - - uid: 721 + - uid: 709 components: - type: Transform pos: 3.5,-3.5 parent: 2 - - uid: 722 + - uid: 710 components: - type: Transform pos: 3.5,-4.5 parent: 2 - - uid: 723 + - uid: 711 components: - type: Transform pos: 2.5,-4.5 parent: 2 - - uid: 724 + - uid: 712 components: - type: Transform pos: 1.5,-4.5 parent: 2 - - uid: 725 + - uid: 713 components: - type: Transform pos: -3.5,-17.5 parent: 2 - - uid: 726 + - uid: 714 components: - type: Transform pos: -3.5,-16.5 parent: 2 - - uid: 727 + - uid: 715 components: - type: Transform pos: 2.5,-17.5 parent: 2 - - uid: 728 + - uid: 716 components: - type: Transform pos: 2.5,-16.5 parent: 2 - - uid: 729 + - uid: 717 components: - type: Transform pos: -0.5,-16.5 parent: 2 - - uid: 730 + - uid: 718 components: - type: Transform pos: -2.5,-4.5 parent: 2 - - uid: 731 + - uid: 719 components: - type: Transform pos: -4.5,0.5 parent: 2 - - uid: 732 + - uid: 720 components: - type: Transform pos: -4.5,-3.5 parent: 2 - - uid: 733 + - uid: 721 components: - type: Transform pos: -4.5,-4.5 parent: 2 - - uid: 734 + - uid: 722 components: - type: Transform pos: -3.5,-4.5 parent: 2 - - uid: 735 + - uid: 723 components: - type: Transform pos: -7.5,-4.5 parent: 2 - - uid: 736 + - uid: 724 components: - type: Transform pos: -6.5,-4.5 parent: 2 - - uid: 737 + - uid: 725 components: - type: Transform pos: -7.5,-7.5 parent: 2 - - uid: 738 + - uid: 726 components: - type: Transform pos: -7.5,-8.5 parent: 2 - - uid: 739 + - uid: 727 components: - type: Transform pos: -6.5,-8.5 parent: 2 - - uid: 740 + - uid: 728 components: - type: Transform pos: -6.5,-9.5 parent: 2 - - uid: 741 + - uid: 729 components: - type: Transform pos: -6.5,-12.5 parent: 2 - - uid: 742 + - uid: 730 components: - type: Transform pos: -5.5,-12.5 parent: 2 - - uid: 743 + - uid: 731 components: - type: Transform pos: -5.5,-15.5 parent: 2 - - uid: 744 + - uid: 732 components: - type: Transform pos: -3.5,-15.5 parent: 2 - - uid: 745 + - uid: 733 components: - type: Transform pos: 2.5,-15.5 parent: 2 - - uid: 746 + - uid: 734 components: - type: Transform pos: 4.5,-15.5 parent: 2 - - uid: 747 + - uid: 735 components: - type: Transform pos: -4.5,-15.5 parent: 2 - - uid: 748 + - uid: 736 components: - type: Transform pos: 3.5,-15.5 parent: 2 - - uid: 749 + - uid: 737 components: - type: Transform pos: 4.5,-12.5 parent: 2 - - uid: 750 + - uid: 738 components: - type: Transform pos: 5.5,-12.5 parent: 2 - - uid: 751 + - uid: 739 components: - type: Transform pos: 6.5,-8.5 parent: 2 - - uid: 752 + - uid: 740 components: - type: Transform pos: 5.5,-8.5 parent: 2 - - uid: 753 + - uid: 741 components: - type: Transform pos: 5.5,-9.5 parent: 2 - - uid: 754 + - uid: 742 components: - type: Transform pos: -10.5,-4.5 parent: 2 - - uid: 755 + - uid: 743 components: - type: Transform pos: -10.5,1.5 parent: 2 - - uid: 756 + - uid: 744 components: - type: Transform pos: -9.5,-1.5 parent: 2 - - uid: 757 + - uid: 745 components: - type: Transform pos: -10.5,-1.5 parent: 2 - - uid: 758 + - uid: 746 components: - type: Transform pos: -7.5,-1.5 parent: 2 - - uid: 759 + - uid: 747 components: - type: Transform pos: -5.5,-8.5 parent: 2 - - uid: 760 + - uid: 748 components: - type: Transform pos: -3.5,-8.5 parent: 2 - - uid: 761 + - uid: 749 components: - type: Transform pos: -2.5,-8.5 parent: 2 - - uid: 762 + - uid: 750 components: - type: Transform pos: -1.5,-8.5 parent: 2 - - uid: 763 + - uid: 751 components: - type: Transform pos: 0.5,-8.5 parent: 2 - - uid: 764 + - uid: 752 components: - type: Transform pos: 1.5,-8.5 parent: 2 - - uid: 765 + - uid: 753 components: - type: Transform pos: 2.5,-8.5 parent: 2 - - uid: 766 + - uid: 754 components: - type: Transform pos: 4.5,-8.5 parent: 2 - - uid: 767 + - uid: 755 components: - type: Transform pos: -4.5,-12.5 parent: 2 - - uid: 768 + - uid: 756 components: - type: Transform pos: -2.5,-12.5 parent: 2 - - uid: 769 + - uid: 757 components: - type: Transform pos: -2.5,-11.5 parent: 2 - - uid: 770 + - uid: 758 components: - type: Transform pos: -2.5,-9.5 parent: 2 - - uid: 771 + - uid: 759 components: - type: Transform pos: -2.5,-10.5 parent: 2 - - uid: 772 + - uid: 760 components: - type: Transform pos: 1.5,-9.5 parent: 2 - - uid: 773 + - uid: 761 components: - type: Transform pos: 1.5,-10.5 parent: 2 - - uid: 774 + - uid: 762 components: - type: Transform pos: 1.5,-11.5 parent: 2 - - uid: 775 + - uid: 763 components: - type: Transform pos: 1.5,-12.5 parent: 2 - - uid: 776 + - uid: 764 components: - type: Transform pos: -1.5,-12.5 parent: 2 - - uid: 777 + - uid: 765 components: - type: Transform pos: 0.5,-12.5 parent: 2 - - uid: 778 + - uid: 766 components: - type: Transform pos: 2.5,-12.5 parent: 2 - - uid: 779 + - uid: 767 components: - type: Transform pos: 3.5,-12.5 parent: 2 - - uid: 780 + - uid: 768 components: - type: Transform pos: -8.5,-1.5 parent: 2 - proto: WeaponCapacitorRecharger entities: - - uid: 781 + - uid: 769 components: - type: Transform pos: -2.5,9.5 diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml index 7c048777ea..d356b41577 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml @@ -545,6 +545,7 @@ Slash: 0.9 Piercing: 0.9 Heat: 0.9 + - type: WizardClothes #Organic Space Suit - type: entity diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index 296454f82e..c406983ca4 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -703,6 +703,7 @@ useRate: 0 - type: UseDelay delay: 10.0 + - type: WizardClothes #Ling Space Suit - type: entity diff --git a/Resources/Prototypes/Entities/Stations/base.yml b/Resources/Prototypes/Entities/Stations/base.yml index c3fbb998b2..da5875d2bc 100644 --- a/Resources/Prototypes/Entities/Stations/base.yml +++ b/Resources/Prototypes/Entities/Stations/base.yml @@ -120,4 +120,10 @@ id: BaseStationAllEventsEligible abstract: true components: - - type: StationEventEligible # For when someone makes this more granular in the future. \ No newline at end of file + - type: StationEventEligible # For when someone makes this more granular in the future. + +- type: entity + id: BaseStationTeleportLocation + abstract: true + components: + - type: TeleportLocationTargetStation diff --git a/Resources/Prototypes/Entities/Stations/nanotrasen.yml b/Resources/Prototypes/Entities/Stations/nanotrasen.yml index ab885b03e5..c1d7333db1 100644 --- a/Resources/Prototypes/Entities/Stations/nanotrasen.yml +++ b/Resources/Prototypes/Entities/Stations/nanotrasen.yml @@ -25,6 +25,7 @@ - BaseStationSiliconLawCrewsimov - BaseStationAllEventsEligible - BaseStationNanotrasen + - BaseStationTeleportLocation noSpawn: true components: - type: Transform diff --git a/Resources/Prototypes/Magic/knock_spell.yml b/Resources/Prototypes/Magic/knock_spell.yml index 612e7b175f..dc7b38117d 100644 --- a/Resources/Prototypes/Magic/knock_spell.yml +++ b/Resources/Prototypes/Magic/knock_spell.yml @@ -4,12 +4,11 @@ description: This spell opens nearby doors. noSpawn: true components: - - type: Magic - requiresClothes: false - type: InstantAction useDelay: 8 itemIconStyle: BigAction checkCanInteract: false + alwaysPlaySound: false icon: sprite: Objects/Magic/magicactions.rsi state: knock diff --git a/Resources/Prototypes/Magic/smite_spells.yml b/Resources/Prototypes/Magic/smite_spells.yml index e629e56505..55d3e8a293 100644 --- a/Resources/Prototypes/Magic/smite_spells.yml +++ b/Resources/Prototypes/Magic/smite_spells.yml @@ -1,9 +1,11 @@ -- type: entity +- type: entity id: ActionSmite name: Smite description: Instantly gibs a target. noSpawn: true components: + - type: Magic + requiresClothes: true - type: EntityTargetAction useDelay: 60 itemIconStyle: BigAction @@ -12,6 +14,7 @@ - Body canTargetSelf: false interactOnMiss: false + alwaysPlaySound: false sound: !type:SoundPathSpecifier path: /Audio/Magic/disintegrate.ogg icon: diff --git a/Resources/Prototypes/Magic/white.yml b/Resources/Prototypes/Magic/white.yml index 4e1e4831fe..19f55b7f49 100644 --- a/Resources/Prototypes/Magic/white.yml +++ b/Resources/Prototypes/Magic/white.yml @@ -217,6 +217,9 @@ noSpawn: true components: - type: EntityTargetAction + whitelist: + components: + - HumanoidAppearance canTargetSelf: false range: 3 useDelay: 60 @@ -233,6 +236,9 @@ noSpawn: true components: - type: EntityTargetAction + whitelist: + components: + - HumanoidAppearance canTargetSelf: false range: 3 useDelay: 30 @@ -249,6 +255,9 @@ noSpawn: true components: - type: EntityTargetAction + whitelist: + components: + - HumanoidAppearance canTargetSelf: false range: 3 useDelay: 30 @@ -278,8 +287,6 @@ name: Teleport noSpawn: true components: - - type: Magic - requiresClothes: true - type: InstantAction checkCanInteract: false useDelay: 60 diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml index acd7c8ea2e..1340f789fd 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml @@ -36,7 +36,6 @@ - HolyKatana - MultiverseBlade - VorpalScythe - - HighFrequencyBlade - SpellBlade - PossessedBlade - ChainsawHand @@ -196,29 +195,6 @@ sprite: White/Objects/Weapons/Chaplain/scythe-inhands.rsi - 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 name: клинок заклинаний parent: HolyKatana diff --git a/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml b/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml index da08feacfa..ab691c602a 100644 --- a/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml +++ b/Resources/Prototypes/_White/Objects/Scrolls/scrolls.yml @@ -142,3 +142,12 @@ - type: Scroll actionId: ActionTeleportSpell learnPopup: scroll-component-teleport + +- type: entity + id: ScrollSmite + parent: BaseScroll + name: "Smite scroll" + components: + - type: Scroll + actionId: ActionSmite + learnPopup: scroll-component-smite diff --git a/Resources/Prototypes/_White/Wizard/magic_items.yml b/Resources/Prototypes/_White/Wizard/magic_items.yml new file mode 100644 index 0000000000..446f860ea2 --- /dev/null +++ b/Resources/Prototypes/_White/Wizard/magic_items.yml @@ -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 diff --git a/Resources/Prototypes/_White/Wizard/spellbook.yml b/Resources/Prototypes/_White/Wizard/spellbook.yml new file mode 100644 index 0000000000..f1cfda215f --- /dev/null +++ b/Resources/Prototypes/_White/Wizard/spellbook.yml @@ -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 diff --git a/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml b/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml new file mode 100644 index 0000000000..df0339e937 --- /dev/null +++ b/Resources/Prototypes/_White/Wizard/spellbook_catalog.yml @@ -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 diff --git a/Resources/Prototypes/_White/Wizard/wizard.yml b/Resources/Prototypes/_White/Wizard/wizard.yml index 67742536d1..7fec85d92a 100644 --- a/Resources/Prototypes/_White/Wizard/wizard.yml +++ b/Resources/Prototypes/_White/Wizard/wizard.yml @@ -42,6 +42,7 @@ head: ClothingHeadHatRealWizardFancy outerClothing: ClothingOuterRealWizardFancy shoes: ClothingShoesWizard + pocket1: SpellBook innerClothingSkirt: ClothingUniformJumpskirtColorDarkBlue satchel: ClothingBackpackSatchelFilled duffelbag: ClothingBackpackDuffelFilled