diff --git a/Content.Client/Stylesheets/StyleNano.cs b/Content.Client/Stylesheets/StyleNano.cs index 673a14a2ac..ef7bed49d4 100644 --- a/Content.Client/Stylesheets/StyleNano.cs +++ b/Content.Client/Stylesheets/StyleNano.cs @@ -100,7 +100,7 @@ namespace Content.Client.Stylesheets public static readonly Color ButtonColorDefaultRed = Color.FromHex("#D43B3B"); public static readonly Color ButtonColorHovered = Color.FromHex("#7f6357"); public static readonly Color ButtonColorHoveredRed = Color.FromHex("#DF6B6B"); - public static readonly Color ButtonColorPressed = Color.FromHex("#6c4a3e"); + public static readonly Color ButtonColorPressed = Color.FromHex("#4a332b"); public static readonly Color ButtonColorDisabled = Color.FromHex("#3c3330"); public static readonly Color ButtonColorCautionDefault = Color.FromHex("#ab3232"); diff --git a/Content.Server/_CP14/Chemistry/ReagentEffect/CP14ManaChange.cs b/Content.Server/_CP14/Chemistry/ReagentEffect/CP14ManaChange.cs index 1d9aa1fab5..0b4537d580 100644 --- a/Content.Server/_CP14/Chemistry/ReagentEffect/CP14ManaChange.cs +++ b/Content.Server/_CP14/Chemistry/ReagentEffect/CP14ManaChange.cs @@ -1,4 +1,5 @@ using Content.Server._CP14.MagicEnergy; +using Content.Shared._CP14.MagicEnergy.Components; using Content.Shared.EntityEffects; using Content.Shared.FixedPoint; using JetBrains.Annotations; @@ -34,5 +35,12 @@ public sealed partial class CP14ManaChange : EntityEffect var magicSystem = args.EntityManager.System(); magicSystem.ChangeEnergy(args.TargetEntity, ManaDelta * scale, Safe); + + if (args.EntityManager.TryGetComponent(args.TargetEntity, + out var crystalSlot)) + { + var slotSystem = args.EntityManager.System(); + slotSystem.TryChangeEnergy(args.TargetEntity, ManaDelta * scale, crystalSlot); + } } } diff --git a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergyCrystalSlotSystem.cs b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergyCrystalSlotSystem.cs index 0c4db51092..81a0f6bd07 100644 --- a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergyCrystalSlotSystem.cs +++ b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergyCrystalSlotSystem.cs @@ -57,12 +57,15 @@ public sealed partial class CP14MagicEnergyCrystalSlotSystem : SharedCP14MagicEn if (!TryGetEnergyCrystalFromSlot(ent, out var crystalUid, out var crystalComp, ent.Comp)) return; - var scanEvent = new CP14MagicEnergyScanEvent(); - RaiseLocalEvent(args.Examiner, scanEvent); - - if (!scanEvent.CanScan) + if (!args.IsInDetailsRange) return; + //var scanEvent = new CP14MagicEnergyScanEvent(); + //RaiseLocalEvent(args.Examiner, scanEvent); +// + //if (!scanEvent.CanScan) + // return; + args.PushMarkup(_magicEnergy.GetEnergyExaminedText(crystalUid.Value, crystalComp)); } @@ -119,7 +122,8 @@ public sealed partial class CP14MagicEnergyCrystalSlotSystem : SharedCP14MagicEn return true; } - public bool TryUseEnergy(EntityUid uid, + + public bool TryChangeEnergy(EntityUid uid, FixedPoint2 energy, CP14MagicEnergyCrystalSlotComponent? component = null, EntityUid? user = null, @@ -128,22 +132,12 @@ public sealed partial class CP14MagicEnergyCrystalSlotSystem : SharedCP14MagicEn if (!TryGetEnergyCrystalFromSlot(uid, out var energyEnt, out var energyComp, component)) { if (user != null) - _popup.PopupEntity(Loc.GetString("cp14-magic-energy-no-crystal"), uid,user.Value); - - return false; - } - - if (_magicEnergy.TryConsumeEnergy(energyEnt.Value, energy, energyComp, safe)) - { - if (user != null) - _popup.PopupEntity( - Loc.GetString(safe ? "cp14-magic-energy-insufficient" : "cp14-magic-energy-insufficient-unsafe"), - uid, - user.Value); + _popup.PopupEntity(Loc.GetString("cp14-magic-energy-no-crystal"), uid, user.Value); return false; } + _magicEnergy.ChangeEnergy(energyEnt.Value, energyComp, energy, safe); return true; } } diff --git a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs index 389845d73b..2246ef1370 100644 --- a/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs +++ b/Content.Server/_CP14/MagicEnergy/CP14MagicEnergySystem.Scanner.cs @@ -31,12 +31,15 @@ public partial class CP14MagicEnergySystem if (!TryComp(ent, out var magicContainer)) return; - var scanEvent = new CP14MagicEnergyScanEvent(); - RaiseLocalEvent(args.Examiner, scanEvent); - - if (!scanEvent.CanScan) + if (!args.IsInDetailsRange) return; + //var scanEvent = new CP14MagicEnergyScanEvent(); + //RaiseLocalEvent(args.Examiner, scanEvent); +// + //if (!scanEvent.CanScan) + // return; + args.PushMarkup(GetEnergyExaminedText(ent, magicContainer)); } diff --git a/Content.Shared/_CP14/MagicLantern/CP14MagicLanternComponent.cs b/Content.Shared/_CP14/MagicLantern/CP14MagicLanternComponent.cs new file mode 100644 index 0000000000..0bf48bd0c5 --- /dev/null +++ b/Content.Shared/_CP14/MagicLantern/CP14MagicLanternComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Shared._CP14.MagicLantern; + +/// +/// Controls the object's glow based on magical energy +/// +[RegisterComponent, Access(typeof(CP14MagicLanternSystem))] +public sealed partial class CP14MagicLanternComponent : Component +{ + +} diff --git a/Content.Shared/_CP14/MagicLantern/CP14MagicLanternSystem.cs b/Content.Shared/_CP14/MagicLantern/CP14MagicLanternSystem.cs new file mode 100644 index 0000000000..5f8b1d4d11 --- /dev/null +++ b/Content.Shared/_CP14/MagicLantern/CP14MagicLanternSystem.cs @@ -0,0 +1,25 @@ +using Content.Shared._CP14.MagicEnergy.Components; + +namespace Content.Shared._CP14.MagicLantern; + +public partial class CP14MagicLanternSystem : EntitySystem +{ + + [Dependency] private readonly SharedPointLightSystem _pointLight = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnSlotPowerChanged); + } + + private void OnSlotPowerChanged(Entity ent, ref CP14SlotCrystalPowerChangedEvent args) + { + SharedPointLightComponent? pointLight = null; + if (_pointLight.ResolveLight(ent, ref pointLight)) + { + _pointLight.SetEnabled(ent, args.Powered, pointLight); + } + } +} diff --git a/Resources/Prototypes/Entities/Markers/construction_ghost.yml b/Resources/Prototypes/Entities/Markers/construction_ghost.yml index 04a8a09502..60650792ec 100644 --- a/Resources/Prototypes/Entities/Markers/construction_ghost.yml +++ b/Resources/Prototypes/Entities/Markers/construction_ghost.yml @@ -4,6 +4,7 @@ categories: [ HideSpawnMenu ] components: - type: Sprite + drawdepth: Mobs #CP14 color: '#3F38' - type: ConstructionGhost - type: Clickable diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/mana_gift.yml similarity index 50% rename from Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml rename to Resources/Prototypes/_CP14/Entities/Actions/Spells/mana_gift.yml index 97f3b1ba0a..b235a903d6 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/ice_floor.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/mana_gift.yml @@ -1,71 +1,68 @@ - type: entity - id: CP14ActionSpellIceFloor - name: Ice floor - description: Covers a specified area of land with slippery ice. + id: CP14ActionSpellManaGift + name: Mana transfer + description: You can transfer a small amount of your magical energy to a target entity or magical object. components: - type: CP14MagicEffect - manaCost: 10 + manaCost: 12 telegraphyEffects: - !type:CP14SpellSpawnEntityOnTarget spawns: - - CP14ImpactEffectIceFloor + - CP14ImpactEffectManaGift effects: - !type:CP14SpellSpawnEntityOnTarget spawns: - - CP14IceFloor + - CP14ImpactEffectManaGift + - !type:CP14SpellApplyEntityEffect + effects: + - !type:CP14ManaChange + manaDelta: 10 + safe: false - type: CP14MagicEffectVerbalAspect - startSpeech: "Humus deorsum..." - endSpeech: "operietur glacie" + startSpeech: "Energia..." + endSpeech: "te reficit" + - type: CP14MagicEffectSomaticAspect - type: CP14MagicEffectCastingVisual - proto: CP14RuneIceFloor + proto: CP14RuneManaGift - type: EntityWorldTargetAction + whitelist: + components: + - CP14MagicEnergyContainer + - CP14MagicEnergyCrystalSlot useDelay: 5 - range: 5 itemIconStyle: BigAction + interactOnMiss: false sound: !type:SoundPathSpecifier path: /Audio/Magic/rumble.ogg icon: sprite: _CP14/Effects/Magic/spells_icons.rsi - state: ice_floor + state: mana_gift event: !type:CP14DelayedEntityWorldTargetActionEvent - delay: 1 - breakOnMove: false + delay: 2 - type: entity - id: CP14RuneIceFloor + id: CP14RuneManaGift parent: CP14BaseMagicRune categories: [ HideSpawnMenu ] components: - type: PointLight - color: "#5eabeb" + color: "#5096d4" - type: Sprite layers: - - state: medium_circle - color: "#5eabeb" + - state: medium_line + color: "#5096d4" + shader: unshaded + - state: double_outer + color: "#5096d4" shader: unshaded - type: entity - id: CP14ImpactEffectIceFloor + id: CP14ImpactEffectManaGift parent: CP14BaseMagicImpact categories: [ HideSpawnMenu ] components: - type: Sprite layers: - state: particles_up - color: "#5eabeb" - shader: unshaded - -- type: entity - id: CP14IceFloor - parent: IceCrust - name: ice crust - description: It's cold and slippery. - categories: [ ForkFiltered ] - components: - - type: Slippery - paralyzeTime: 1 - launchForwardsMultiplier: 1.5 - - type: StepTrigger - intersectRatio: 0.2 - - type: CollisionWake - enabled: false + color: "#5096d4" + shader: unshaded \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml index ce8b637ffb..948f4768d9 100644 --- a/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml +++ b/Resources/Prototypes/_CP14/Entities/Clothing/Rings/ring.yml @@ -15,7 +15,7 @@ - type: entity id: CP14ClothingRingIceDagger parent: CP14ClothingRingBase - name: conductive ring + name: ice dagger conductive ring suffix: Ice Dagger description: A standard mana-conductive ring that allows the user to summon ice daggers. components: @@ -30,10 +30,28 @@ spells: - CP14ActionSpellIceDagger +- type: entity + id: CP14ClothingRingManaGift + parent: CP14ClothingRingBase + name: mana transfering conductive ring + suffix: Mana gift + description: A standard mana-conductive ring that allows you to transfer some of your magical energy to other objects. + components: + - type: Sprite + layers: + - state: brass_ring + - state: saphhire_stone_small + - type: CP14SpellStorageRequireAttune + - type: CP14MagicAttuningItem + - type: CP14SpellStorageAccessWearing + - type: CP14SpellStorage + spells: + - CP14ActionSpellManaGift + - type: entity id: CP14ClothingRingIceShards parent: CP14ClothingRingBase - name: conductive ring + name: ice shards conductive ring suffix: Ice Shards description: A standard mana-conductive ring that allows the user to summon ice shards. components: @@ -51,7 +69,7 @@ - type: entity id: CP14ClothingRingFlameCreation parent: CP14ClothingRingBase - name: conductive ring + name: flame creation conductive ring description: A standard mana-conductive ring that allows the user to summon artificial flames. suffix: Flame creation components: @@ -69,7 +87,7 @@ - type: entity id: CP14ClothingRingFireball parent: CP14ClothingRingBase - name: conductive ring + name: fireball conductive ring description: A standard mana-conductive ring that allows the user to summon fireballs. suffix: Fireball components: @@ -87,7 +105,7 @@ - type: entity id: CP14ClothingRingCureWounds parent: CP14ClothingRingBase - name: conductive ring + name: cure wounds conductive ring description: A standard mana-conductive ring that allows the user to heal physical injuries. suffix: Cure Wounds components: @@ -105,7 +123,7 @@ - type: entity id: CP14ClothingRingShadowStep parent: CP14ClothingRingBase - name: conductive ring + name: shadow step conductive ring description: A standard mana-conductive ring that allows the user to step throught shadows. suffix: Shadow step components: @@ -123,7 +141,7 @@ - type: entity id: CP14ClothingRingShadowGrab parent: CP14ClothingRingBase - name: conductive ring + name: shadow grab conductive ring description: A standard mana-conductive ring that allows the user to summon grabbing shadow hand. suffix: Shadow grab components: @@ -141,8 +159,8 @@ - type: entity id: CP14ClothingRingEarthWall parent: CP14ClothingRingBase - name: conductive ring - description: A standard mana-conductive ring that allows the user to heal physical injuries. + name: earth wall conductive ring + description: A standard mana-conductive ring that allows you to lift a piece of earth rock. suffix: Earth wall components: - type: Sprite @@ -156,28 +174,10 @@ spells: - CP14ActionSpellEarthWall -- type: entity - id: CP14ClothingRingIceFloor - parent: CP14ClothingRingBase - name: conductive ring - description: A standard mana-conductive ring that allows the user to heal physical injuries. - suffix: Ice floor - components: - - type: Sprite - layers: - - state: brass_ring - - state: saphhire_stone_small - - type: CP14SpellStorageRequireAttune - - type: CP14MagicAttuningItem - - type: CP14SpellStorageAccessWearing - - type: CP14SpellStorage - spells: - - CP14ActionSpellIceFloor - - type: entity id: CP14ClothingRingSphereOfLight parent: CP14ClothingRingBase - name: conductive ring + name: light sphere conductive ring description: A standard mana-conductive ring that allows the user to create a sphere of light. suffix: Sphere of Light components: @@ -195,7 +195,7 @@ - type: entity id: CP14ClothingRingFlashLight parent: CP14ClothingRingBase - name: conductive ring + name: flash conductive ring description: A standard mana-conductive ring that allows the user to create a bright flash of light that blinds enemies. suffix: Flash Light components: diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml index 23f2f5bc3e..9e931e9eef 100644 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml +++ b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/Loot/spawners.yml @@ -42,7 +42,7 @@ - id: CP14DyeBlack - id: CP14EnergyCrystalSmall - id: CP14Bucket - - id: CP14OldLantern + - id: CP14CrystalLampBlueEmpty - id: CP14Scissors - id: CP14BaseSharpeningStone - id: CP14Rope @@ -78,7 +78,7 @@ - id: CP14ClothingRingShadowStep - id: CP14ClothingRingShadowGrab - id: CP14ClothingRingEarthWall - - id: CP14ClothingRingIceFloor + - id: CP14ClothingRingManaGift - id: CP14ClothingRingSphereOfLight - id: CP14ClothingRingFlashLight - !type:GroupSelector diff --git a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/battle_royale_temp.yml b/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/battle_royale_temp.yml deleted file mode 100644 index 2b942f2117..0000000000 --- a/Resources/Prototypes/_CP14/Entities/Markers/Spawners/Random/battle_royale_temp.yml +++ /dev/null @@ -1,84 +0,0 @@ -- type: entity - id: CP14RandomSpawnerBattleRoyaleLootWeapon - name: Loot - suffix: Weapon - description: lol - parent: MarkerBase - categories: [ ForkFiltered ] - components: - - type: Sprite - layers: - - state: red - - sprite: _CP14/Objects/Weapons/Melee/BattleHammer/battleHammer.rsi - state: icon - - type: RandomSpawner - prototypes: - - CP14BaseBattleHammer - - CP14BaseBattleStaff - - CP14BaseDagger - - CP14BaseDagger - - CP14BaseTwoHandedSword - - CP14TwoHandedSwordScythe - - CP14BaseSharpeningStone - - CP14OldLantern - - ClothingBackpackCargo - - ClothingBackpackCargo - - ClothingBackpackCargo - - ClothingBackpackCargo - - CP14CopperCoin5 - - CP14CopperCoin5 - - CP14CopperCoin5 - - CP14CopperCoin5 - - CP14CopperCoin1 - - CP14CopperCoin1 - - CP14CopperCoin1 - - CP14SilverCoin1 - - CP14SilverCoin1 - - CP14SilverCoin1 - - CP14AuraNodeBase - - CP14AuraNodeBase - - CP14AuraNodeBase - - CP14AuraNodeBase - -- type: entity - id: CP14RandomSpawnerBattleRoyaleLootTools - name: Loot - suffix: Tools - description: lol - parent: MarkerBase - categories: [ ForkFiltered ] - components: - - type: Sprite - layers: - - state: red - - sprite: _CP14/Clothing/Cloak/Armor/redguardarmor.rsi - state: icon - - type: RandomSpawner - prototypes: - - CP14DirtBlock10 - - CP14StoneBlock10 - - CP14WoodLog - - CP14WoodenPlanks10 - - CP14Nail1 - - CP14Nail10 - - CP14Cauldron - - CP14Pestle - - CP14AlchemyNormalizer - - CP14CopperCoin5 - - CP14CopperCoin5 - - CP14CopperCoin5 - - CP14CopperCoin5 - - CP14CopperCoin1 - - CP14CopperCoin1 - - CP14CopperCoin1 - - CP14SilverCoin1 - - CP14SilverCoin1 - - CP14SilverCoin1 - - CP14AuraNodeBase - - CP14AuraNodeBase - - CP14AuraNodeBase - - CP14AuraNodeBase - - CP14String - - CP14String - - CP14String - - CP14Cloth10 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml index 2bef2e3186..a59f93a7ba 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml @@ -213,7 +213,7 @@ energy: 100 - type: CP14MagicEnergyDraw energy: 1 - delay: 6 # 10m to full restore + delay: 3 # 5m to full restore - type: CP14MagicUnsafeDamage - type: CP14MagicUnsafeSleep - type: CP14MagicAttuningMind diff --git a/Resources/Prototypes/_CP14/Entities/Objects/Tools/flashlight.yml b/Resources/Prototypes/_CP14/Entities/Objects/Tools/flashlight.yml index 72db5e3d76..59dd5b3d3b 100644 --- a/Resources/Prototypes/_CP14/Entities/Objects/Tools/flashlight.yml +++ b/Resources/Prototypes/_CP14/Entities/Objects/Tools/flashlight.yml @@ -1,19 +1,20 @@ - type: entity - parent: BaseItem - id: CP14OldLantern - name: old lantern - description: Relic of the Techomagic's past. Large, weighty, unpractical. At least feels good to crack some skulls with it. + parent: + - BaseItem + - CP14BaseCrystalSlot + id: CP14CrystalLamp + abstract: true + name: crystal lamp + description: A device that converts energy from crystals into a source of directional light. Convenient for traveling categories: [ ForkFiltered ] components: - type: Sprite - sprite: _CP14/Objects/Tools/magic-lamp.rsi + sprite: _CP14/Objects/Tools/crystal_lamp.rsi noRot: false - layers: - - state: lamp - type: Clothing equipDelay: 0.25 unequipDelay: 0.25 - sprite: _CP14/Objects/Tools/magic-lamp.rsi + sprite: _CP14/Objects/Tools/crystal_lamp.rsi quickEquip: false breakOnMove: false slots: @@ -24,7 +25,7 @@ wideAnimation: CP14WeaponArcSlash damage: types: - Blunt: 8 + Blunt: 3 soundHit: collection: MetalThud cPAnimationLength: 0.25 @@ -32,13 +33,89 @@ sound: path: /Audio/Items/toolbox_drop.ogg - type: Item - sprite: _CP14/Objects/Tools/magic-lamp.rsi - storedRotation: -90 + size: Normal + shape: + - 0, 0, 1, 1 + sprite: _CP14/Objects/Tools/crystal_lamp.rsi - type: Rotatable - type: PointLight - color: "#47F8FFFF" + enabled: false + color: "#FFFFFF" + mask: /Textures/_CP14/Effects/LightMasks/crystal_cone.png autoRot: true - energy: 4 - radius: 4 - netsync: false + energy: 3 + radius: 6 - type: Appearance + - type: GenericVisualizer + visuals: + enum.CP14MagicSlotVisuals.Inserted: + crystal: + True: { visible: true } + False: { visible: false } + enum.CP14MagicSlotVisuals.Powered: + light: + True: { visible: true } + False: { visible: false } + - type: CP14MagicLantern + - type: CP14MagicEnergyDraw + energy: -0.1 + delay: 3 + - type: ItemSlots + slots: + crystal_slot: + insertSound: + path: /Audio/_CP14/Items/crystal_insert.ogg + params: + variation: 0.05 + ejectSound: + path: /Audio/_CP14/Items/crystal_eject.ogg + params: + variation: 0.05 + ejectOnInteract: false + name: cp14-magic-energy-crystal-slot-name + whitelist: + components: + - CP14MagicEnergyCrystal + +- type: entity + parent: CP14CrystalLamp + id: CP14CrystalLampBlueEmpty + name: blue crystal lamp + suffix: Blue, Empty + components: + - type: Sprite + layers: + - state: icon + - state: light_icon + color: "#47F8FF" + visible: false + map: ["crystal"] + - state: light_icon + color: "#47F8FF" + visible: false + map: ["light"] + shader: unshaded + - type: PointLight + color: "#47F8FF" + +- type: entity + parent: CP14CrystalLamp + id: CP14CrystalLampOrangeEmpty + name: orange crystal lamp + suffix: Orange, Empty + components: + - type: Sprite + layers: + - state: icon + - state: light_icon + color: "#d68f4d" + map: ["crystal"] + visible: false + - state: light_icon + color: "#d68f4d" + map: ["light"] + visible: false + shader: unshaded + - type: PointLight + color: "#d68f4d" + energy: 5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml index 80b03c4783..3f6f029c7e 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount.yml @@ -103,38 +103,6 @@ range: 5 sound: path: /Audio/Ambience/Objects/fireplace.ogg - - -- type: entity - id: CP14WallmountLamp - name: eternal flame lamp - parent: CP14BaseWallmount - description: A fragile eternal blue fire as proof of the superiority of magic over nature. - components: - - type: Sprite - sprite: _CP14/Structures/Wallmount/wallmount_lamp.rsi - layers: - - state: base - - state: on - shader: unshaded - map: [ "light" ] - - type: PointLight - energy: 2 - radius: 8 - netsync: false - color: "#b0eaf6" - - type: Appearance - #TODO toggleable - - type: Damageable - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 40 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - type: entity id: CP14WallmountBarShelfA diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_lamp.yml b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_lamp.yml new file mode 100644 index 0000000000..104826fe69 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Structures/Furniture/wallmount_lamp.yml @@ -0,0 +1,91 @@ +- type: entity + id: CP14WallmountLampEmpty + name: crystal wall lamp + suffix: Empty + parent: + - CP14BaseWallmount + - CP14BaseCrystalSlot + description: A simple wallmount magical device that converts crystal energy into bright light. + components: + - type: Sprite + sprite: _CP14/Structures/Wallmount/wallmount_lamp.rsi + layers: + - state: base + - state: crystal + map: [ "crystal" ] + visible: false + - state: on + color: "#b2ceeb" + shader: unshaded + map: [ "light" ] + visible: false + - type: PointLight + energy: 2 + radius: 8 + color: "#b2ceeb" + enabled: false + - type: Appearance + - type: GenericVisualizer + visuals: + enum.CP14MagicSlotVisuals.Inserted: + crystal: + True: { visible: true } + False: { visible: false } + enum.CP14MagicSlotVisuals.Powered: + light: + True: { visible: true } + False: { visible: false } + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 40 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: CP14MagicLantern + - type: CP14MagicEnergyDraw + energy: -0.1 + delay: 6 + - type: Construction + graph: CP14WallmountLampEmpty + node: CP14WallmountLampEmpty + +- type: entity + id: CP14WallmountLamp + suffix: Small crystal + parent: CP14WallmountLampEmpty + components: + - type: Sprite + sprite: _CP14/Structures/Wallmount/wallmount_lamp.rsi + layers: + - state: base + - state: crystal + map: [ "crystal" ] + visible: true + - state: on + color: "#b2ceeb" + shader: unshaded + map: [ "light" ] + visible: true + - type: PointLight + enabled: true + - type: ItemSlots + slots: + crystal_slot: + startingItem: CP14EnergyCrystalSmall + insertSound: + path: /Audio/_CP14/Items/crystal_insert.ogg + params: + variation: 0.05 + ejectSound: + path: /Audio/_CP14/Items/crystal_eject.ogg + params: + variation: 0.05 + ejectOnInteract: false + name: cp14-magic-energy-crystal-slot-name + whitelist: + components: + - CP14MagicEnergyCrystal \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml b/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml index aab45a1f2b..f75c85e422 100644 --- a/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml +++ b/Resources/Prototypes/_CP14/Loadouts/Jobs/general.yml @@ -297,10 +297,19 @@ maxLimit: 2 loadouts: - CP14ClothingRingCureWounds + - CP14ClothingRingManaGift + - CP14EnergyCrystalSmall + - CP14CrystalLampOrangeEmpty + - CP14BaseSharpeningStone + - CP14Scissors + - CP14Bucket + - CP14Rope - CP14PenFeather - - CP14Paper - - CP14CopperCoin10 - - CP14BaseCrowbar + - CP14PaperFolderBlue + - CP14SilverCoin5 + - CP14BaseDagger + - CP14BaseSickle + - CP14BasePickaxe - type: loadout id: CP14ClothingRingCureWounds @@ -308,6 +317,48 @@ back: - CP14ClothingRingCureWounds +- type: loadout + id: CP14ClothingRingManaGift + storage: + back: + - CP14ClothingRingManaGift + +- type: loadout + id: CP14EnergyCrystalSmall + storage: + back: + - CP14EnergyCrystalSmall + +- type: loadout + id: CP14CrystalLampOrangeEmpty + storage: + back: + - CP14CrystalLampOrangeEmpty + +- type: loadout + id: CP14BaseSharpeningStone + storage: + back: + - CP14BaseSharpeningStone + +- type: loadout + id: CP14Scissors + storage: + back: + - CP14Scissors + +- type: loadout + id: CP14Bucket + storage: + back: + - CP14Bucket + +- type: loadout + id: CP14Rope + storage: + back: + - CP14Rope + - type: loadout id: CP14PenFeather storage: @@ -315,19 +366,31 @@ - CP14PenFeather - type: loadout - id: CP14Paper + id: CP14PaperFolderBlue storage: back: - - CP14Paper + - CP14PaperFolderBlue - type: loadout - id: CP14CopperCoin10 + id: CP14SilverCoin5 storage: back: - - CP14CopperCoin + - CP14SilverCoin5 - type: loadout - id: CP14BaseCrowbar + id: CP14BaseDagger storage: back: - - CP14BaseCrowbar \ No newline at end of file + - CP14BaseDagger + +- type: loadout + id: CP14BaseSickle + storage: + back: + - CP14BaseSickle + +- type: loadout + id: CP14BasePickaxe + storage: + back: + - CP14BasePickaxe \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml index ad32bd28ef..9fbe68433f 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/test.yml @@ -295,6 +295,7 @@ difficulty: 0.5 requiredTags: - CP14DemiplaneOpenSky + - CP14DemiplaneGrass layers: - !type:MobsDunGen minCount: 3 @@ -304,19 +305,31 @@ amount: 1 - type: cp14DemiplaneModifier - id: EnemySnakes - difficulty: 0.7 + id: SmallHydra + difficulty: 0.5 + requiredTags: + - CP14DemiplaneGrass layers: - !type:MobsDunGen - minCount: 1 - maxCount: 2 + minCount: 3 + maxCount: 6 groups: - - id: CP14MobPurpleSnake - amount: 1 - - id: CP14MobSmallPurpleSnake - amount: 1 - - id: CP14MobSpaceCobra - amount: 1 + - id: CP14MobDinoSmallHydra + amount: 3 + + +- type: cp14DemiplaneModifier + id: MonsterMole + difficulty: 0.5 + requiredTags: + - CP14DemiplaneUnderground + layers: + - !type:MobsDunGen + minCount: 3 + maxCount: 6 + groups: + - id: CP14MobMonsterMole + amount: 3 - type: cp14DemiplaneModifier id: EnemyMagmawind @@ -330,6 +343,35 @@ - id: CP14MobWatcherMagmawing amount: 1 +- type: cp14DemiplaneModifier + id: Rabbits + reward: 0.2 + generationWeight: 0.4 + requiredTags: + - CP14DemiplaneGrass + layers: + - !type:MobsDunGen + minCount: 1 + maxCount: 2 + groups: + - id: CP14MobRabbit + amount: 3 + +- type: cp14DemiplaneModifier + id: Boar + reward: 0.2 + difficulty: 0.2 + generationWeight: 0.4 + requiredTags: + - CP14DemiplaneGrass + layers: + - !type:MobsDunGen + minCount: 1 + maxCount: 3 + groups: + - id: CP14MobBoar + amount: 2 + - type: cp14DemiplaneModifier id: Chasm difficulty: 0.2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/bonfire.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/bonfire.yml index 9dd540fdf7..cbcb88a292 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/bonfire.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Furniture/bonfire.yml @@ -35,3 +35,22 @@ - node: CP14WallmountTorch entity: CP14WallmountTorch + + +- type: constructionGraph + id: CP14WallmountLampEmpty + start: start + graph: + - node: start + actions: + - !type:DestroyEntity {} + edges: + - to: CP14WallmountLampEmpty + steps: + - material: CP14CopperBar + amount: 3 + doAfter: 3 + + - node: CP14WallmountLampEmpty + entity: CP14WallmountLampEmpty + diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml index e56c67a528..7a8c2fd019 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/furniture.yml @@ -108,6 +108,26 @@ - !type:TileNotBlocked - !type:CP14WallRequired +- type: construction + crystallPunkAllowed: true + name: Crystal wall lamp + description: A simple wallmount magical device that converts crystal energy into bright light. + id: CP14WallmountLampEmpty + graph: CP14WallmountLampEmpty + startNode: start + targetNode: CP14WallmountLampEmpty + category: construction-category-furniture + icon: + sprite: _CP14/Structures/Wallmount/wallmount_lamp.rsi + state: base + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: true + canRotate: true + conditions: + - !type:TileNotBlocked + - !type:CP14WallRequired + - type: construction crystallPunkAllowed: true name: Wooden chest diff --git a/Resources/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml b/Resources/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml index 9e8a4e215e..bb1bd24754 100644 --- a/Resources/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml +++ b/Resources/ServerInfo/_CP14/Guidebook_EN/Demiplanes.xml @@ -33,7 +33,7 @@ When you decide to leave the demiplane after finding the portal, you must touch - + diff --git a/Resources/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml b/Resources/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml index b0377b72c2..ae50b207a7 100644 --- a/Resources/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml +++ b/Resources/ServerInfo/_CP14/Guidebook_RU/Demiplanes.xml @@ -33,7 +33,7 @@ - + diff --git a/Resources/Textures/_CP14/Effects/LightMasks/crystal_cone.png b/Resources/Textures/_CP14/Effects/LightMasks/crystal_cone.png new file mode 100644 index 0000000000..3f30cf5458 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/LightMasks/crystal_cone.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png deleted file mode 100644 index e3153a593e..0000000000 Binary files a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/ice_floor.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/mana_gift.png b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/mana_gift.png new file mode 100644 index 0000000000..075826fdd3 Binary files /dev/null and b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/mana_gift.png differ diff --git a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json index 2e66d5b755..66981a14e9 100644 --- a/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json +++ b/Resources/Textures/_CP14/Effects/Magic/spells_icons.rsi/meta.json @@ -5,17 +5,23 @@ "y": 32 }, "license": "CLA", - "copyright": "Created by .kreks.", + "copyright": "Created by .kreks., mana_gift by TheShuEd", "states": [ { "name": "cure_wounds" }, { - "name": "flame_creation" + "name": "earth_wall" }, { "name": "fireball" }, + { + "name": "flame_creation" + }, + { + "name": "flash_light" + }, { "name": "ice_dagger" }, @@ -23,22 +29,16 @@ "name": "ice_shards" }, { - "name": "shadow_step" + "name": "mana_gift" }, { "name": "shadow_grab" }, { - "name": "ice_floor" - }, - { - "name": "earth_wall" + "name": "shadow_step" }, { "name": "sphere_of_light" - }, - { - "name": "flash_light" } ] } \ No newline at end of file diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/equipped-BELT1.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/equipped-BELT1.png new file mode 100644 index 0000000000..5e39094069 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/equipped-BELT1.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/equipped-BELT2.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/equipped-BELT2.png new file mode 100644 index 0000000000..f35f431cbb Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/equipped-BELT2.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/icon.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/icon.png new file mode 100644 index 0000000000..8e0c78f88b Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/inhand-left.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/inhand-left.png new file mode 100644 index 0000000000..53a94d2ce0 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/inhand-right.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/inhand-right.png new file mode 100644 index 0000000000..3f82b6fc63 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_equipped-BELT1.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_equipped-BELT1.png new file mode 100644 index 0000000000..0f74a07960 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_equipped-BELT1.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_equipped-BELT2.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_equipped-BELT2.png new file mode 100644 index 0000000000..f9308dbf57 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_equipped-BELT2.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_icon.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_icon.png new file mode 100644 index 0000000000..724a00e142 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_icon.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_inhand-left.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_inhand-left.png new file mode 100644 index 0000000000..fbc6ecc1ec Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_inhand-left.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_inhand-right.png b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_inhand-right.png new file mode 100644 index 0000000000..61d9ef69e5 Binary files /dev/null and b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/light_inhand-right.png differ diff --git a/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/meta.json b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/meta.json new file mode 100644 index 0000000000..f2bf31c997 --- /dev/null +++ b/Resources/Textures/_CP14/Objects/Tools/crystal_lamp.rsi/meta.json @@ -0,0 +1,49 @@ +{ + "version": 1, + "license": "CLA", + "copyright": "Created by jaraten (Github/discord) for CrystallPunk", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-BELT1", + "directions": 4 + }, + { + "name": "equipped-BELT2", + "directions": 4 + }, + { + "name": "light_icon" + }, + { + "name": "light_inhand-left", + "directions": 4 + }, + { + "name": "light_inhand-right", + "directions": 4 + }, + { + "name": "light_equipped-BELT1", + "directions": 4 + }, + { + "name": "light_equipped-BELT2", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/inhand-left.png b/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/inhand-left.png deleted file mode 100644 index fccae91ce9..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/inhand-right.png b/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/inhand-right.png deleted file mode 100644 index c6ec98c43b..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/lamp.png b/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/lamp.png deleted file mode 100644 index a87d17e841..0000000000 Binary files a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/lamp.png and /dev/null differ diff --git a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/meta.json b/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/meta.json deleted file mode 100644 index 71c5f83907..0000000000 --- a/Resources/Textures/_CP14/Objects/Tools/magic-lamp.rsi/meta.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "version": 1, - "license": "CLA", - "copyright": "by Agoichi", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "lamp", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "inhand-left", - "directions": 4 - } - ] -} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/base.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/base.png index 6472e15749..668b0a85ed 100644 Binary files a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/base.png and b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/base.png differ diff --git a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/crystal.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/crystal.png new file mode 100644 index 0000000000..c7a435c9a2 Binary files /dev/null and b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/crystal.png differ diff --git a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/meta.json b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/meta.json index 1ec6cb1e05..fd81ba9f1b 100644 --- a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/meta.json +++ b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/meta.json @@ -14,6 +14,10 @@ { "name": "on", "directions": 4 + }, + { + "name": "crystal", + "directions": 4 } ] } diff --git a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/on.png b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/on.png index 3756d0430a..4a30bd93e7 100644 Binary files a/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/on.png and b/Resources/Textures/_CP14/Structures/Wallmount/wallmount_lamp.rsi/on.png differ diff --git a/Resources/migration.yml b/Resources/migration.yml index f259416cee..89192d479d 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -119,6 +119,11 @@ CP14SpawnPointMerchant: CP14SpawnPointBanker #2024-10-27 CP14GatherableFlowersYellow: CP14GatherableDayflin CP14FlowersYellow: CP14Dayflin + +#2024-11-03 +CP14OldLantern: CP14CrystalLampBlueEmpty +CP14ClothingRingIceFloor: CP14ClothingRingManaGift + # <---> CrystallPunk migration zone end