From f0c878c6a374554ca6109ce591ede76d2ee34edb Mon Sep 17 00:00:00 2001 From: F8ctor Date: Tue, 25 Mar 2025 23:54:53 +0100 Subject: [PATCH] No-no-no mr. Skeletik, you not alive --- .../_CP14/Entities/Mobs/Species/base.yml | 235 +++++++++++++++++- .../_CP14/Entities/Mobs/Species/skeleton.yml | 6 +- 2 files changed, 235 insertions(+), 6 deletions(-) diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/base.yml index 947f79730d..7f51a14586 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 @@ -234,7 +234,7 @@ - type: entity - parent: + parent: - MobBloodstream - MobRespirator - MobAtmosStandard @@ -381,4 +381,233 @@ - 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 + - MobCombat + - 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: CP14DemiplaneStabilizer + requireAlive: true + - 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 e0dc2d3a31..a966a5d1ea 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 @@ -126,4 +126,4 @@ - type: HumanoidAppearance species: CP14Skeleton - type: Inventory - templateId: CP14Human \ No newline at end of file + templateId: CP14Human