From 03e0d66083ff756ae0708be24954799969d2de6a Mon Sep 17 00:00:00 2001 From: F8ctor Date: Sat, 29 Mar 2025 14:53:34 +0100 Subject: [PATCH] No life mobs (#1072) * Slimeeeee! * SimpleSpaceMobNoLifeBase * No-no-no mr. Skeletik, you not alive * Delete "bug" * Revert "Delete "bug"" This reverts commit 4ce64f1cbc2a90e629d3955171d89739b0b0c4b9. * Revert "No-no-no mr. Skeletik, you not alive" This reverts commit f0c878c6a374554ca6109ce591ede76d2ee34edb. * return, I'll see what's wrong * Fix * [ ] Work complete --- .../_CP14/Entities/Mobs/NPC/Slimes/base.yml | 4 +- .../_CP14/Entities/Mobs/Species/base.yml | 232 +++++++++++++++++- .../_CP14/Entities/Mobs/Species/skeleton.yml | 10 +- .../Prototypes/_CP14/Entities/Mobs/base.yml | 62 ++++- 4 files changed, 295 insertions(+), 13 deletions(-) diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml index d3d2d2fb9f..d3c8cea444 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml @@ -1,6 +1,6 @@ - type: entity id: CP14MobSlimeBase - parent: [ CP14SimpleMobBase, MobCombat ] + parent: CP14SimpleMobNoLifeBase name: slime description: A clot of semi-intelligent slime sensitive to the elemental elements. And happy to slime the skin off your face. components: @@ -138,4 +138,4 @@ breakOnMove: false breakOnDamage: false castDelay: 1 - raiseOnUser: true \ No newline at end of file + raiseOnUser: true diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml index 72080a82fb..e394f09d5f 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml @@ -1,6 +1,6 @@ - type: entity save: false - parent: + parent: - BaseMob - MobCombat - CP14MobDamageable @@ -235,7 +235,7 @@ - type: entity - parent: + parent: - MobBloodstream - MobRespirator - MobAtmosStandard @@ -381,4 +381,230 @@ - type: UserInterface interfaces: enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too - type: HumanoidMarkingModifierBoundUserInterface \ No newline at end of file + type: HumanoidMarkingModifierBoundUserInterface + +- type: entity + save: false + parent: + - BaseMob + - CP14MobDamageable + - CP14MobMagical + id: CP14BaseMobSpeciesNoLife + categories: [ ForkFiltered ] + abstract: true + components: + - type: Sprite + layers: + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "vampire_fangs" ] + sprite: _CP14/Mobs/Species/Vampire/fangs.rsi + state: human + visible: false + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - shader: StencilClear + sprite: _CP14/Mobs/Species/Human/parts.rsi + state: l_leg + - shader: StencilMask + map: [ "enum.HumanoidVisualLayers.StencilMask" ] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false + - map: [ "enum.HumanoidVisualLayers.LFoot" ] + - map: [ "enum.HumanoidVisualLayers.RFoot" ] + - map: [ "pants" ] + - map: [ "shoes" ] + - map: [ "shirt" ] + - map: [ "enum.HumanoidVisualLayers.LHand" ] + - map: [ "enum.HumanoidVisualLayers.RHand" ] + - map: [ "gloves" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "cloak" ] + - map: [ "eyes" ] + - map: [ "belt1" ] + - map: [ "belt2" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] + - map: [ "mask" ] + - map: [ "head" ] + - map: [ "pocket1" ] + - map: [ "pocket2" ] + - map: ["enum.HumanoidVisualLayers.Handcuffs"] + color: "#ffffff" + sprite: Objects/Misc/handcuffs.rsi + state: body-overlay-2 + visible: false + - type: DamageVisuals + thresholds: [ 10, 20, 30, 50, 70, 100 ] + targetLayers: + - "enum.HumanoidVisualLayers.Chest" + - "enum.HumanoidVisualLayers.Head" + - "enum.HumanoidVisualLayers.LArm" + - "enum.HumanoidVisualLayers.LLeg" + - "enum.HumanoidVisualLayers.RArm" + - "enum.HumanoidVisualLayers.RLeg" + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#FF0000" + Burn: + sprite: Mobs/Effects/burn_damage.rsi + - type: GenericVisualizer + visuals: + enum.CreamPiedVisuals.Creamed: + clownedon: # Not 'creampied' bc I can already see Skyrat complaining about conflicts. + True: {visible: true} + False: {visible: false} + - type: StatusIcon + bounds: -0.5,-0.5,0.5,0.5 + - type: RotationVisuals + defaultRotation: 90 + horizontalRotation: 90 + - type: HumanoidAppearance + species: CP14Human + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.7 + 80: 0.5 + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 185 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + - type: FloorOcclusion + - type: RangedDamageSound + soundGroups: + Brute: + collection: + MeatBulletImpact + soundTypes: + Heat: + collection: + MeatLaserImpact + - type: Reactive + groups: + Flammable: [ Touch ] + Extinguish: [ Touch ] + Acidic: [Touch, Ingestion] + reactions: + - reagents: [Water, SpaceCleaner] + methods: [Touch] + effects: + - !type:WashCreamPieReaction + - type: StatusEffects + allowed: + - Stun + - KnockedDown + - SlowedDown + - Stutter + - SeeingRainbows + - Electrocution + - Drunk + - SlurredSpeech + - RatvarianLanguage + - PressureImmunity + - Muted + - ForcedSleep + - TemporaryBlindness + - Pacified + - StaminaModifier + - Flashed + - RadiationProtection + - Drowsiness + - Adrenaline + - type: Body + prototype: CP14Human + requiredLegs: 2 + - type: Identity + - type: Hands + - type: ComplexInteraction + - type: Inventory + - type: InventorySlots + #- type: FloatingVisuals + - type: Climbing + - type: Cuffable + - type: Ensnareable + sprite: Objects/Misc/ensnare.rsi + state: icon + - type: AnimationPlayer + - type: Buckle + - type: CombatMode + canDisarm: true + - type: MeleeWeapon + soundHit: + collection: Punch + angle: 30 + animation: WeaponArcFist + attackRate: 1.3 + damage: + types: + Blunt: 3 + - type: SleepEmitSound + - type: SSDIndicator + - type: StandingState + - type: MindContainer + showExamineInfo: true + - type: InteractionPopup + successChance: 1 + interactSuccessString: hugging-success-generic + interactSuccessSound: /Audio/Effects/thudswoosh.ogg + messagePerceivedByOthers: hugging-success-generic-others + - type: NpcFactionMember + factions: + - CP14Adventurers + - type: Stripping + - type: Strippable + - type: UserInterface + interfaces: + enum.HumanoidMarkingModifierKey.Key: + type: HumanoidMarkingModifierBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + - type: Puller + - type: Speech + speechSounds: Alto + - type: DamageForceSay + - type: Vocal + sounds: + Male: MaleHuman + Female: FemaleHuman + Unsexed: MaleHuman + - type: Emoting + - type: BodyEmotes + soundsId: GeneralBodyEmotes + - type: Grammar + attributes: + proper: true + - type: MobPrice + price: 1500 # Kidnapping a living person and selling them for cred is a good move. + deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less. + - type: Tag + tags: + - FootstepSound + - type: CanEnterCryostorage + - type: CP14IgnitionModifier + ignitionTimeModifier: 2.5 + - type: CanMoveInAir # read: CanSwimInOcean lol + - type: MovementAlwaysTouching + - type: MovementSpeedModifier + weightlessAcceleration: 0.8 # Slow swimming + weightlessFriction: 2 + weightlessModifier: 0.6 diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml index 8f0771c841..b9204a8f1a 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/skeleton.yml @@ -1,6 +1,6 @@ - type: entity - parent: - - CP14BaseMobSpecies + parent: + - CP14BaseMobSpeciesNoLife - MobFlammable id: CP14BaseMobSkeleton name: Mr. Skeleton @@ -91,10 +91,6 @@ - type: Damageable damageContainer: Biological damageModifierSet: Skeleton - - type: Hunger - baseDecayRate: 0.0003 - - type: Thirst - baseDecayRate: 0.0003 - type: Destructible thresholds: - trigger: @@ -125,4 +121,4 @@ - type: HumanoidAppearance species: CP14Skeleton - type: Inventory - templateId: CP14Human \ No newline at end of file + templateId: CP14Human diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/base.yml index 3a2b064579..f9077dcede 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/base.yml @@ -47,7 +47,7 @@ - type: CP14MagicUnsafeSleep - type: CP14MagicAttuningMind autoCopyToMind: true - + - type: entity parent: @@ -95,3 +95,63 @@ - type: MobPrice price: 150 - type: FloatingVisuals + +- type: entity + parent: + - CP14MobDamageable + - MobRespirator + - MobAtmosStandard + - CP14SimpleSpaceMobNoLifeBase + id: CP14SimpleMobNoLifeBase + suffix: AI + abstract: true + components: + - type: StatusEffects + allowed: + - Stun + - KnockedDown + - SlowedDown + - Stutter + - Electrocution + - ForcedSleep + - TemporaryBlindness + - Pacified + - StaminaModifier + - Flashed + - RadiationProtection + - Drowsiness + - Adrenaline + - type: MobPrice + price: 150 + - type: FloatingVisuals + +- type: entity + abstract: true + parent: + - BaseSimpleMob + - MobCombat + - MobFlammable + id: CP14SimpleSpaceMobNoLifeBase + suffix: AI + components: + - type: NpcFactionMember + factions: + - CP14Neutrals + - type: HTN + rootTask: + task: IdleCompound + - type: MeleeWeapon + angle: 0 + animation: WeaponArcBite + - type: Body + prototype: Animal + - type: Climbing + - type: NameIdentifier + group: GenericNumber + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.7 + 80: 0.5 + - type: MobPrice + price: 1000 # Living critters are valuable in space. + - type: Perishable