From: PixelTK <85175107+PixelTheKermit@users.noreply.github.com> Date: Sat, 29 Apr 2023 16:19:06 +0000 (+0100) Subject: Arachnid species (#13945) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=8269a500b333a89633964fba7c97de55c347fd3a;p=space-station-14.git Arachnid species (#13945) --- diff --git a/Content.Server/Fluids/EntitySystems/PuddleSystem.cs b/Content.Server/Fluids/EntitySystems/PuddleSystem.cs index 3552c8d897..18c88c4231 100644 --- a/Content.Server/Fluids/EntitySystems/PuddleSystem.cs +++ b/Content.Server/Fluids/EntitySystems/PuddleSystem.cs @@ -261,7 +261,7 @@ public sealed partial class PuddleSystem : SharedPuddleSystem // Make blood stand out more // Kinda EH // Could potentially do alpha per-solution but future problem. - var standoutReagents = new string[] { "Blood", "Slime" }; + var standoutReagents = new string[] { "Blood", "Slime", "SpiderBlood" }; color = solution.GetColorWithout(_prototypeManager, standoutReagents); color = color.WithAlpha(0.7f); diff --git a/Resources/Audio/Voice/Arachnid/arachnid_laugh.ogg b/Resources/Audio/Voice/Arachnid/arachnid_laugh.ogg new file mode 100644 index 0000000000..e444f541db Binary files /dev/null and b/Resources/Audio/Voice/Arachnid/arachnid_laugh.ogg differ diff --git a/Resources/Audio/Voice/Arachnid/arachnid_scream.ogg b/Resources/Audio/Voice/Arachnid/arachnid_scream.ogg new file mode 100644 index 0000000000..56bd8f0a9c Binary files /dev/null and b/Resources/Audio/Voice/Arachnid/arachnid_scream.ogg differ diff --git a/Resources/Audio/Voice/Arachnid/attributions.yml b/Resources/Audio/Voice/Arachnid/attributions.yml new file mode 100644 index 0000000000..c8b44f3a63 --- /dev/null +++ b/Resources/Audio/Voice/Arachnid/attributions.yml @@ -0,0 +1,5 @@ +- files: ["arachnid_scream.ogg", "arachnid_laugh.ogg"] + license: "CC-BY-4.0" + copyright: "Recorded by https://github.com/PixelTheKermit" + source: "https://github.com/space-wizards/space-station-14/pull/13945" + diff --git a/Resources/Audio/Voice/Talk/arachnid.ogg b/Resources/Audio/Voice/Talk/arachnid.ogg new file mode 100644 index 0000000000..9093799ca0 Binary files /dev/null and b/Resources/Audio/Voice/Talk/arachnid.ogg differ diff --git a/Resources/Audio/Voice/Talk/arachnid_ask.ogg b/Resources/Audio/Voice/Talk/arachnid_ask.ogg new file mode 100644 index 0000000000..c00e1b907a Binary files /dev/null and b/Resources/Audio/Voice/Talk/arachnid_ask.ogg differ diff --git a/Resources/Audio/Voice/Talk/arachnid_exclaim.ogg b/Resources/Audio/Voice/Talk/arachnid_exclaim.ogg new file mode 100644 index 0000000000..464b139aeb Binary files /dev/null and b/Resources/Audio/Voice/Talk/arachnid_exclaim.ogg differ diff --git a/Resources/Audio/Voice/Talk/attributions.yml b/Resources/Audio/Voice/Talk/attributions.yml new file mode 100644 index 0000000000..4b3aab32db --- /dev/null +++ b/Resources/Audio/Voice/Talk/attributions.yml @@ -0,0 +1,4 @@ +- files: ["arachnid.ogg", "arachnid_ask.ogg", "arachnid_exclaim.ogg"] + license: "CC-BY-4.0" + copyright: "Recorded by https://github.com/PixelTheKermit" + source: "https://github.com/space-wizards/space-station-14/pull/13945" diff --git a/Resources/Locale/en-US/markings/arachnid.ftl b/Resources/Locale/en-US/markings/arachnid.ftl new file mode 100644 index 0000000000..08b14465af --- /dev/null +++ b/Resources/Locale/en-US/markings/arachnid.ftl @@ -0,0 +1,20 @@ +marking-ArachnidAppendagesDefault = Appendages (long) +marking-ArachnidAppendagesDefault-long = Appendage +marking-ArachnidAppendagesDefault-web = Web + +marking-ArachnidAppendagesSharp = Appendages (Sharp) +marking-ArachnidAppendagesSharp-sharp = Appendage +marking-ArachnidAppendagesSharp-web = Web + + +marking-ArachnidTorsoStripes = Stripes +marking-ArachnidTorsoStripes-stripes = Design + +marking-ArachnidTorsoSlashes = Slashes +marking-ArachnidTorsoSlashes-slashes = Design + +marking-ArachnidTorsoCross = Cross +marking-ArachnidTorsoCross-cross = Design + +marking-ArachnidTorsoX = X +marking-ArachnidTorsoX-x = Design diff --git a/Resources/Locale/en-US/reagents/meta/biological.ftl b/Resources/Locale/en-US/reagents/meta/biological.ftl index a3de45fbf6..7311433934 100644 --- a/Resources/Locale/en-US/reagents/meta/biological.ftl +++ b/Resources/Locale/en-US/reagents/meta/biological.ftl @@ -4,5 +4,8 @@ reagent-desc-blood = I hope this is ketchup. reagent-name-slime = slime reagent-desc-slime = You thought this was gradient blood at first, but you were mistaken. +reagent-name-spider-blood = blue blood +reagent-desc-spider-blood = Doesn't taste like blueberry juice. + reagent-name-ichor = ichor reagent-desc-ichor = An extremely potent regenerative chemical, perfected by space fauna evolution. Produced in the dragon's digestive system, it is seen as an exotic commodity due to the gargantuan effort of hunting for it. diff --git a/Resources/Locale/en-US/species/species.ftl b/Resources/Locale/en-US/species/species.ftl index 42bc2260fa..e8ef59599a 100644 --- a/Resources/Locale/en-US/species/species.ftl +++ b/Resources/Locale/en-US/species/species.ftl @@ -5,3 +5,4 @@ species-name-dwarf = Dwarf species-name-reptilian = Reptilian species-name-slime = Slime Person species-name-diona = Diona +species-name-arachnid = Arachnid diff --git a/Resources/Prototypes/Body/Organs/arachnid.yml b/Resources/Prototypes/Body/Organs/arachnid.yml new file mode 100644 index 0000000000..4af60d876d --- /dev/null +++ b/Resources/Prototypes/Body/Organs/arachnid.yml @@ -0,0 +1,110 @@ +- type: entity + id: BaseArachnidOrgan + parent: BaseItem + abstract: true + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/organs.rsi + - type: Organ + - type: Food + - type: Extractable + grindableSolutionName: organ + - type: SolutionContainerManager + solutions: + organ: + maxVol: 10 + reagents: + - ReagentId: Nutriment + Quantity: 10 + +- type: entity + id: OrganArachnidStomach + parent: OrganAnimalStomach + name: Stomach + description: "Gross. This is hard to stomach." + noSpawn: true + components: + - type: Stomach + maxVolume: 50 + updateInterval: 1.5 + - type: Metabolizer + updateFrequency: 1.5 + +- type: entity + id: OrganArachnidHeart + parent: BaseHumanOrgan + name: heart + description: "I feel bad for the heartless bastard who lost this." + noSpawn: true + components: + - type: Sprite + state: heart-on + - type: Organ + - type: Metabolizer + updateFrequency: 1.5 + maxReagents: 2 + metabolizerTypes: [Animal] + groups: + - id: Medicine + - id: Poison + - id: Narcotic + +- type: entity + id: OrganArachnidLiver + parent: BaseHumanOrgan + name: liver + description: "Pairing suggestion: chianti and fava beans." + noSpawn: true + components: + - type: Sprite + state: liver + - type: Organ + - type: Metabolizer # The liver metabolizes certain chemicals only, like alcohol. + updateFrequency: 1.5 + maxReagents: 1 + metabolizerTypes: [Animal] + groups: + - id: Alcohol + rateModifier: 0.1 # removes alcohol very slowly along with the stomach removing it as a drink + +- type: entity + id: OrganArachnidKidneys + parent: BaseHumanOrgan + name: kidneys + description: "Filters toxins from the bloodstream." + noSpawn: true + components: + - type: Sprite + layers: + - state: kidney-l + - state: kidney-r + - type: Organ + # The kidneys just remove anything that doesn't currently have any metabolisms, as a stopgap. + - type: Metabolizer + updateFrequency: 1.5 + maxReagents: 5 + metabolizerTypes: [Animal] + removeEmpty: true + +- type: entity + id: OrganArachnidEyes + parent: BaseArachnidOrgan + name: eyes + description: "Eyes see you!" + components: + - type: Sprite + layers: + - state: eyeball-l + - state: eyeball-r + - type: Organ + +- type: entity + id: OrganArachnidTongue + parent: BaseArachnidOrgan + name: tongue + description: "A fleshy muscle mostly used for lying." + components: + - type: Sprite + state: tongue + - type: Organ diff --git a/Resources/Prototypes/Body/Parts/arachnid.yml b/Resources/Prototypes/Body/Parts/arachnid.yml new file mode 100644 index 0000000000..feeaed1986 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/arachnid.yml @@ -0,0 +1,190 @@ +# TODO: Add descriptions (many) +# TODO BODY: Part damage +- type: entity + id: PartArachnid + parent: BaseItem + name: "arachnid body part" + abstract: true + components: + - type: Damageable + damageContainer: Biological + - type: BodyPart + - type: ContainerContainer + containers: + bodypart: !type:Container + ents: [] + +- type: entity + id: TorsoArachnid + name: "arachnid torso" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "torso_m" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "torso_m" + - type: BodyPart + partType: Torso + +- type: entity + id: HeadArachnid + name: "arachnid head" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "head_m" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "head_m" + - type: BodyPart + partType: Head + vital: true + - type: Input + context: "ghost" + - type: MovementSpeedModifier + baseWalkSpeed: 0 + baseSprintSpeed: 0 + - type: InputMover + - type: GhostOnMove + - type: Tag + tags: + - Head + +- type: entity + id: LeftArmArachnid + name: "left arachnid arm" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_arm" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_arm" + - type: BodyPart + partType: Arm + symmetry: Left + +- type: entity + id: RightArmArachnid + name: "right arachnid arm" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_arm" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_arm" + - type: BodyPart + partType: Arm + symmetry: Right + +- type: entity + id: LeftHandArachnid + name: "left arachnid hand" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_hand" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_hand" + - type: BodyPart + partType: Hand + symmetry: Left + +- type: entity + id: RightHandArachnid + name: "right arachnid hand" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_hand" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_hand" + - type: BodyPart + partType: Hand + symmetry: Right + +- type: entity + id: LeftLegArachnid + name: "left arachnid leg" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_leg" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_leg" + - type: BodyPart + partType: Leg + symmetry: Left + - type: MovementBodyPart + walkSpeed: 3.0 + sprintSpeed: 5.0 + +- type: entity + id: RightLegArachnid + name: "right arachnid leg" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_leg" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_leg" + - type: BodyPart + partType: Leg + symmetry: Right + - type: MovementBodyPart + walkSpeed: 3.0 + sprintSpeed: 5.0 + +- type: entity + id: LeftFootArachnid + name: "left arachnid foot" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_foot" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "l_foot" + - type: BodyPart + partType: Foot + symmetry: Left + +- type: entity + id: RightFootArachnid + name: "right arachnid foot" + parent: PartArachnid + components: + - type: Sprite + netsync: false + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_foot" + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: "r_foot" + - type: BodyPart + partType: Foot + symmetry: Right diff --git a/Resources/Prototypes/Body/Prototypes/arachnid.yml b/Resources/Prototypes/Body/Prototypes/arachnid.yml new file mode 100644 index 0000000000..0c57d3a199 --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/arachnid.yml @@ -0,0 +1,49 @@ +- type: body + id: Arachnid + name: "Arachnid" + root: torso + slots: + head: + part: HeadArachnid + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganArachnidEyes + torso: + part: TorsoArachnid + organs: + heart: OrganArachnidHeart + lungs: OrganAnimalLungs + stomach: OrganArachnidStomach + liver: OrganArachnidLiver + kidneys: OrganArachnidKidneys + connections: + - left arm + - right arm + - left leg + - right leg + right arm: + part: RightArmArachnid + connections: + - right hand + left arm: + part: LeftArmArachnid + connections: + - left hand + right hand: + part: RightHandArachnid + left hand: + part: LeftHandArachnid + right leg: + part: RightLegArachnid + connections: + - right foot + left leg: + part: LeftLegArachnid + connections: + - left foot + right foot: + part: RightFootArachnid + left foot: + part: LeftFootArachnid diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 273baf47f8..5e3ff41fdc 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -118,6 +118,15 @@ Heat: 1.5 Shock: 1.2 +- type: damageModifierSet + id: Arachnid # Don't do too well with high temperatures, venomous (well some kinds anyways) and have an exo-skeleton (so probably harder to stab but easier to... break?) + coefficients: + Blunt: 1.15 + Piercing: 1.15 + Slash: 0.85 + Heat: 1.25 + Poison: 0.8 + - type: damageModifierSet id: Zombie #Blunt resistent and immune to biological threats, but can be hacked apart and burned coefficients: diff --git a/Resources/Prototypes/Datasets/Names/arachnid_first.yml b/Resources/Prototypes/Datasets/Names/arachnid_first.yml new file mode 100644 index 0000000000..4043228b52 --- /dev/null +++ b/Resources/Prototypes/Datasets/Names/arachnid_first.yml @@ -0,0 +1,77 @@ +- type: dataset + id: names_arachnid_first + values: + - Amblyocarenum + - Aname + - Aname + - Aptostichus + - Archoleptoneta + - Argyroneta + - Atypoides + - Callobius + - Clubiona + - Cteniza + - Deinopis + - Delena + - Diploglena + - Drassodes + - Dysdera + - Entypesa + - Envia + - Eratigena + - Eresus + - Euagrus + - Goeldia + - Hersilia + - Hexathele + - Hibana + - Hickmania + - Huttonia + - Hypochilus + - Idiosoma + - Illawarra + - Kimura + - Kukulcania + - Lampona + - Latrodectus + - Leucauge + - Linyphia + - Loxosceles + - Lycosa + - Madagascarchaea + - Microhexura + - Missulena + - Misumena + - Moggridgea + - Nesticella + - Oarces + - Oecobius + - Oonops + - Paratropis + - Patu + - Peucetia + - Philodromus + - Pholcus + - Phoneutria + - Phryganoporus + - Pimoa + - Pisaura + - Progradungula + - Salticus + - Sason + - Scytodes + - Segestria + - Selenops + - Sphodros + - Spiroctenus + - Tartarus + - Tayshaneta + - Theotima + - Theraphosa + - Theridiosoma + - Trogloraptor + - Uloborus + - Ummidia + - Zodarion + - Zoropsis + - Zygiella diff --git a/Resources/Prototypes/Datasets/Names/arachnid_last.yml b/Resources/Prototypes/Datasets/Names/arachnid_last.yml new file mode 100644 index 0000000000..f6e7f3680b --- /dev/null +++ b/Resources/Prototypes/Datasets/Names/arachnid_last.yml @@ -0,0 +1,71 @@ +- type: dataset + id: names_arachnid_last + values: + - Agrestis + - Algarve + - Andohahela + - Aquatica + - Atra + - Blondi + - Cancerides + - Candidus + - Carraiensis + - Crocata + - Cthulhu + - Digua + - Dispar + - Diversicolor + - Domesticus + - Fera + - Florentina + - Formosanus + - Garciai + - Gemmosum + - Germanicum + - Gertschi + - Gracilicollis + - Hasselti + - Hibernalis + - Hochstetteri + - Marapu + - Marchingtoni + - Minutissima + - Mirabilis + - Montivaga + - Mullamullangensis + - Myopica + - Navus + - Nigrum + - Nuragicus + - Obscura + - Palpimanoides + - Personatus + - Phalangioides + - Radiatus + - Rainbowi + - Reclusa + - Reticulatus + - Riversi + - Rufipes + - Sandaliatus + - Sauvagesi + - Savignyi + - Scenicus + - Simus + - Spinimana + - Subrufa + - Sundaicum + - Tarantula + - Thoracica + - Thorelli + - Triangularis + - Trivialis + - Tuxtlensis + - Vatia + - Velox + - Venusta + - Viridans + - Walckenaeri + - Walckenaerius + - Wisharti + - X-Notata diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml new file mode 100644 index 0000000000..fc96643f1c --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml @@ -0,0 +1,59 @@ +# Appendages +- type: marking + id: ArachnidAppendagesDefault + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Arachnid] + sprites: + - sprite: Mobs/Customization/arachnid.rsi + state: web + - sprite: Mobs/Customization/arachnid.rsi + state: long + +- type: marking + id: ArachnidAppendagesSharp + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Arachnid] + sprites: + - sprite: Mobs/Customization/arachnid.rsi + state: web + - sprite: Mobs/Customization/arachnid.rsi + state: sharp + +# Chest +- type: marking + id: ArachnidTorsoStripes + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Arachnid] + sprites: + - sprite: Mobs/Customization/arachnid.rsi + state: stripes + +- type: marking + id: ArachnidTorsoSlashes + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Arachnid] + sprites: + - sprite: Mobs/Customization/arachnid.rsi + state: slashes + +- type: marking + id: ArachnidTorsoX + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Arachnid] + sprites: + - sprite: Mobs/Customization/arachnid.rsi + state: x + +- type: marking + id: ArachnidTorsoCross + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Arachnid] + sprites: + - sprite: Mobs/Customization/arachnid.rsi + state: cross diff --git a/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml new file mode 100644 index 0000000000..33a07947bd --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Player/arachnid.yml @@ -0,0 +1,35 @@ +- type: entity + save: false + name: Urist McWeb + parent: BaseMobArachnid + id: MobArachnid + components: + - type: CombatMode + canDisarm: true + - type: InteractionPopup + successChance: 1 + interactSuccessString: hugging-success-generic + interactSuccessSound: /Audio/Effects/thudswoosh.ogg + messagePerceivedByOthers: hugging-success-generic-others + - type: Mind + showExamineInfo: true + - type: Input + context: "human" + - type: MobMover + - type: InputMover + - type: Respirator + damage: + types: + Asphyxiation: 4 # Make sure you have O2 on you at all times + damageRecovery: + types: + Asphyxiation: -0.5 # Recovery will suck without chems + - type: Alerts + - type: Actions + - type: Eye + - type: CameraRecoil + - type: Examiner + - type: CanHostGuardian + - type: Faction + factions: + - NanoTrasen diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml new file mode 100644 index 0000000000..3c71e69519 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -0,0 +1,89 @@ +- type: entity + save: false + name: Urist McWeb + parent: BaseMobOrganic + id: BaseMobArachnid + abstract: true + components: + # The important nessessities + - type: MovementSpeedModifier + baseWalkSpeed: 3.0 + baseSprintSpeed: 5.0 + - type: Body + prototype: Arachnid + requiredLegs: 2 + - type: Perishable + - type: HumanoidAppearance + species: Arachnid + - type: Damageable + damageContainer: Biological + damageModifierSet: Arachnid # spooder + - type: Icon + sprite: Mobs/Species/Arachnid/parts.rsi + state: full + - type: Hunger + baseDecayRate: 0.1 # Probably faster than humans? + - type: Thirst + # Damage and speed + - type: Bloodstream + bloodReagent: SpiderBlood + - type: Temperature + heatDamageThreshold: 400 + coldDamageThreshold: 285 + currentTemperature: 310.15 + specificHeat: 46 + coldDamage: + types: + Cold : 0.2 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 0.1 #per second, scales with temperature & other constants + - type: Barotrauma + damage: + types: + Blunt: 0.20 #per second, scales with pressure and other constants. + - type: SlowOnDamage + speedModifierThresholds: # This is an ouch, but it does make up for their extra speed + 50: 0.6 + 70: 0.4 + # Misc + - type: Speech + speechSounds: Arachnid + - type: Vocal + sounds: + Male: UnisexArachnid + Female: UnisexArachnid + Unsexed: UnisexArachnid + - type: Inventory + templateId: arachnid + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Weapons/pierce.ogg + angle: 30 + animation: WeaponArcClaw + attackRate: 1.5 + damage: + types: + Slash: 3 + Poison: 1 + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeatSpider + amount: 5 + +- type: entity + save: false + name: Urist McFluff + parent: MobHumanDummy + id: MobArachnidDummy + noSpawn: true + description: A dummy arachnid meant to be used in character setup. # Hey! It's not dumb :( + components: + - type: Inventory + templateId: arachnid + - type: HumanoidAppearance + species: Arachnid + +#88w88 diff --git a/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml new file mode 100644 index 0000000000..8fa9699f32 --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/arachnid_inventory_template.yml @@ -0,0 +1,115 @@ +- type: inventoryTemplate + id: arachnid + slots: + - name: shoes + slotTexture: shoes + slotFlags: FEET + stripTime: 3 + uiWindowPos: 1,3 + strippingWindowPos: 1,3 + displayName: Shoes + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 0,2 + strippingWindowPos: 0,2 + displayName: Jumpsuit + - name: outerClothing + slotTexture: suit + slotFlags: OUTERCLOTHING + slotGroup: MainHotbar + stripTime: 6 + uiWindowPos: 1,2 + strippingWindowPos: 1,2 + displayName: Suit + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,2 + strippingWindowPos: 2,2 + displayName: Gloves + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,1 + strippingWindowPos: 0,1 + displayName: Neck + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,1 + strippingWindowPos: 1,1 + displayName: Mask + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,0 + displayName: Ears + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,0 + strippingWindowPos: 1,0 + displayName: Head + - name: pocket1 + slotTexture: pocket + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: id + slotTexture: id + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back + - name: web1 + slotTexture: web + slotFlags: POCKET + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,3 + displayName: Left Web + - name: web2 + slotTexture: web + slotFlags: POCKET + stripTime: 3 + uiWindowPos: 6,3 + strippingWindowPos: 2,3 + displayName: Right Web diff --git a/Resources/Prototypes/Reagents/biological.yml b/Resources/Prototypes/Reagents/biological.yml index 7ff91a39a3..afbf4e390f 100644 --- a/Resources/Prototypes/Reagents/biological.yml +++ b/Resources/Prototypes/Reagents/biological.yml @@ -33,6 +33,25 @@ - !type:SatiateHunger factor: 1.5 +- type: reagent + id: SpiderBlood + name: reagent-name-spider-blood + group: Biological + desc: reagent-desc-spider-blood + flavor: metallic + color: "#162581" + physicalDesc: reagent-physical-desc-ferrous + slippery: false + metabolisms: + Drink: + # Quenching! + effects: + - !type:SatiateThirst + factor: 1.5 + plantMetabolism: + - !type:PlantAdjustWater + amount: 0.5 + - type: reagent id: Ichor name: reagent-name-ichor diff --git a/Resources/Prototypes/Species/arachnid.yml b/Resources/Prototypes/Species/arachnid.yml new file mode 100644 index 0000000000..50b4e4315e --- /dev/null +++ b/Resources/Prototypes/Species/arachnid.yml @@ -0,0 +1,148 @@ +- type: species + id: Arachnid + name: species-name-arachnid + roundStart: true + prototype: MobArachnid + sprites: MobArachnidSprites + defaultSkinTone: "#385878" + markingLimits: MobArachnidMarkingLimits + dollPrototype: MobArachnidDummy + skinColoration: Hues + maleFirstNames: names_arachnid_first + femaleFirstNames: names_arachnid_first + lastNames: names_arachnid_last + sexes: + - Unsexed + +- type: speciesBaseSprites + id: MobArachnidSprites + sprites: + Head: MobArachnidHead + Snout: MobHumanoidAnyMarking + Chest: MobArachnidTorso + HeadTop: MobHumanoidAnyMarking + HeadSide: MobHumanoidAnyMarking + Tail: MobHumanoidAnyMarking + Eyes: MobArachnidEyes + LArm: MobArachnidLArm + RArm: MobArachnidRArm + LHand: MobArachnidLHand + RHand: MobArachnidRHand + LLeg: MobArachnidLLeg + RLeg: MobArachnidRLeg + LFoot: MobArachnidLFoot + RFoot: MobArachnidRFoot + +- type: humanoidBaseSprite + id: MobArachnidEyes + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: eyes + +- type: markingPoints + id: MobArachnidMarkingLimits + onlyWhitelisted: true + points: + Hair: + points: 0 + required: false + FacialHair: + points: 0 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [ ArachnidAppendagesDefault ] + HeadTop: + points: 1 + required: false + HeadSide: + points: 1 + required: false + Chest: + points: 1 + required: false + +- type: humanoidBaseSprite + id: MobArachnidHead + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobArachnidHeadMale + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobArachnidHeadFemale + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobArachnidTorso + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobArachnidTorsoMale + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobArachnidTorsoFemale + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobArachnidLLeg + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobArachnidLHand + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobArachnidLArm + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobArachnidLFoot + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobArachnidRLeg + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobArachnidRHand + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobArachnidRArm + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobArachnidRFoot + baseSprite: + sprite: Mobs/Species/Arachnid/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml index ac0e63c193..50004f78f4 100644 --- a/Resources/Prototypes/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml @@ -87,6 +87,16 @@ variation: 0.125 +- type: emoteSounds + id: UnisexArachnid + params: + variation: 0.125 + sounds: + Scream: + path: /Audio/Voice/Arachnid/arachnid_scream.ogg + Laugh: + path: /Audio/Voice/Arachnid/arachnid_laugh.ogg + - type: emoteSounds id: UnisexDwarf sounds: diff --git a/Resources/Prototypes/Voice/speech_sounds.yml b/Resources/Prototypes/Voice/speech_sounds.yml index 0428630328..d59e3189da 100644 --- a/Resources/Prototypes/Voice/speech_sounds.yml +++ b/Resources/Prototypes/Voice/speech_sounds.yml @@ -87,3 +87,12 @@ path: /Audio/Voice/Talk/slime_ask.ogg exclaimSound: path: /Audio/Voice/Talk/slime_exclaim.ogg + +- type: speechSounds + id: Arachnid + saySound: + path: /Audio/Voice/Talk/arachnid.ogg + askSound: + path: /Audio/Voice/Talk/arachnid_ask.ogg + exclaimSound: + path: /Audio/Voice/Talk/arachnid_exclaim.ogg diff --git a/Resources/Textures/Interface/Default/Slots/web.png b/Resources/Textures/Interface/Default/Slots/web.png new file mode 100644 index 0000000000..d85d84e28c Binary files /dev/null and b/Resources/Textures/Interface/Default/Slots/web.png differ diff --git a/Resources/Textures/Interface/Default/meta.json b/Resources/Textures/Interface/Default/meta.json index 6aa2a42766..c6e9a63c2f 100644 --- a/Resources/Textures/Interface/Default/meta.json +++ b/Resources/Textures/Interface/Default/meta.json @@ -5,7 +5,7 @@ "y": 32 }, "license": "CC-BY-NC-SA-3.0", - "copyright": "Taken from https://github.com/goonstation/goonstation at commit e77d85d9c1d93aa32da7702737ceeac2b56738ac.", + "copyright": "Taken from https://github.com/goonstation/goonstation at commit e77d85d9c1d93aa32da7702737ceeac2b56738ac, slightly modified by PixelTK", "states": [ { "name": "back", @@ -58,7 +58,7 @@ { "name": "mask" }, - { + { "name": "neck" }, { @@ -81,6 +81,9 @@ }, { "name": "pda" + }, + { + "name": "web" } ] } diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/cross.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/cross.png new file mode 100644 index 0000000000..e938f1810c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/cross.png differ diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/long.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/long.png new file mode 100644 index 0000000000..35f36dbcdb Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/long.png differ diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/meta.json b/Resources/Textures/Mobs/Customization/arachnid.rsi/meta.json new file mode 100644 index 0000000000..b1567f7174 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/arachnid.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/PixelTheKermit", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "long", + "directions": 4 + }, + { + "name": "sharp", + "directions": 4 + }, + { + "name": "web", + "directions": 4 + }, + { + "name": "stripes", + "directions": 4 + }, + { + "name": "slashes", + "directions": 4 + }, + { + "name": "x", + "directions": 4 + }, + { + "name": "cross", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/sharp.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/sharp.png new file mode 100644 index 0000000000..d1c142a56a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/sharp.png differ diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/slashes.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/slashes.png new file mode 100644 index 0000000000..4bae3e82d4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/slashes.png differ diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/stripes.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/stripes.png new file mode 100644 index 0000000000..b7469ec973 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/stripes.png differ diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/web.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/web.png new file mode 100644 index 0000000000..bd6e217de8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/web.png differ diff --git a/Resources/Textures/Mobs/Customization/arachnid.rsi/x.png b/Resources/Textures/Mobs/Customization/arachnid.rsi/x.png new file mode 100644 index 0000000000..28f033899c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/arachnid.rsi/x.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/eyeball-l.png b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/eyeball-l.png new file mode 100644 index 0000000000..95d2113ff5 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/eyeball-l.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/eyeball-r.png b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/eyeball-r.png new file mode 100644 index 0000000000..9bc24d1581 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/eyeball-r.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/meta.json b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/meta.json new file mode 100644 index 0000000000..4d838131d5 --- /dev/null +++ b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/PixelTheKermit", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "eyeball-l" + }, + { + "name": "eyeball-r" + }, + { + "name": "tongue" + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/tongue.png b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/tongue.png new file mode 100644 index 0000000000..d8d2f33643 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/organs.rsi/tongue.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/eyes.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/eyes.png new file mode 100644 index 0000000000..7e062f1bb6 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/eyes.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/full.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/full.png new file mode 100644 index 0000000000..ae5422ffbe Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/full.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/head_f.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/head_f.png new file mode 100644 index 0000000000..2d30c308da Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/head_f.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/head_m.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/head_m.png new file mode 100644 index 0000000000..2d30c308da Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/head_m.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_arm.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_arm.png new file mode 100644 index 0000000000..2852ca93a8 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_foot.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_foot.png new file mode 100644 index 0000000000..f60c048cab Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_hand.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_hand.png new file mode 100644 index 0000000000..0efba6f5e4 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_leg.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_leg.png new file mode 100644 index 0000000000..0e1fbafebb Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/meta.json b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/meta.json new file mode 100644 index 0000000000..4811bd2727 --- /dev/null +++ b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/meta.json @@ -0,0 +1,70 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts.dmi for acting as a base, modified by https://github.com/PixelTheKermit", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + }, + { + "name": "template", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_arm.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_arm.png new file mode 100644 index 0000000000..170942ea19 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_foot.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_foot.png new file mode 100644 index 0000000000..d0e5776c0f Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_hand.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_hand.png new file mode 100644 index 0000000000..0a0991ecc2 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_leg.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_leg.png new file mode 100644 index 0000000000..0dcaaf4931 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/template.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/template.png new file mode 100644 index 0000000000..da755c22be Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/template.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/torso_f.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/torso_f.png new file mode 100644 index 0000000000..f1c788917c Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/torso_m.png b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/torso_m.png new file mode 100644 index 0000000000..6ce92d8f01 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Arachnid/parts.rsi/torso_m.png differ