diff --git a/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl b/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl index ed715c208a..f1b8f50ba8 100644 --- a/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl +++ b/Resources/Locale/en-US/_CP14/ghostRoles/roles.ftl @@ -10,3 +10,5 @@ cp14-ghost-role-information-description-raid-undead = Lead the attack on the cit cp14-ghost-role-information-name-rat = Rat cp14-ghost-role-information-description-rat = An honorable rat. Relieve tavernkeep of their extra food or join the adventurers as an armored squire. +cp14-ghost-role-information-name-bone-hound = Bone hound +cp14-ghost-role-information-description-bone-hound = A bone hound created by necromantic magic, usually summoned by skeleton mages to form a pack of hunters. Obeys the skeleton that summoned it. diff --git a/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl b/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl index 8c7bbf90bd..8f6a42ebb7 100644 --- a/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl +++ b/Resources/Locale/ru-RU/_CP14/ghostRoles/roles.ftl @@ -9,3 +9,6 @@ cp14-ghost-role-information-description-raid-undead = Возглавьте ат cp14-ghost-role-information-name-rat = Крыса cp14-ghost-role-information-description-rat = Крыса чести. Избавьте тавернщиков от тяжести лишней еды или присоединитесь к группе авантюристов в роли бронированного оруженосца. + +cp14-ghost-role-information-name-bone-hound = Костяная гончая +cp14-ghost-role-information-description-bone-hound = Костяная гончая, созданная с помощью магии некромантии, обычно вызываемая магами скелетами для формирования стаи охотников. Подчиняется скелету, который его вызвал. diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Skeleton/bone_hound.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Skeleton/bone_hound.yml new file mode 100644 index 0000000000..a0cd1b7606 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Skeleton/bone_hound.yml @@ -0,0 +1,75 @@ +- type: entity + id: CP14ActionSpellCallBoneHound + parent: CP14ActionSpellBase + name: Call of the Bone hound + description: The spell creates a bloodthirsty bone hound from bones. With luck, it may even gain a mind as cunning as your own. + components: + - type: Sprite + sprite: _CP14/Actions/Spells/skeleton.rsi + state: bone_hound + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.5 + - type: CP14ActionManaCost + manaCost: 50 + - type: CP14MagicEffect + telegraphyEffects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectCallBoneHound + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14MobMonsterBoneHound + - type: CP14ActionMaterialCost + requirement: !type:StackResource + stack: CP14Bone + count: 10 + - type: CP14ActionSpeaking + startSpeech: "Ossa mortuorum..." + endSpeech: "incipiunt mihi quasi canis canis servire" + - type: CP14MagicEffectCastingVisual + proto: CP14RuneCallBoneHound + - type: Action + icon: + sprite: _CP14/Actions/Spells/skeleton.rsi + state: bone_hound + - type: LimitedCharges + maxCharges: 3 + - type: TargetAction + range: 10 + - type: WorldTargetAction + event: !type:CP14DelayedWorldTargetActionEvent + cooldown: 20 + +- type: entity + id: CP14RuneCallBoneHound + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + save: false + components: + - type: PointLight + color: "#ae9c86" + - type: Sprite + layers: + - state: medium_line + color: "#ae9c86" + shader: unshaded + - state: medium_circle + color: "#ae9c86" + shader: unshaded + +- type: entity + id: CP14ImpactEffectCallBoneHound + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + layers: + - state: particles_up + color: "#ae9c86" + shader: unshaded + - sprite: _CP14/Effects/Magic/cast_rune.rsi + state: medium_circle + color: "#ae9c86" + shader: unshaded diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/bone_hound.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/bone_hound.yml new file mode 100644 index 0000000000..29c0ea017f --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/bone_hound.yml @@ -0,0 +1,95 @@ +- type: entity + id: CP14MobMonsterBoneHound + parent: CP14SimpleMobBase + name: bone hound + description: The skeleton of a hound, animated by dark magic, even more bloodthirsty and dangerous than when alive. + categories: [ ForkFiltered ] + components: + - type: GhostTakeoverAvailable + - type: GhostRole + name: cp14-ghost-role-information-name-bone-hound + allowMovement: true + description: cp14-ghost-role-information-description-bone-hound + rules: cp14-ghost-role-information-rules-demiplane + mindRoles: + - CP14MindRoleDemiplaneAntag + raffle: + settings: default + - type: HTN + rootTask: + task: SimpleHostileCompound + blackboard: + NavSmash: !type:Bool + true + VisionRadius: !type:Single + 10 + AggroVisionRadius: !type:Single + 10 + - type: NpcFactionMember + factions: + - CP14Monster + - type: NPCImprintingOnSpawnBehaviour + whitelist: + components: + - MobThresholds + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _CP14/Mobs/Monster/bone_hound.rsi + state: live + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.30 + density: 50 + mask: + - MobMask + layer: + - MobLayer + - type: Appearance + - type: CP14NightVision + - type: SlowOnDamage + speedModifierThresholds: + 40: 0.8 + - type: CombatMode + - type: MeleeWeapon + angle: 0 + animation: WeaponArcBite + damage: + types: + Slash: 4 + Piercing: 4 + - type: MovementSpeedModifier + baseWalkSpeed: 5 + baseSprintSpeed: 5 + - type: Damageable + damageContainer: CP14BiologicalAnaerobic + damageModifierSet: CP14Skeleton + - type: Bloodstream + bloodReagent: CP14BloodAnimal + bloodMaxVolume: 0 + - type: Grammar + attributes: + gender: epicene + - type: Tag + tags: + - FootstepSound + - CP14Mosquito + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + CP14BoneRemainsBoneHound: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: CP14BoneCrack diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml index 3b893cde33..7de41c6a3b 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml @@ -135,6 +135,10 @@ - CP14ActionSpellManaConsumeElf - CP14ActionSpellManaGiftElf - CP14ActionSpellMagicSplitting + - type: CP14SpellStorage + grantAccessToSelf: true + spells: + - CP14ActionSpellCallBoneHound - type: entity id: CP14MobUndeadSkeletonBardT2 diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml index 0cfcf13986..9b6e1d0c18 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml @@ -91,7 +91,7 @@ - type: CP14AuraImprint imprintColor: "#a81b5d" - type: Damageable - damageContainer: CP14Biological + damageContainer: CP14BiologicalAnaerobic damageModifierSet: CP14Skeleton - type: Destructible thresholds: diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/bone_remains.yml b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/bone_remains.yml index 30dde9edbc..c80baf0354 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Decorations/bone_remains.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Decorations/bone_remains.yml @@ -1,11 +1,21 @@ - type: entity parent: BaseStructure + id: CP14BaseBoneStructure + categories: [ ForkFiltered ] + abstract: true + components: + - type: Physics + bodyType: Static + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: CP14Skeleton + +- type: entity + parent: CP14BaseBoneStructure id: CP14BaseBoneRemains name: bone remains description: The remains of bones have grown into the ground. - categories: [ ForkFiltered ] components: - - type: Clickable - type: Sprite noRot: true sprite: _CP14/Structures/Decoration/bone_remains.rsi @@ -19,8 +29,6 @@ bone_remains_1: "" bone_remains_2: "" bone_remains_3: "" - - type: Physics - bodyType: Static - type: Fixtures fixtures: fix1: @@ -33,9 +41,6 @@ - SlipLayer layer: - ItemMask - - type: Damageable - damageContainer: StructuralInorganic - damageModifierSet: CP14Skeleton - type: FootstepModifier footstepSoundCollection: collection: CP14StepBones @@ -59,11 +64,59 @@ collection: CP14BoneCrack - type: entity + parent: CP14BaseBoneStructure + id: CP14BoneRemainsBoneHound + name: bone remains hound + description: The bones of a hound that died a long time ago... or very recently. + components: + - type: Sprite + noRot: true + sprite: _CP14/Mobs/Monster/bone_hound.rsi + drawdepth: BelowFloor + layers: + - state: dead + - type: FootstepModifier + footstepSoundCollection: + collection: CP14StepBones + params: + volume: 4 + - type: Fixtures + fixtures: + fix1: + hard: false + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 50 + mask: + - SlipLayer + layer: + - ItemMask + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + CP14Bone1: + min: 2 + max: 4 + CP14ClothingMaskBoneHornedMask: + min: 0 + max: 1 + - !type:PlaySoundBehavior + sound: + collection: CP14BoneCrack + +- type: entity + parent: CP14BaseBoneStructure id: CP14BoneSpine - parent: BaseStructure name: bone spine description: The large bony torso of an unknown creature, as if it had been torn to pieces. - categories: [ ForkFiltered ] components: - type: Sprite noRot: true @@ -82,9 +135,6 @@ - MachineMask layer: - MachineLayer - - type: Damageable - damageContainer: StructuralInorganic - damageModifierSet: CP14Skeleton - type: Destructible thresholds: - trigger: @@ -103,11 +153,10 @@ collection: CP14BoneCrack - type: entity + parent: CP14BaseBoneStructure id: CP14BoneDragon - parent: CP14BoneSpine name: bone dragon description: The large skeleton of a dragon, the possibility of encountering such a creature is both fascinating and terrifying. - categories: [ ForkFiltered ] components: - type: Sprite noRot: true diff --git a/Resources/Textures/_CP14/Actions/Spells/skeleton.rsi/bone_hound.png b/Resources/Textures/_CP14/Actions/Spells/skeleton.rsi/bone_hound.png new file mode 100644 index 0000000000..2a00fc3ec5 Binary files /dev/null and b/Resources/Textures/_CP14/Actions/Spells/skeleton.rsi/bone_hound.png differ diff --git a/Resources/Textures/_CP14/Actions/Spells/skeleton.rsi/meta.json b/Resources/Textures/_CP14/Actions/Spells/skeleton.rsi/meta.json new file mode 100644 index 0000000000..cb997d55cd --- /dev/null +++ b/Resources/Textures/_CP14/Actions/Spells/skeleton.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All right reserved", + "copyright": "Created by Nimfar11", + "states": [ + { + "name": "bone_hound" + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/dead.png b/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/dead.png new file mode 100644 index 0000000000..45afb7b9b7 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/dead.png differ diff --git a/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/live.png b/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/live.png new file mode 100644 index 0000000000..262003a564 Binary files /dev/null and b/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/live.png differ diff --git a/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/meta.json new file mode 100644 index 0000000000..74aa8c1b43 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Monster/bone_hound.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-4.0", + "copyright": "Generated by ChatGPT + polished by TheShuEd and omsoyk", + "size": { + "x": 48, + "y": 48 + }, + "states": [ + { + "name": "dead" + }, + { + "name": "live", + "directions": 4 + } + ] +}