From 1fa4ad75d44b68229bf6a93d568bd797e3553f31 Mon Sep 17 00:00:00 2001 From: Roudenn Date: Thu, 21 Nov 2024 19:32:33 +0300 Subject: [PATCH 1/3] They did surgery on a monkey --- .../ru-RU/backmen/entities/bodyparts.ftl | 26 ++++ .../Prototypes/Body/Organs/Animal/animal.yml | 61 ++++++++ .../Prototypes/Body/Parts/Animal/kobold.yml | 119 ++++++++++++++ .../Prototypes/Body/Parts/Animal/monkey.yml | 119 ++++++++++++++ .../Body/Parts/{ => Animal}/rat.yml | 0 .../{Specific => Animal}/mothroach.yml | 0 .../Body/Prototypes/{ => Animal}/rat.yml | 0 .../Prototypes/Body/Prototypes/kobold.yml | 51 ++++++ .../Prototypes/Body/Prototypes/monkey.yml | 51 ++++++ .../Mobs/Customization/Markings/reptilian.yml | 14 +- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 106 +++++++------ .../monkey_inventory_template.yml | 46 +++++- Resources/Prototypes/Reagents/gases.yml | 2 +- .../Entities/Mobs/Species/primate.yml | 41 +++++ .../Prototypes/_Backmen/Species/kobold.yml | 143 +++++++++++++++++ .../Prototypes/_Backmen/Species/monkey.yml | 146 ++++++++++++++++++ .../Textures/Mobs/Animals/kobold.rsi/eyes.png | Bin 0 -> 126 bytes .../Textures/Mobs/Animals/kobold.rsi/full.png | Bin 0 -> 733 bytes .../Mobs/Animals/kobold.rsi/head_f.png | Bin 0 -> 653 bytes .../Mobs/Animals/kobold.rsi/head_m.png | Bin 0 -> 653 bytes .../Mobs/Animals/kobold.rsi/innerline.png | Bin 0 -> 10385 bytes .../Mobs/Animals/kobold.rsi/kobold.png | Bin 10385 -> 10720 bytes .../Mobs/Animals/kobold.rsi/l_arm.png | Bin 0 -> 278 bytes .../Mobs/Animals/kobold.rsi/l_foot.png | Bin 0 -> 231 bytes .../Mobs/Animals/kobold.rsi/l_hand.png | Bin 0 -> 267 bytes .../Mobs/Animals/kobold.rsi/l_leg.png | Bin 0 -> 253 bytes .../Mobs/Animals/kobold.rsi/meta.json | 65 +++++++- .../Mobs/Animals/kobold.rsi/r_arm.png | Bin 0 -> 313 bytes .../Mobs/Animals/kobold.rsi/r_foot.png | Bin 0 -> 239 bytes .../Mobs/Animals/kobold.rsi/r_hand.png | Bin 0 -> 275 bytes .../Mobs/Animals/kobold.rsi/r_leg.png | Bin 0 -> 256 bytes .../Textures/Mobs/Animals/kobold.rsi/tail.png | Bin 0 -> 561 bytes .../Mobs/Animals/kobold.rsi/torso_f.png | Bin 0 -> 605 bytes .../Mobs/Animals/kobold.rsi/torso_m.png | Bin 0 -> 605 bytes .../Textures/Mobs/Animals/monkey.rsi/eyes.png | Bin 0 -> 126 bytes .../Textures/Mobs/Animals/monkey.rsi/full.png | Bin 0 -> 519 bytes .../Mobs/Animals/monkey.rsi/head_f.png | Bin 0 -> 477 bytes .../Mobs/Animals/monkey.rsi/head_m.png | Bin 0 -> 477 bytes .../Mobs/Animals/monkey.rsi/l_arm.png | Bin 0 -> 238 bytes .../Mobs/Animals/monkey.rsi/l_foot.png | Bin 0 -> 211 bytes .../Mobs/Animals/monkey.rsi/l_hand.png | Bin 0 -> 188 bytes .../Mobs/Animals/monkey.rsi/l_leg.png | Bin 0 -> 255 bytes .../Mobs/Animals/monkey.rsi/meta.json | 85 ++++++++-- .../Mobs/Animals/monkey.rsi/r_arm.png | Bin 0 -> 261 bytes .../Mobs/Animals/monkey.rsi/r_foot.png | Bin 0 -> 214 bytes .../Mobs/Animals/monkey.rsi/r_hand.png | Bin 0 -> 191 bytes .../Mobs/Animals/monkey.rsi/r_leg.png | Bin 0 -> 256 bytes .../Textures/Mobs/Animals/monkey.rsi/tail.png | Bin 0 -> 360 bytes .../Mobs/Animals/monkey.rsi/torso_f.png | Bin 0 -> 465 bytes .../Mobs/Animals/monkey.rsi/torso_m.png | Bin 0 -> 465 bytes 50 files changed, 998 insertions(+), 77 deletions(-) create mode 100644 Resources/Locale/ru-RU/backmen/entities/bodyparts.ftl create mode 100644 Resources/Prototypes/Body/Parts/Animal/kobold.yml create mode 100644 Resources/Prototypes/Body/Parts/Animal/monkey.yml rename Resources/Prototypes/Body/Parts/{ => Animal}/rat.yml (100%) rename Resources/Prototypes/Body/Prototypes/{Specific => Animal}/mothroach.yml (100%) rename Resources/Prototypes/Body/Prototypes/{ => Animal}/rat.yml (100%) create mode 100644 Resources/Prototypes/Body/Prototypes/kobold.yml create mode 100644 Resources/Prototypes/Body/Prototypes/monkey.yml create mode 100644 Resources/Prototypes/_Backmen/Entities/Mobs/Species/primate.yml create mode 100644 Resources/Prototypes/_Backmen/Species/kobold.yml create mode 100644 Resources/Prototypes/_Backmen/Species/monkey.yml create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/eyes.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/full.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/head_f.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/head_m.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/innerline.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/l_arm.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/l_foot.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/l_hand.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/l_leg.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/r_arm.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/r_foot.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/r_hand.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/r_leg.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/tail.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/torso_f.png create mode 100644 Resources/Textures/Mobs/Animals/kobold.rsi/torso_m.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/eyes.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/full.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/head_f.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/head_m.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/l_arm.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/l_foot.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/l_hand.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/l_leg.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/r_arm.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/r_foot.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/r_hand.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/r_leg.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/tail.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/torso_f.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/torso_m.png diff --git a/Resources/Locale/ru-RU/backmen/entities/bodyparts.ftl b/Resources/Locale/ru-RU/backmen/entities/bodyparts.ftl new file mode 100644 index 00000000000..5a148ad0391 --- /dev/null +++ b/Resources/Locale/ru-RU/backmen/entities/bodyparts.ftl @@ -0,0 +1,26 @@ +ent-PartMonkey = часть обезьяны +ent-TorsoMonkey = торс обезьяны +ent-HeadMonkey = голова обезьяны +ent-LeftArmMonkey = левая рука обезьяны +ent-RightArmMonkey = правая рука обезьяны +ent-LeftHandMonkey = левая ладонь обезьяны +ent-RightHandMonkey = правая ладонь обезьяны +ent-LeftLegMonkey = левая нога обезьяны +ent-RightLegMonkey = правая нога обезьяны +ent-LeftFootMonkey = левая стопа обезьяны +ent-RightFootMonkey = правая стопа обезьяны + +ent-PartKobold = часть кобольда +ent-TorsoKobold = торс кобольда +ent-HeadKobold = голова кобольда +ent-LeftArmKobold = левая рука кобольда +ent-RightArmKobold = правая рука кобольда +ent-LeftHandKobold = левая ладонь кобольда +ent-RightHandKobold = правая ладонь кобольда +ent-LeftLegKobold = левая нога кобольда +ent-RightLegKobold = правая нога кобольда +ent-LeftFootKobold = левая стопа кобольда +ent-RightFootKobold = правая стопа кобольда + +ent-OrganAnimalBrain = мозг животного +ent-OrganAnimalEyes = глаза животного diff --git a/Resources/Prototypes/Body/Organs/Animal/animal.yml b/Resources/Prototypes/Body/Organs/Animal/animal.yml index 6c20ded68e6..8748e9eda0a 100644 --- a/Resources/Prototypes/Body/Organs/Animal/animal.yml +++ b/Resources/Prototypes/Body/Organs/Animal/animal.yml @@ -171,3 +171,64 @@ - type: Item size: Small heldPrefix: kidneys + +- type: entity + id: OrganAnimalBrain + parent: BaseAnimalOrganUnGibbable + name: animal brain + description: "Not so intelligence, not so honk." + components: + - type: Sprite + state: brain + - type: Organ + slotId: brain # backmen: surgery + - type: Input + context: "ghost" + - type: Brain + - type: InputMover + - type: Examiner + - type: BlockMovement + - type: BadFood + - type: Tag + tags: + - Meat + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 10 + food: + maxVol: 5 + reagents: + - ReagentId: GreyMatter + Quantity: 5 + - type: FlavorProfile + flavors: + - people + - type: FoodSequenceElement + entries: + Burger: Brain + Taco: Brain + - type: Item + size: Small + heldPrefix: brain + +- type: entity + id: OrganAnimalEyes + parent: BaseAnimalOrgan + name: animal eyes + description: "I see you!" + components: + # start-backmen: surgery + - type: Organ + slotId: eyes + - type: Eyes + # end-backmen: surgery + - type: Sprite + layers: + - state: eyeball-l + - state: eyeball-r + - type: Item + size: Small + heldPrefix: eyeballs diff --git a/Resources/Prototypes/Body/Parts/Animal/kobold.yml b/Resources/Prototypes/Body/Parts/Animal/kobold.yml new file mode 100644 index 00000000000..2ca5bd7ea78 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/Animal/kobold.yml @@ -0,0 +1,119 @@ +# TODO: Add descriptions (many) + +- type: entity + id: PartKobold + parent: [BaseItem, BasePart] + name: "Kobold body part" + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoKobold + name: "Kobold torso" + parent: [PartKobold, BaseTorso] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + +- type: entity + id: HeadKobold + name: "Kobold head" + parent: [PartKobold, BaseHead] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmKobold + name: "left Kobold arm" + parent: [PartKobold, BaseLeftArm] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_arm" + +- type: entity + id: RightArmKobold + name: "right Kobold arm" + parent: [PartKobold, BaseRightArm] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_arm" + +- type: entity + id: LeftHandKobold + name: "left Kobold hand" + parent: [PartKobold, BaseLeftHand] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_hand" + +- type: entity + id: RightHandKobold + name: "right Kobold hand" + parent: [PartKobold, BaseRightHand] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_hand" + +- type: entity + id: LeftLegKobold + name: "left Kobold leg" + parent: [PartKobold, BaseLeftLeg] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_leg" + +- type: entity + id: RightLegKobold + name: "right Kobold leg" + parent: [PartKobold, BaseRightLeg] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_leg" + +- type: entity + id: LeftFootKobold + name: "left Kobold foot" + parent: [PartKobold, BaseLeftFoot] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_foot" + +- type: entity + id: RightFootKobold + name: "right Kobold foot" + parent: [PartKobold, BaseRightFoot] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Body/Parts/Animal/monkey.yml b/Resources/Prototypes/Body/Parts/Animal/monkey.yml new file mode 100644 index 00000000000..01b8aa4de8a --- /dev/null +++ b/Resources/Prototypes/Body/Parts/Animal/monkey.yml @@ -0,0 +1,119 @@ +# TODO: Add descriptions (many) + +- type: entity + id: PartMonkey + parent: [BaseItem, BasePart] + name: "monkey body part" + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoMonkey + name: "monkey torso" + parent: [PartMonkey, BaseTorso] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + +- type: entity + id: HeadMonkey + name: "monkey head" + parent: [PartMonkey, BaseHead] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmMonkey + name: "left monkey arm" + parent: [PartMonkey, BaseLeftArm] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_arm" + +- type: entity + id: RightArmMonkey + name: "right monkey arm" + parent: [PartMonkey, BaseRightArm] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_arm" + +- type: entity + id: LeftHandMonkey + name: "left monkey hand" + parent: [PartMonkey, BaseLeftHand] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_hand" + +- type: entity + id: RightHandMonkey + name: "right monkey hand" + parent: [PartMonkey, BaseRightHand] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_hand" + +- type: entity + id: LeftLegMonkey + name: "left monkey leg" + parent: [PartMonkey, BaseLeftLeg] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_leg" + +- type: entity + id: RightLegMonkey + name: "right monkey leg" + parent: [PartMonkey, BaseRightLeg] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_leg" + +- type: entity + id: LeftFootMonkey + name: "left monkey foot" + parent: [PartMonkey, BaseLeftFoot] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_foot" + +- type: entity + id: RightFootMonkey + name: "right monkey foot" + parent: [PartMonkey, BaseRightFoot] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Body/Parts/rat.yml b/Resources/Prototypes/Body/Parts/Animal/rat.yml similarity index 100% rename from Resources/Prototypes/Body/Parts/rat.yml rename to Resources/Prototypes/Body/Parts/Animal/rat.yml diff --git a/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml b/Resources/Prototypes/Body/Prototypes/Animal/mothroach.yml similarity index 100% rename from Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml rename to Resources/Prototypes/Body/Prototypes/Animal/mothroach.yml diff --git a/Resources/Prototypes/Body/Prototypes/rat.yml b/Resources/Prototypes/Body/Prototypes/Animal/rat.yml similarity index 100% rename from Resources/Prototypes/Body/Prototypes/rat.yml rename to Resources/Prototypes/Body/Prototypes/Animal/rat.yml diff --git a/Resources/Prototypes/Body/Prototypes/kobold.yml b/Resources/Prototypes/Body/Prototypes/kobold.yml new file mode 100644 index 00000000000..6cf15dae081 --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/kobold.yml @@ -0,0 +1,51 @@ +# Shitmed - this is just a copy of human body but with animal organs. +- type: body + id: Kobold + name: "Kobold" + root: torso + slots: + head: + part: HeadKobold + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoKobold + connections: + - right arm + - left arm + - right leg + - left leg + - head + organs: + heart: OrganAnimalHeart + lungs: OrganAnimalLungs + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + kidneys: OrganAnimalKidneys + right arm: + part: RightArmKobold + connections: + - right hand + left arm: + part: LeftArmKobold + connections: + - left hand + right hand: + part: RightHandKobold + left hand: + part: LeftHandKobold + right leg: + part: RightLegKobold + connections: + - right foot + left leg: + part: LeftLegKobold + connections: + - left foot + right foot: + part: RightFootKobold + left foot: + part: LeftFootKobold diff --git a/Resources/Prototypes/Body/Prototypes/monkey.yml b/Resources/Prototypes/Body/Prototypes/monkey.yml new file mode 100644 index 00000000000..9ba35d6c792 --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/monkey.yml @@ -0,0 +1,51 @@ +# Shitmed - this is just a copy of human body but with animal organs. +- type: body + id: Monkey + name: "Monkey" + root: torso + slots: + head: + part: HeadMonkey + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoMonkey + connections: + - right arm + - left arm + - right leg + - left leg + - head + organs: + heart: OrganAnimalHeart + lungs: OrganAnimalLungs + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + kidneys: OrganAnimalKidneys + right arm: + part: RightArmMonkey + connections: + - right hand + left arm: + part: LeftArmMonkey + connections: + - left hand + right hand: + part: RightHandMonkey + left hand: + part: LeftHandMonkey + right leg: + part: RightLegMonkey + connections: + - right foot + left leg: + part: LeftLegMonkey + connections: + - left foot + right foot: + part: RightFootMonkey + left foot: + part: LeftFootMonkey diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml index dd1f1a3702a..95a3cd0f493 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml @@ -272,7 +272,7 @@ id: LizardHornsArgali bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Backmen/Mobs/Customization/reptilian_parts.rsi # Ataraxia state: horns_argali_l @@ -283,7 +283,7 @@ id: LizardHornsAyrshire bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Backmen/Mobs/Customization/reptilian_parts.rsi # Ataraxia state: horns_ayrshire_l @@ -294,7 +294,7 @@ id: LizardHornsMyrsore bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Backmen/Mobs/Customization/reptilian_parts.rsi # Ataraxia state: horns_myrsore_l @@ -305,7 +305,7 @@ id: LizardHornsBighorn bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Backmen/Mobs/Customization/reptilian_parts.rsi # Ataraxia state: horns_bighorn_l @@ -316,7 +316,7 @@ id: LizardHornsDemonic bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_demonic @@ -325,7 +325,7 @@ id: LizardHornsKoboldEars bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_kobold_ears @@ -334,7 +334,7 @@ id: LizardHornsFloppyKoboldEars bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_floppy_kobold_ears diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 171dcccda47..23f0d5fad35 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1317,6 +1317,8 @@ understands: - TauCetiBasic - Monkey + - type: HumanoidAppearance + species: Monkey - type: DiseaseCarrier - type: CombatMode - type: SurgeryTarget @@ -1352,24 +1354,42 @@ - type: Sprite drawdepth: Mobs layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - state: monkey - sprite: Mobs/Animals/monkey.rsi - - map: [ "jumpsuit" ] - - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - map: ["jumpsuit"] + - map: ["enum.HumanoidVisualLayers.LFoot"] + - map: ["enum.HumanoidVisualLayers.RFoot"] + - map: ["enum.HumanoidVisualLayers.LHand"] + - map: ["enum.HumanoidVisualLayers.RHand"] + - map: ["enum.HumanoidVisualLayers.Handcuffs"] color: "#ffffff" sprite: Objects/Misc/handcuffs.rsi state: body-overlay-2 visible: false + - map: [ "gloves" ] + - map: [ "shoes" ] - map: [ "ears" ] - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] - map: [ "id" ] + - 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: [ "clownedon" ] - sprite: "Effects/creampie.rsi" - state: "creampie_human" - visible: false + - map: [ "pocket1" ] + - map: [ "pocket2" ] - type: Hands - type: ComplexInteraction - type: GenericVisualizer @@ -1379,8 +1399,8 @@ True: { visible: true } False: { visible: false } - type: Body - prototype: Primate - requiredLegs: 1 # TODO: More than 1 leg + prototype: Monkey + requiredLegs: 2 # finally 2 legs - type: CreamPied - type: FireVisuals sprite: Mobs/Effects/onfire.rsi @@ -1526,8 +1546,11 @@ - type: NameIdentifier group: Kobold - type: LizardAccent -# - type: ReplacementAccent -# accent: kobold + - type: HumanoidAppearance + species: Kobold + - type: Body + prototype: Kobold + requiredLegs: 2 # finally 2 legs - type: LanguageSpeaker currentLanguage: TauCetiBasic - type: LanguageKnowledge #backmen: languages @@ -1558,6 +1581,22 @@ path: /Audio/Animals/lizard_happy.ogg interactFailureSound: path: /Audio/Items/wirecutter.ogg + - type: RandomSprite + getAllGroups: true + available: + - enum.DamageStateVisualLayers.Base: + kobold: KoboldColors + - horns: + horns_curled: KoboldHornColors + horns_ram: KoboldHornColors + horns_short: KoboldHornColors + horns_myrsore: KoboldHornColors + horns_bighorn: KoboldHornColors + horns_argali: KoboldHornColors + horns_ayrshire: KoboldHornColors + horns_floppy_kobold_ears: Inherit + horns_double: Inherit + horns_kobold_ears: Inherit - type: MobThresholds thresholds: 0: Alive @@ -1580,47 +1619,6 @@ coldDamageThreshold: 285 currentTemperature: 310.15 specificHeat: 42 - - type: Sprite - drawdepth: Mobs - layers: - - map: [ "enum.DamageStateVisualLayers.Base" ] - sprite: Mobs/Animals/kobold.rsi - state: kobold - - map: [ "outline" ] - sprite: Mobs/Animals/kobold.rsi - state: outline - - map: [ "horns" ] - sprite: Mobs/Customization/reptilian_parts.rsi - state: horns_short - - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] - color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi - state: body-overlay-2 - visible: false - - map: [ "ears" ] - - map: [ "id" ] - - map: [ "mask" ] - - map: [ "head" ] - - map: [ "clownedon" ] - sprite: "Effects/creampie.rsi" - state: "creampie_human" - visible: false - - type: RandomSprite - getAllGroups: true - available: - - enum.DamageStateVisualLayers.Base: - kobold: KoboldColors - - horns: - horns_curled: KoboldHornColors - horns_ram: KoboldHornColors - horns_short: KoboldHornColors - horns_myrsore: KoboldHornColors - horns_bighorn: KoboldHornColors - horns_argali: KoboldHornColors - horns_ayrshire: KoboldHornColors - horns_floppy_kobold_ears: Inherit - horns_double: Inherit - horns_kobold_ears: Inherit - type: Butcherable butcheringType: Spike spawned: diff --git a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml index 686e420ea41..5414823ed66 100644 --- a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml @@ -58,7 +58,7 @@ whitelist: tags: - MonkeyWearable - #backmen:underclothing-start + #backmen:underclothing-start - name: undershirt slotTexture: undershirt slotFlags: UNDERSHIRT @@ -81,3 +81,47 @@ strippingWindowPos: 3,3 displayName: Socks #backmen:underclothing-end + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,1 + strippingWindowPos: 2,2 + displayName: Gloves + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,0 + displayName: Eyes + - name: pocket1 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: back + slotTexture: back + fullTextureName: template_small + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index fbd5bc48ed3..71c5b395f6e 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -286,7 +286,7 @@ shouldHave: false key: ForcedSleep component: ForcedSleeping - time: 6 # This reeks, but I guess it works LMAO + time: 300 # This reeks, but I guess it works LMAO type: Add - !type:HealthChange conditions: diff --git a/Resources/Prototypes/_Backmen/Entities/Mobs/Species/primate.yml b/Resources/Prototypes/_Backmen/Entities/Mobs/Species/primate.yml new file mode 100644 index 00000000000..cc023ee0865 --- /dev/null +++ b/Resources/Prototypes/_Backmen/Entities/Mobs/Species/primate.yml @@ -0,0 +1,41 @@ +- type: entity + save: false + parent: BaseSpeciesDummy + id: MobMonkeyDummy + categories: [ HideSpawnMenu ] + description: A dummy monkey meant to be used in character setup. + components: + - type: Icon + sprite: Mobs/Animals/monkey.rsi + state: full + - type: Appearance + - type: HumanoidAppearance + species: Monkey + - type: Body + prototype: Monkey + requiredLegs: 2 + - type: UserInterface + interfaces: + enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too + type: HumanoidMarkingModifierBoundUserInterface + +- type: entity + save: false + parent: BaseSpeciesDummy + id: MobKoboldDummy + categories: [ HideSpawnMenu ] + description: A dummy kobold meant to be used in character setup. + components: + - type: Icon + sprite: Mobs/Animals/kobold.rsi + state: full + - type: Appearance + - type: HumanoidAppearance + species: Kobold + - type: Body + prototype: Kobold + requiredLegs: 2 + - type: UserInterface + interfaces: + enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too + type: HumanoidMarkingModifierBoundUserInterface diff --git a/Resources/Prototypes/_Backmen/Species/kobold.yml b/Resources/Prototypes/_Backmen/Species/kobold.yml new file mode 100644 index 00000000000..e2fbd634e1b --- /dev/null +++ b/Resources/Prototypes/_Backmen/Species/kobold.yml @@ -0,0 +1,143 @@ +- type: species + id: Kobold + name: species-name-kobold + roundStart: false # sad... + prototype: MobKobold + sprites: MobKoboldSprites + dollPrototype: MobKoboldDummy + skinColoration: HumanToned + markingLimits: MobKoboldMarkingLimits +# sexes: +# - Male # no female sprites for now... +# - Female + +- type: speciesBaseSprites + id: MobKoboldSprites + sprites: + Special: MobKoboldAnyMarking + Head: MobKoboldHead + Chest: MobKoboldTorso + Tail: MobKoboldTail + Eyes: MobKoboldEyes + HeadTop: MobKoboldAnyMarking + LArm: MobKoboldLArm + RArm: MobKoboldRArm + LHand: MobKoboldLHand + RHand: MobKoboldRHand + LLeg: MobKoboldLLeg + RLeg: MobKoboldRLeg + LFoot: MobKoboldLFoot + RFoot: MobKoboldRFoot + +- type: humanoidBaseSprite + id: MobKoboldAnyMarking + +- type: humanoidBaseSprite + id: MobKoboldMarkingMatchSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobKoboldHead + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobKoboldHeadMale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobKoboldHeadFemale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobKoboldTorso + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobKoboldTorsoMale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobKoboldTorsoFemale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobKoboldLLeg + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobKoboldLArm + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobKoboldLHand + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobKoboldLFoot + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobKoboldRLeg + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobKoboldRArm + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobKoboldRHand + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobKoboldRFoot + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_foot + +- type: humanoidBaseSprite + id: MobKoboldTail + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: tail + +- type: humanoidBaseSprite + id: MobKoboldEyes + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: eyes + +- type: markingPoints + id: MobKoboldMarkingLimits + points: + Special: # the cat ear joke + points: 1 + required: false + Chest: + points: 1 + required: false diff --git a/Resources/Prototypes/_Backmen/Species/monkey.yml b/Resources/Prototypes/_Backmen/Species/monkey.yml new file mode 100644 index 00000000000..57cd1346638 --- /dev/null +++ b/Resources/Prototypes/_Backmen/Species/monkey.yml @@ -0,0 +1,146 @@ +- type: species + id: Monkey + name: species-name-monkey + roundStart: false # sad... + prototype: MobMonkey + sprites: MobMonkeySprites + dollPrototype: MobMonkeyDummy + skinColoration: HumanToned + markingLimits: MobMonkeyMarkingLimits +# sexes: +# - Male # no female sprites for now... +# - Female + +- type: speciesBaseSprites + id: MobMonkeySprites + sprites: + Special: MobMonkeyAnyMarking + Head: MobMonkeyHead + Chest: MobMonkeyTorso + Tail: MobMonkeyTail + Eyes: MobMonkeyEyes + HeadTop: MobMonkeyAnyMarking + LArm: MobMonkeyLArm + RArm: MobMonkeyRArm + LHand: MobMonkeyLHand + RHand: MobMonkeyRHand + LLeg: MobMonkeyLLeg + RLeg: MobMonkeyRLeg + LFoot: MobMonkeyLFoot + RFoot: MobMonkeyRFoot + +- type: humanoidBaseSprite + id: MobMonkeyAnyMarking + +- type: humanoidBaseSprite + id: MobMonkeyMarkingMatchSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobMonkeyHead + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobMonkeyHeadMale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobMonkeyHeadFemale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobMonkeyTorso + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobMonkeyTorsoMale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobMonkeyTorsoFemale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobMonkeyLLeg + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobMonkeyLArm + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobMonkeyLHand + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobMonkeyLFoot + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobMonkeyRLeg + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobMonkeyRArm + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobMonkeyRHand + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobMonkeyRFoot + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_foot + +- type: humanoidBaseSprite + id: MobMonkeyTail + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: tail + +- type: humanoidBaseSprite + id: MobMonkeyEyes + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: eyes + +- type: markingPoints + id: MobMonkeyMarkingLimits + points: + Special: # the cat ear joke + points: 1 # Corvax-Sponsors + required: false + HeadTop: + points: 1 + required: false + Chest: + points: 1 + required: false diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/eyes.png b/Resources/Textures/Mobs/Animals/kobold.rsi/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..626bd2fa1ea91ad11f173317e9eaf530fe0b47ec GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|EIeHtLn`LH zy|s~-!GMFsuPx%mq|oHR9J=WmcL6QK@`V7n+@972*x6Vff&-JiEEL@ABBaTa87;{`cIhiv{LZm z{Rh^OoOk#aNJx4~vZaLt34#+$Z6{>sirg+2?$jN*D-QC7WoGuh_nkLy-pm`A;D5x{ z)>h=Tu?Z|wgKRdd{eCKy;_mJ)kh!jF%x7faIF1H5JUIMKcKYQMtu^g-+lbRBbm?@O z-Q8VOUvcvJWUSrU*&&@yo6rG<5s*^qXf#SPnPe%u6#VbF9q#Y%d47K8^77J%(|FGu z$I%-b8}xcTlF4MyUR_zV8;(|t_L0;x57K-F$o@TR& zhzp8^BBfGEzs>dz2YggcE9`&VNA*?k9eg^Va#}H^0z&41lu~bh*bc^zgGWSM1Y^}# zLI0SwS(a|KTA^>m z(6M@WcsO<(M=z!p0XRE5V`^%O+SeMHOopeYCkBJTQK!@SH`P!|sr_nKtyWoETSEwe z=Xq4CRbcc!FhwW_q?Ec?C;~7X4o62(2+q&X@xwhF4v9vMOUvsy;FsTAF2}d;-|(HV zZJS!H7EEqg7Kw!fiG>6hTte_dIrb;+cDpYc{`&IqUrK+HO)$X(6TF2V>5vn%!OY)E P00000NkvXXu0mjfkeFb~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/head_f.png b/Resources/Textures/Mobs/Animals/kobold.rsi/head_f.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6102a5b50117596e966f1453b4a4b1e2f0af01 GIT binary patch literal 653 zcmV;80&@L{P)Px%M@d9MRCt{2+QEw2Ko|$`e@&mjV^?s)bnpRWZX)8rOZOslp__wVyKhik4_nx- zJ?A0Z!uA2gqX#c;PO=9HA!JMR0dkd0PloE2(#fK*@c)4%GfC$Ah?BX@2N02|cDr5p zSNk=^e`ESUwOZBNb0GwRAjqzHo@YGXOX62575Ki7G);5IH+n!Rr2(Md>p#0T{62)% z8uR)5U@zei@r|aAloH);7x5~_&9|GKW2e)Bl+t84V^T`=dws;K_}Q=brI#!ITa%kN zn+;~O8Eo6e;A#K>7+ekT;5{IUB5XDr;{;6O$Ez6Y^*WpOg~H30ALHq&l+vwM3tW<1_&V_gvk1WAV3&~xjsLm82|vyW)qXi1eRrCxm*GOeBVc-(SYZ9ro$O4 z6bcB#aHns-O+-XQL_|bHL_|bHM2B+h`hdU1%$q~5`hfin$uv!mvM;!w$M$@iPo6xC z_XYvLwryN|y4dNv9p36g)&~4ZDW&&o1nz#^<=P{(Om21@M_+!vM6p;zk|aoy1g`7i z)ILR$BzSy${A!#*4z*hCx>zj2bzO+}0!fmfR4U=@!x=2gx?U_6|DA`?Kjt`&UM`mq zLZDu+0{~9mon+VVf8Jv>8Xa^NIF6&wKb~jpr(aL7EDO`=6k!+|e+IeMfbHJ=wnj(@ zfhdXq;NUMnDW#>9D3{BKq6p=3Ijd6&g1~qU$d#;8N^grJ(lpH$p<}KA0J7LpO8CBi nwD?3sL_|bHL_|bH^jiG}GLZ}3dqhLk00000NkvXXu0mjfAFD4G literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/head_m.png b/Resources/Textures/Mobs/Animals/kobold.rsi/head_m.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6102a5b50117596e966f1453b4a4b1e2f0af01 GIT binary patch literal 653 zcmV;80&@L{P)Px%M@d9MRCt{2+QEw2Ko|$`e@&mjV^?s)bnpRWZX)8rOZOslp__wVyKhik4_nx- zJ?A0Z!uA2gqX#c;PO=9HA!JMR0dkd0PloE2(#fK*@c)4%GfC$Ah?BX@2N02|cDr5p zSNk=^e`ESUwOZBNb0GwRAjqzHo@YGXOX62575Ki7G);5IH+n!Rr2(Md>p#0T{62)% z8uR)5U@zei@r|aAloH);7x5~_&9|GKW2e)Bl+t84V^T`=dws;K_}Q=brI#!ITa%kN zn+;~O8Eo6e;A#K>7+ekT;5{IUB5XDr;{;6O$Ez6Y^*WpOg~H30ALHq&l+vwM3tW<1_&V_gvk1WAV3&~xjsLm82|vyW)qXi1eRrCxm*GOeBVc-(SYZ9ro$O4 z6bcB#aHns-O+-XQL_|bHL_|bHM2B+h`hdU1%$q~5`hfin$uv!mvM;!w$M$@iPo6xC z_XYvLwryN|y4dNv9p36g)&~4ZDW&&o1nz#^<=P{(Om21@M_+!vM6p;zk|aoy1g`7i z)ILR$BzSy${A!#*4z*hCx>zj2bzO+}0!fmfR4U=@!x=2gx?U_6|DA`?Kjt`&UM`mq zLZDu+0{~9mon+VVf8Jv>8Xa^NIF6&wKb~jpr(aL7EDO`=6k!+|e+IeMfbHJ=wnj(@ zfhdXq;NUMnDW#>9D3{BKq6p=3Ijd6&g1~qU$d#;8N^grJ(lpH$p<}KA0J7LpO8CBi nwD?3sL_|bHL_|bH^jiG}GLZ}3dqhLk00000NkvXXu0mjfAFD4G literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/innerline.png b/Resources/Textures/Mobs/Animals/kobold.rsi/innerline.png new file mode 100644 index 0000000000000000000000000000000000000000..4be7d2591e14555ebc01585ffe422ba7f93494b7 GIT binary patch literal 10385 zcmV;CC~nt@P)oHvf+#9EiYQ401q4J9j3o4W@M zvj_+P4~T#Y)cpeDVMtj;E02(p) ze`x>zp#wtVA^{L~-div7Zw>!tyzzTYkYPkbFl1a5W#Z$4{S)E>WJ3c2{zuJxARagZ zGhhg000TtqU5q{D0u=Ygcn}AIfj>ytn*)F>2;Ce1XYBtMOJJlV{4*Ox$E3!E28Sfj z6y+6Eq-iF5Wz(DzqN5lziDZU0d$BSHfhQSppGT4Gcn zBaY@rGm2yQC4?q1XhzYIk|p$?YYOi(mx%MFd0#GU&4Z z^x_|G|Lx9yc#IEHQv5F$L^K2dwXnPULlgi^835bIcX$6Z?e1=$-s52&fYGS`#7Cb3 zKz)7BfBZi_kwyS0`2Y;u{EyGS3V=(80N{KUkQkTruaD`!b^|a#0u(?448ZN3Bf{QE zA_L0aOJ=|VSOFVg2b_Qla04E|3;2NmpaDT33`Bq^5Cal`4kUrp9!s)74#@9Or393L z3Qz;;Km%w3EuaH*fgaG`Kr3hi?Vtmk z1D&7?Tmapm2lRqI&<_T{C2$#B0Yl&_7zQI?6kG>m;3gOc6W|uO1MY%*;69iH55W|8 z1ZKcv@C3|)Iq(cT2lL=1SOBlUYw!lV1@FLnumV=W2k;4e24BEe@D2O`Kfwmr1i!!* z_ye}V4%met2!@al3c^5G2oDh;5=4e55Hm!DSRpou1LB0ZAs&bi5`bus5F`wVLSm2v zM2Dmx8AukAhZG3(|&kA$`aIGJ;GXQ^*{$gsdPN$PTiH93f|DALI(T zLmrS9eMM2R}EEEqVLP<~xbO1_+GNCLe2g-vAphHj*bQn4U zl|aX#Qm7oNgsPw#s19m?8lfiW4AcU(L1&?JP$zUA>V|ruK4<_MgswnWp!C&C-@H)H+Z^7H}E&@iN5Lg5rK|(MgSP*OoP6Q8vA3;M1 zBg7DNgfv1Hp@2|Es39~FItV?4A;JVJTRpO^9Yh8=?czh3H0HL<}GPn+kpv_KNky_DIgz|b z0i+O86iG))Bju1vNL8c;QU|GzG(wsoEs-`z2c$F773qoeLHZ*Z$Pi=%G8!3=OhTq2 zGmzQHeB>cyF|q_%imX7^AnTE*kY|u>$PVOrWDl|*If%T996{bdP9X0hCy|ekPmpuS zdE_hP5^@>&0l9|!j$B9nMsA}33W>s^2q+4Q1;viyM)9MBP@*V0N(QBXQbwtxv{Cvf zBa|7+3T20KM7f|mP(CPsR1hi@6^V*PC8APM8K@joKB^FP1a%x$j;co0qfVikQSGQs z)CJT<)FspqY6NuybqjS5^$<0Knnk@pEuxlC%czg2FQ}iWU#P!mfJUORXd;>k&5Gtk z^P&aOqG&o=2CaZrL2ICO(S~SKv?baW?Sytkd!l{O0q78P1Ud$tfKEkcpmWd#=)>p| zbSb(DU59Q&H>2Cpo#-BPKl(Cy7(IrbK;J_@L_bE)q36-B(eKb7&}-=L=uPw=48R~U zI1C9x#js;|Faj76j08poqkvJxXkzp*Mi_I94aNcEg7LukVgfKBm`F@4CJB><$-?Ag ziZDkprI;#A9p)6K1#=d29&-_M33C;59W#Nsi+PB7jCqE6iFt!r#(ctj!>nVrFuPbJ z7KbHasaOsyFIEsMhLys~VU@8OSY50U)*Netb;P=2y|8}RAZ$1`2AhaIfX%|@V~emQ z*fMN2wgGz@+lKAL_FxCFL)cO5IQA~~A@(u$8Fmr-7Q2dF!~Vej!fxXbI4q8YqvAMl zd^jPTI8GX;fK$V1;|y@7IBT2(&IRX*^TP$pTD~a{Q)5Lb-1!6yOh&V>PO`Ie? zA-*8KCaw_Ii0i~ZB#4A1kx6VM9+DtQf+R~)A!(5eN#-Ow(ms+G$)6NTiY6tI(n)!w zBGPeEC8>ebOzI%@kS>viN#mq@q-oMK(jw_S=@aP(X^RYzF=R5Cjm$$9BGbuoWL2^b z*_doeb|AZveaS)O2y#6606B+TNG>5)kn723$Q|S!@*sJbJWjq(o*_Rczb3DczmPY` z+Y}^)K%r8&C^U*VMV6vM(WV$tEGZ5YH;OMMh!ROjprlc9DMggylxj*NrIpe}>7xu$ z#wd3wk0^7LMap~1XUaO|FB5_Z&qQV7VxlpLGs!WjGU+fGGg&h^F?lfgGleq6Fr_eM zF&$(oVX9ziU}|PM$8?eD3eyTm6?ZGm|2opky(S; zfZ3ecp4pYzmpPa@iaCingSmkDD04Y;J##bjIp&MZL(F5$cbTV|pE18?USP=-(BdLkh3~E002(_GAPi>}lQv0Y^sW++jsgJ2I zs7ut3)F0G8EC?0?3kwSmi!h56ixP_#i!qBei!+NCOCU=GO9D$eOFqjHmU5N`mKK&S zmVTCNEaNN>Se~*hu)JqkW7%NYWyP>kSUFf}tP-s9tm>==tQM>etRAfXtYNJ2tZA%y ztVdYOS?gI_Si4vUSch3BSRb;^vc6(nVg1JXn+;;avr*Z2*o4`n*_7FI*i6`L*<9It z*+ST2*izYY*bcLmvDL9PvvsodvkkLNusvj(V|&H6%J!XYiygsEWM^gPV;5tWV^?F> zXSZN?WcOeXV2@x=WY1(j$bO8yn!Sm=gZ(1=5c^H`2kcMT7ui?Xzp-y|AUKE|tQ>qC zVjOZD>Kq0fmK;tTUK|XLD2`-~Y>pz1QjU6#7LM~AmpDc_?r=Wt{b#t(+G)2RX+$?{PlnT;N>h{K~n- zh2SD`v2zJ<(YX}4w75*TY`NUH{J6ro61XzC4so5}s^x0t>f*Y@HOh6DYliD3*L$w7 zTwB}-ZW1>;H;r48TZvnT+mzd$+k-oRJCZw@JBRx)cRBY-?l$fo?ji1R?n&-B?l;_@ zxYxONd2l=|JbXOjJn}r6JjOh>JZ?PxJP|yJJXt(NJY_r$JZ(HZJVQL=JP&!E@htIt z=Go+hcnQ30yaK#*UL{@~UNc??UQb>IZw&7N-hAE?-fG^{yq&xQyw`c}@jl^Q{)@M-ax@Y(Zu@CEWk^QH3T@s;pZ^PT4F;=9Cmo$o&1Q@+=HANkh# z0Y9FfjbDIYl3$r$m*0ZliQk7mgg>4?gTIi!jK6`uoxhj=8viZ+Y5sZsW&ZE{e+4iC zQ~_QAaREgEZ2>a@M*%N^V1YP+bb&(xr2-8CZ34Xl*92}0ObfgeSP}RkutUSrSZMq- zI!&3TN3*0k(|l=Rv_x7qt(aCxYoc}1F44wl4`_3=CE6P8w;)oGBFHT$Dkv|gC1@(> zAm}9+EEp%4DOe;}F4!p8A=ocCDtKRTR`8ABXTe`WNFj<4w~(liypXn#nUJH9k5H&k zf>4%Fu~4N@lTeq?pwJDWheFSV-V1#b`YVhTW)T(;mK0VIHW0QJb`uT|jut*3d{Fp= zaD#BWaG&sq@IB$D!f%Avgnx^mM3_W)MI=O&MD#?gL|jDtMWRGfMG8bth}4U;i}Z<% zh};vI6Bi?xgOiH(Zg7n>7%EA~}vTO23OCN3y0 zBd#HCD()!mBOWH6B%UXJOuSCKO}tNhRQ$g9Gx2xg-^8~i@Dl72!V+>4S`y|G&Jz12 zA|+BK4oZ|toRl~xaY^E)#FWHKiB*XWI!vd~dFT>!Wx4^~hVDTRrpME>=||`_^j3N= zeT06WK1Y8?|3=@DBuH{fibyI*>PlKlx=IF0#!6;L9+s?WEa0REt!v)QHr5sb^B}rG7|5(qw5KX$ff+X+vo{ zX)oze=_Khq>EqHTrO!zZN{>rVOD{@)mfn)V$gs)?%E-xR%UH;`$OOv7%4EtE%hbrU z%3PGWE;A|fLS|KFLl!B^EXyw|Evq4GChIKgCmSuBE_+zEO14F|S9VnPf$R&}71<3r zgdDRRznrw3rkt7FJ~@B67`aTjV!0Z*Hn~2zF}W$ZmvSHFe#@ifS>=V~<>Ynbt>oS1 zgXI(CbLEfApOo*Ezbt=C{)zmO{5Sbs1(E`{f`o#qg0X_5!hVG)g>;3(3e^g&3VjM= z3R4OT3ZE3V6tRlziXw`Niu#JSie8Fgim8f+6e|?ZDE26hC_Ye}SNx#(O9`#SswAwW zprof{qvWL&rj(*|P^m)cj8c!%sM4g;ywXRd-^v(ec4ZM|C1nF;J7pi`2<0^8BIRo3 zR^@)>8_Ltluav(iZ>tbhxK-#XYAU8G&ME;aaVps=$5a|rI#q^L?x@VEEUT=mB2`&b z1y$u$^;B(Dy;Q?h52zNYR;jkC_N(4hol$+Q`c-vTjjYC}CatEWW})V$7Oa+}R-jg{ zc1EpN?Yi2O+M?Q;+O|4Tokv|#T|?bm-BmqEJyAVhy-fYIdXM^b^(pm5^)>Zv4Wb5* zhLnb;hJ}WkMzBV*#zBn=jb@ELjT;)%8m~3JX#!1(rhulbrjDkKrk7^8W}4<<&05W~ znuD6RHD@)KH8-@-T5MXPTFP3+T25L4T5(#rS|_xcw7RuMwWhQdwZ3TWXp^=1wPmz* zv~9G#v?H|BwTrduw9jc@(Y~wwT>FFeZylTtmkwP=L&sdlO(#SrMW;}wTBl9tlFlui zS)FB_OD&02SOS-poXLXl#H}x=j9D3q{C z8QwFTH~eh4ZA3N_Fp@LUH*zrYGm10HGb%S~HtIK;Fq$=5Hu`0ZGv+pyGS)J-Hug4- zGR`tSZro(tYdmH=WBk^5-2`pIVIpCoVPa|GX%bgUg%9O)Y z!c@c5($v#5!ZgG5nCU6g9@88)g_YPBXfhmYKDgw^@`~w%G}@(`J2U<7Q9I zR?L2zq%q!(T^=qmZMrqnV?JW29rYW2s|{i@J-Ii?2(ZOMy#` zOQ*|-%Z$r=mn~P4E6r8e)y&n?HOe*DwZiqR>s8k&*Cp3YH@q9an}VB(o10sNTee%7 zTbtVzw@J4*ZtLzicRqJ{cVl-q_i*TJa8U-9ts{N9_}6y9@!q{ z9_=1iJ*GU~di?SvcnWwbd7628dPaNZc~*Iz^BnP<@m%)&<3;fj_EPh*^4jl};8o~V z@73*f(`(M_lQ-ne=1uq3@pkZLcpvaC@jmT6;C;_~(ffxF)`!9YsIP{vt*^gtvTw2PDc?TdJH9V{zwbxy=h-i}-*~^<{>c5g`z!aK z+ds1Z@&48Q+kR9(aX&3Tdq0NX0lyNzGk$}95By&HZTJ)XY5pqy7XCi|@&1MW4gS6U zxBOrDe+@tda0kc*7zelqLh6QE?Rs?ngjs!jq zTn*e|urTNhU4|1Qgpt80W3)4_F{T+SjO`$5ka&@Y&$u;K#wM!Mh=>A(A0_A^SqYLb5|DL(YX<4|y8$DHIOn2$cyn z3Uv#O3e69#3B3?H9{M8mYZy9=H%u|iJj^>RKCCFLF|0rAZrH1^jc{VPP`G-yZFpe# zf$-zut>IV0r^8pmcOqCLBqQ`ATp}VOawDoE&PUvgcpmXJ5*^7KsT64u=^L3CSsd9E zIT$$^`8IMZiaAO=N+-%GDl95Hsxqo8>PFPFsISrJXx?b0Xp89m(Mi!qqR&KMj-HBs zAH5yJ5+fO-ALAMm8IvDV8`BeWD`p|)XDlIBC{{hzE;cAOJ+>^iBX%@)Hg+uz8OIZ+ z7-t^m8yh_+iBqxd`>LfZRh9~AG)+BZ(-b!3Z+(;rNi6m(yIVOcA zw2-u(OiUI@)=G9v4ol8Su1@YwzLmU?ypcjm5lzufaZU+O$xW$E=}Ebh@+#$5DkW7s zRX5coH7d0rwIQ`H^?vG7>YoEF2P6*|9`HC2d!Xn*(}BSQQwLVkKpIDyT$)*$Z(34X zNm^^#aN5(fwRBWEU%E=VO*$hzBfTQMD}6kDKK*9~F+(InJHt66A|pSeKBF(=LB_j` z?M${znM{*R@65!^qnRz4!qkvK%QD9Ku zQ4m*9T+m!_t>9_FmxI`Yf(JDZIvtESSa9&`42O zu_Nu|md2JAm$sIUmOd~2Sw<D&l%Qk#;?;)L-qp#~rPW>4x2u<`cWSt5lxys2!fFa?PSp(6 zJgxawORN>IHLUfiO|31jy-<6%_FWyQMxbF7Q3E39j-8>xF661JpPyWBWNwsh zG;a)O%xbJ_9B7l-H@0Q{|_+Pu)AU+=OTnXwqzQX^LwqY3gX2XnNhW zeVXgE%4vtwk*AAJx17Fy`sL~0XV}gtoUu6*dZyq^)0t~$o}F25W^R^gwrFNF=QN*e zzS8`(`FjhwMY6@LC7>m%rLJYL<#Ef`R$?o?)uh$0HM6z0b)a>o^-CL}O`^@XZGT%v zTTRe&WhK?&8vmHOqF`bh+XL&C8T;91;=dPW5er~gqwNt*+rZcSbP-k=J_0EOPKV6(% zDqW6U(OpNn&UQ_7Eu9DF`Oa&ecRinQzV!Ts^Y_oMUO-=R(?r>I?lBW-ff~ zCUr}8n|Cw1bGsY6uXR7~-t1xPQS7nriR?Mt)7~@Qv(yWE`Fpi`-FuUI%X@ozANGE_ zh`%U)(d454#q5hGFAiONc5$PRwNJ6nt}n8$xUao$qVH`#+%M3t)9=}z+F#k<*FW9= zb$~n|Jzy~qJWw!jX5jk3;=uMLo=X~+TrVYFD!bHk>EWf%gM>l)pxGc}FmJGFaAff1 z;GfG}m(?%3Tu!)Ldb#`Z?%IKBFE89anLz+WwLrFswLl=i0 z4Sl^zzAAIo>T1~4!mF)U$FDA3gRjx9>0R@_mVT}7+U09=*EWXPhLwgLhhvA24WA!= zF#K@@KSCcd8wnaI7-=3E8+knnMg>N7N4-YVMr%hekIs#5UT3?meBJ4K-1QUJyRSdI zzBWc0lOD4g3mYpMYahEc_WlOyhR6-08~!(PZk)O?dSmg%&P~3X+BZFKrroT)dHLqt z&CPL+anau5VB+&F;w|Z0R=2`$9lq6Z>&~s! z+t}L@x6N(`-#&P|_4fGfcXv>CMD7^h3A~ec=ggfOci!BE?+V>Dxa)T}=Wf&8(Yvqi zfqS%j`uBYAW!-DMH*#=_&msbaPq zlLC`^lfIK#lZ}%jlZ%tP4`~neAMSsc{qWSo>knT~K~sWLhEx7ixl^a7ZcHsbLOc?A zWc-NnsNhk{qlriFr!mvw(`M5l(}mM#r|(REn8D9T%~;Pw%p9HRnwgwgdrWyO|JeR< z?BmkMy^m)e|9rywMCFOgljJ8=PX?bnd$RSE`>EDbucsMLPd*)ax;P7F1!oOs17`DQ zTV^L_m*=o^^f}A9@VO&%U2~IjU!E~NQ+Ve1EdE*fv;JpKpZ$8y^<4A0=kxUEC!dcz zfAs=-A@sud1>?oR7ws?Zy!bFrn3tKiosXVBG2c7?cz*pQ`%Cqg?l03`*1sHnxwrr= z2rU>dFcuCiv@hIU__Rn`lv}i4j9V;U>|dN+{QZjimGS6Q!`Ufp>0?ltmP5}-l)BCe{{e||$=u6O-qA#6a9)9`$mF=tgSI@7RUz@&;e_i=T_$K?!;akGD>Tg5e7QRE@ zMZTMV5C2~Bz32Or@4tTV{LuU1|D)i?*&p|ReErGtQ}w6E&y1fArY+?yx2^Q8Q(HH;R{jwG$p3Nvlk%tj&*-1Gf3bh1|Jwge z{9E()+TYjPsBQYT&34>&<@S~Bg&lZDe8*}hdZ&D6aA$rO?27JM>_+aE?hfp}*xmj2 zzmh#e{4<=H1;9BS0P6<;)YJkX77PHz>;D0*qMc)+baiY1000SaNLh0L04SOO04SOP z7dj!b000IkNklXy`vbANehmFd5?w^#Ve_V%_rIXQ8bIu>qJ{>#hwxTU=Po{=V#8I-Z}OpO@Md3#R{W5&pvb!dUpG z5imPD>sD7+-DmRYeqR0@x>C>cDhusHKKS_`^)dLS5x{(VdU|qGQ&aB8+K)_Eu5bUm zxwp4B$MY%+?W6en`}==jCMHa(48AvwfYj}^(m9`f{P6gYDbAGwF+8u50NU^MdM=&! zLonQ5U0u23<6|?vnYN{+C3ky!>sqZ=rZfdosIQ}d`||QK1eL$H$YB}*SpCV#Nw>Vb z?53xuvpL6)d!_}?E#TI7@c`JGnVFdkUq9}tkMTso1mJS8`0Z9Z8v*>SANSOA&wEzI zLf*#%$nG%YrzWQy^Pa0l0MF$qLfYh=U;@-2?k;bMxu?F4!d&mJc88$Ar=DUp#6biw zwB>IB!4lKs`f;zqd*3|@=v9C1F^XvGCCI}Rzny>z}eYZ>-zfIaRmUzeIux4D8mqItoK5CHRK)I z&Eqr8Bm>Lv)HSvwr)5JHL;yn4IKxjCzjxKk3=mfe^(;gz;33NE9pQ6Nk7Jl+0P#HY z^Yht4%u0SR0W_}N7QM`Tr{^({^1(5?F$)Q5A7kv>AGu|bU}-am0F>9hABFj$Jc_Hw zsjF)4`w9t1R$n{ASP~|_I&=gS#ZhW*ZqD65+-FN&89C;pKioU*j?*G2W>;3$Yg&x? zejj|MCEfwgke(6@mgKv;yUD{two@IsLo9TIQe0bKUHx5Gey&x$6b8F!*9Qr>z^|6T z2L}gPCsxrZWu4YMZy0D8Xc%Z1Xc%Z1Xc+ikGf)~x_-d)VwYB9=Pfveaen5YzUYes& zmY)!`87k_+IyOFa44o(f(hbOvY~#e|W0m}_90fB0{pd@QZcGw(Vq7^7iB)8b@3I^P zD3gQG!f80 zRLB4zf#WEKo}VXB^(f$Q#?MXQh+G}QsYn{2G3jJ_8RY=bTq6#EK)Tj(>cR<-FzI#W zDj<_pdGs+GK^>6N>%`|NgsZF04)I5p&H{;4sq}-lWM7X|ep|Y3=P@@DPC`wYm2re%E3YyeW zzyi}xkciC_G^R z1mFT$gX3z53u1JXqQaCoIyx#nT!~S#=o_%W6h5*b6S5(rWj_#10D|D}VV#W!A!^p) z0J9veyMPHcqYzn;3EA?y)H1n(2!K%lC@9U^yW8z%0@RfvTcn86c98{{v@t@~&`}UX zKxX9nsc~8XN+5hNi3?Sy$@&B+Swky8JwvvYpRo{Z6 zDk{(vT2*~3RaJ{gtSX4x+k4qAY!6*&U($U?EcOE}>W~!Zc0C^0{7+B#8pR%=FBWwB)lSD5cPKy=|4y z4*6WF6AT71F);z7V&Lb0|J?K&kH--V26?jMCKwE2W_kuj#W-?I|1j-HzL)3WTCIk) zwKe$temwc{2>^fK$&XL4k>5bMTt=-{<1PTNe4}DucX!uPdqFte@WZXHk|fbvw{D?S zD#7pfTfa+7OJ_C)1OfpB0s-sZ_VzYPrIMrW$E5)PaO1`eWHK3eJRTGZ1pq*?Sj6?~ z*OAZXd9&k25CoJ;rKWp_uX*6A09lr4Pfrg=qG=#-Jz){d{ixNRmX^xU;jfgOC)0D2fP4A-sS89zbI}Vl#zZxJQsgGJ(h6KRz-7 zCz1)?tQ>!lN~JLMXsYSn^bgZWrBVQ34UTrPRROXr)3FC**7e@UJ&4_+br==HN*jAH z)^aV7B#9n3_a6tZ7TBr)HppnY2GcaHk7magfB6EYX+qOAyK)_IFn>+gU>L@cd%V~h z1WnU~Q8AFoWRTD2iBU1AVKiEu&BOV8o(O_KMNxmWW`|a?ySEEfRiW!T(R7W9qG+XQ zy2hr!ru%lVRRJE42LN#A&K-1ic2WQcNg*rUs2B)`!*qCfxas*;Vwxsy-@Xk(2=)1V z5WAZ{G#n1ok&zK@`L?d70KoI- z&(YD*f%JSDmoHyNwOYl;j~}0IY;3f}5MqDwuUxqT!!YpX%^P%fc0v?IeEs*Y(bd(3 zbLY-IU0Padk0B(>GG(i+R4Ro?Bmz+sVVb5j2OqZ1S`Cw*$z-g1tQ&~kB8G;BAj@*= z4Ix>UDO0z4z22A#MGh3!tv=`Rc#uw~t&b;!;9}23TeZ{XUauef zp5O0>*Xu<)8pXxM#l^+N#l^+t&(42Y#|IoI(`gwT#RnYT@-j{HO#Fg}%fZfBd7PBP z(E{G@_ghP2Mk1M@?TigL$Z>vx#TSc?e1u%vw~C_B@BZ~2y1KehtyWR3Rxvv}i!c3O zqFSxu-Me=`ahJdW*REZA+SS#C+1XhH{uV&BTE&G67x3*rzlF!+dHVM4Tibu-;A$~N zQD~u1Kp+sn(9jS7G;NOl`rlvMzV22OrO8Y6;kOU)cs$7Ea+brEryDpL1K8dlixCP0 z0w|Zu0MPadkR*u)gF*E6_M%)aqqn!$ic{L&-sTJ` z4hDlL7K@JLbH5Kca5Cj2&AfQkve0J}x)v!nvpivPaDTG8a(cT~_MNw#U zJPJYxve_&E;G2JZ)7H3vl>pnm`WERWR8^bB`=0QWRl*{xu1ZVoqZ-o!xv zK$C0ytnhlhmfV5<0hp$V28P6{wGGJ;GdgY)OlAL}AJ3z&agqhdf+Rg8{~ zI?9Ku3lxh*OE4kCiW8V$n8()EmZJhVVQXs(^9%EqGlY;vw|CMQj_hZj&j;XBkV3g! z#^B(fldK#uI5>!Mx!e>W!5bIAa8v=z|IUJx0HC9z!%+d8z+|yNsnft!0fZ1FpCzs9 z!yzhX4bwnI@>$aA4t9UB{j{Pev{tJj7LDPT|NLTkhXLT#t5?WovuA1tL?RJ-|Nead zjfTi(vv~adV=TT{+3@%lR>>+M>?Ix{{Fs$PdFX>`};_z(=d!i z>{4G}A2eM%vP%6NwkkkT6dDeP0W_?x&CN|rPEI17P9qYD@RxtSMMNSIsH%#|$w_Q( zZd#!+;c(ctVP;zc*p#=ry4uvwR8>VV7~~F2I1MaVgIRz;V|-d&UA0`~b~(`yVzoH- zU<^jZKq{4juIuFR9~TnI1UqkQtT6B?Sc65ZdORK&72}}GoK8$k;Qvcz3Y@$`JvM=T z_`&!9LWmU*ags5;-R>2k9oeB!h*J9LF&0|m#t68$xVX5uxE$nv0MNN@qC9Hj00000 LNkvXXu0mjfsN}`2 delta 1639 zcmV-t2AKKaQ;|`yJ|cer32;bRa{vG+ng9SOngJI&A+i7f1}I5HK~#8N?VHO|<2n$A zm4y4fiZE{gtbjf5#)`**H(>>=fHxQd#r<{wAAg?wDaFUcY6W{v%~(|_W7*c<{Y&bW z)Qxk0d1;mDzqhwn_{#S7wmUgFak_rh&i?*>8N|rvRpYnElJ0*G_&ADy_4W0kk(0l# znin50NfI{>zL|g&EJ+poe13jT(&3+Q<-T8EweBc8z~9-~NnT%H$HJemNW8JJ0hn9s zt_?n0Tv*KhzU*B(o}Ztem)aEzrvGjc{=)piSoo$9FgrWzR##WuXY%QOUj7`qQqS`$ z3++Qb`1v38G5CL`5x{(VdU|qGQ&aB8+K)_Eu5bUmxwp4B$MY%+?W6en`}==jCMHa( z48AvwfYj}^(m9`f{P6gYDbAGwF+8u50NU^MdM=&!LonQ5U0u23<6|?vnYN{+C3ky! z>sqZ=rZfdosIQ}d`||QK1eL$H$YB}*SpCV#Nw>Vb?52OGr?WZ7k9(#C&n@8Ackuw& znwgoI3|~L)sgLnQ!35xPu=wp(I~xJ~tsnQ)bI*HL#X{c41IX?$25;u6Bo@z^9&KHN-&#Ftp`w0l^Z}nMK+B0xh7s}I8{?)zcxspol>#c!X#afkUjD}E3G^1nAXH}2x%q9tF90Q|V8 z9$UcQ@(xyEM!iqFw9iTtrJ4WwaZkPQEx18$5Z6OlSy^$Lo12-D!}zEm9QAUAdfy^Q z$h&wOrbDOG$wr|HM8x6;jQ}ZhcXyW=AoaSY0r!8@(*u;M2ml{<_wn)JK0ZGN(-8cW z{DkLLLl{KB+1Xj^`uf^&1pvl}0<1@`91IzH#HMS(DWkVK3 z07B9@!%r5!ch$=b5LXKIEJQ5eA4 z=P`ef^1(5?F$)Q5A7kv>AGu|bU}-am0F>9hABFj$Jc_HwsjF)4`w9t1R$n{ASP~|_ zI&=gS#ZhW*ZqD65+-FN&89C;pKioU*j?*G2W>;3$Yg&x?ejj|MCEfwgke(6@mgKv; zyUD{two@IsLo9TIQe0bKUHx5Gey&x$6b660Xx9e`xWKQLzy}8hStnM}DP^73JZ~6i z7-$%17-$%17-$&yUo%h|Ncd{0ytTFEPESvNTYf-)sa~3+P?nz%v>7Vu!a6oSbqt*- z0@4l0kZj|`=VO)pt{eq30sZJpl5R{Ac4AyP4~bP|jPJ4>1>`}7bVNqwC(!U>Qt>2>8QAd^*j^f4Pj9gx!N z#OEo5tE!a(!gGp9QCE3>02UWx zLtFp>M7X|ep|Y3=P@@DPC`wYm2re%E3YyeWzyi}xkciC_G^R1mFT$gX3z53u1JX zqQaCoIyx#nT!~S#=o_%W6h42lAQQ47qh&u3OaOx5?_r&d2O(C(!-Gakc#K3ZGzlyeo?sktz|4X968n|L)D3bx^Lp517b*TPpKpG1`rfx) zK)np{h39^n`2L+`y-4HJIm^qk)~gp3$a|HYQ91uP)GHt~ey-N%n9WSDmTl{*TA3St z*=93S+DS#j{j95AonEx1r^Y}#VV2s<_Iq0IR&M>w2r>{1{_KBusWLS7k4E-Ct3TYI z51w8$WvOb;qJ~6?re}9fRLF{-&s)S0`n6D|-eh+tQ?TOS)78&qol`;+00N|LMF0Q* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/l_foot.png b/Resources/Textures/Mobs/Animals/kobold.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8f9af0b08d2a81309cb7536b441c76130c3d78 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|7J9lkhE&XX zdu!v=Lk0pY0Y9rId0n)=(;3tLdIMJ>r(PPTM}-5!oSKXOccx7_zl;T_g@Hj{bE(Vy zsxNDg+ng_Sb6;!v>)PV2VwTSnWiNM3IL`m}x1GxO(Bme)no52kD?s2uoTlov(%w0r zFRc6(yY*V4@t^bN{YrUvy`wK(nzp?1kI&X?JO0F7DwJ{lwC~o9|BvM!%*``rVmJ^V Y!T9_)|=E1f>LRpd_i>vLBrqWXPpDLQ~Bp-N9yR%oH5vY-& z!T*Sa_qm-WzQKETUpAR4u{b+?l3v`xb+5hdf1k8u)v7(4@_+BkmSCG1d2`#@J-ZHS zZ&|lm_w=VOw(VU&kfL)> z3+rX}DHhz`_)o8Vj!=%2)0oO~n zKJu%+we8joh;|U!u)gQ<3&Ug4@0rdmnPSuO;Pj@LSqp#6ubj2)Qiqad`q|HGYVYgs r)sJ&H_p^4#hb7B0=gBbwwbegmUG`f$!!*bBG{_WBS3j3^P6DS1Dp zT~b{u%Ludq0&eiUueIAh|9z4B1AU+Sj}=?)?AuawZsoeyzEeJA$nL0%x%z!?kXK%( z!}hee2@{qq%RDn%;`^zP0|q?zwT;f@K7yL`$9{gBszYVEnCo1Sxt^|mF6*2UngE>1 Bg@phB literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/r_foot.png b/Resources/Textures/Mobs/Animals/kobold.rsi/r_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9f3e77c9d562ad05ead457bc5db08d1adeec06 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|R(iTPhE&XX zd+VU@VF!V>i;l~d-VFNoz^TJScHN=&9RkxI6lWywSg4@qX~4Mf`?=Rwm+$@82h_*F z(4b%Se(RiRQGVWAuf5t{t+(}>-L0zk=38xJs|}3pWB06kef9poE&K0)YzBf4^*xU( zKI`mlKeOh{n#@`6=DnH!o#W;<-M;n5J33}P|EYMnB<<*w# z28M=kCyr@Bn*^HvTAx;5m8Gc~eD%?seM?rX(h?MW`8zJDXSa+~&&6HqgeSV+6LMw# z@Gs8n{N^Wf?u!4c(|i7AS*FnYy*j5i)i!U-EwB81{@X7nMzFCULZ)NYt*=E}3uV@3 z&f2f5*q(S}P5H&DKR0Ln{jGncbnnf`)oc&uOuqbcOXTOnR;S{@8V^XDi`wg}{MvZe P9%O{4tDnm{r-UW|6ytF- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/r_leg.png b/Resources/Textures/Mobs/Animals/kobold.rsi/r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..e99fca61c956397db99b768c579d099b3b3e62cf GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|c6quuhE&XX zdutm~=dWSxRiv+%CpAohL1S;{U#}-g|8tP#+L9 z?7tMzw)cCb1e@n2oAb*ymq%SU^}e(%*Q)REmDj0~W#?XU{Zb2`zj}UaCgUWL@Tob9u_`ZD&t!dJ-kO=ljmryB^hi{=7qF?(>y}GNMizXZ0_A uul*=1ue%`gRXtzfxy<|DZPx$>q$gGRCt{2+P!Y0KokYw!$Pxpfgn@4a7k$kQBcvliAOPwAB@V4vvO9k+#_mh zcmx-w!SWMi8{lq{psbRt7p%2xDd%e_X3+f+Lo*j3A|fIpA|fK9uf@1@0;f_+$@G2- z0C@cQh_WoPTrNA;V|5K`Sr#UD69B-&kB5_j{ttPcLuVSJ;Rutv35tCI0Ma#|)(ucf zNe~2ZdJX_UXBv5)cZqctuZ6?uIS7IP=-7l-4QPsQ0v1JqBuQWxmpegPYePgN3`01M zgJNHt)P$p(lu|Mtk8$(;231v|*cUh)4oH#&rfFic*eID;zYoi@uvjdvCSM{V zA|fIpA|fIpA|kqKQ51<%N>)!R@jOp1ozHuo=gI16B}yrYqNsI#-?{{u-cO-34cB$M zXLx3=>q2K5&Co^b&300000NkvXXu0mjfjmPih literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/torso_f.png b/Resources/Textures/Mobs/Animals/kobold.rsi/torso_f.png new file mode 100644 index 0000000000000000000000000000000000000000..192d2b9849ec29a459a06aa9783a01e5c66f1a9c GIT binary patch literal 605 zcmV-j0;2tiP)Px%7fD1xRCt{2+A(h8Kokbx-vg!FjR03DC)i+off4lC0tIdY7jO<@Qm|R*kr6%K z3m_RGBnHSO>@8SEq2z@%Li>Lbg$uv;{AQTu4M0RhL`455NAgm?-_O_UHL@&&QVR8Y z9bp)XVo7v5o&53f(LS$MD~v`XQU0>zr8tf;=nw33_!>&Wh;6r9bYHqKI|HxgVK$qI zV~M)<{_{OQd>rhvSM%`vo^tw)?K@ez}lK rxvp#TYpoGQQQXh9YzPZ%_00000NkvXXu0mjfSqKLR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/torso_m.png b/Resources/Textures/Mobs/Animals/kobold.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..192d2b9849ec29a459a06aa9783a01e5c66f1a9c GIT binary patch literal 605 zcmV-j0;2tiP)Px%7fD1xRCt{2+A(h8Kokbx-vg!FjR03DC)i+off4lC0tIdY7jO<@Qm|R*kr6%K z3m_RGBnHSO>@8SEq2z@%Li>Lbg$uv;{AQTu4M0RhL`455NAgm?-_O_UHL@&&QVR8Y z9bp)XVo7v5o&53f(LS$MD~v`XQU0>zr8tf;=nw33_!>&Wh;6r9bYHqKI|HxgVK$qI zV~M)<{_{OQd>rhvSM%`vo^tw)?K@ez}lK rxvp#TYpoGQQQXh9YzPZ%_00000NkvXXu0mjfSqKLR literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/eyes.png b/Resources/Textures/Mobs/Animals/monkey.rsi/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..573a605e91a45e8b76783633b9bdd1ebaf18b663 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|EIeHtLn`LH zy|s~-!GPm{!N30v*)Q+#Zd6dLJ}KPE(9pPMKTs729EhD=-(b!NW-oZlxOo;^;*4a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/full.png b/Resources/Textures/Mobs/Animals/monkey.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..c36e9abf8b8f3bec7ad2f8904b7326b938c36f7f GIT binary patch literal 519 zcmV+i0{H!jP)Px$!AV3xR9J=WmN8GlKorM+HO9dv#)U9+z%a1Yg&6$;Bn&L>os4mmk6?(O05&ET zc2^R=fJAPQ-MDlhF2(o-2JP%4)j$f1EK zL=FNtKdw$~oh!v{oKFYN8){{w=)>M_YI}HsNdnjR?*5#PpjJi>11R{j_JR+O2>{|s zVk7H=QHV4u`fUw9f&$v!sC-_cDBR*AaU2r_I_Gh##pTf*p!-69oQ;6f z5p=H9G_Vb`HuqgH&A@#5*dl5U@IXm(fER^5xh|C!9KDTtG{@<4SqXS1xZTN2x0_e8 zT@6Dk38p#aX~zp1h(cXLwX*)YnK`7jK8zRIt~4t7dcg*0)L36B literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/head_f.png b/Resources/Textures/Mobs/Animals/monkey.rsi/head_f.png new file mode 100644 index 0000000000000000000000000000000000000000..e84d4fbbb5f9d081bc23ed8ea79e54659ba59b6c GIT binary patch literal 477 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zr+d0MhE&XX zd&}Pckb?xt!>)9j~a-ELRcv z$xu*Klkz(My*z`!l=r4gI%^eo{?yvZwuSGOZ^w1jg0SfMTcY_N)^2~Jk)a*!y?ob~ z-S3~pB~UM%tFJ>`UbCeFDN*1rFhllUrBqv%d|K&qV}5_r4%!OlHrEq`hKW-gnh zudM3HBe_jsQu&+o=*v!#lYV4>+ra9X)X_8LyP?dFyaZ{Lu+4`9o&Rodt?YUe7rijj z{P?reznO9--D&aLm6iSaRJ?c6WzI)w|J%NQ`SB`pvg5MC*HaSw Mp00i_>zopr0G24y$N&HU literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/head_m.png b/Resources/Textures/Mobs/Animals/monkey.rsi/head_m.png new file mode 100644 index 0000000000000000000000000000000000000000..e84d4fbbb5f9d081bc23ed8ea79e54659ba59b6c GIT binary patch literal 477 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zr+d0MhE&XX zd&}Pckb?xt!>)9j~a-ELRcv z$xu*Klkz(My*z`!l=r4gI%^eo{?yvZwuSGOZ^w1jg0SfMTcY_N)^2~Jk)a*!y?ob~ z-S3~pB~UM%tFJ>`UbCeFDN*1rFhllUrBqv%d|K&qV}5_r4%!OlHrEq`hKW-gnh zudM3HBe_jsQu&+o=*v!#lYV4>+ra9X)X_8LyP?dFyaZ{Lu+4`9o&Rodt?YUe7rijj z{P?reznO9--D&aLm6iSaRJ?c6WzI)w|J%NQ`SB`pvg5MC*HaSw Mp00i_>zopr0G24y$N&HU literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_arm.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..b72718d59a50b6a3eee183c1e1b3ca685274d8bd GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|R(QHNhE&XX zdut=_Ap-%{3(Ol`t+;kg5fr|V+LCih?@Pz5TOu9P4q0j!eYwXFe{Fm0T~`K%16kXP zr`-G0KQr;OYLevbDI0nMpLy5iWii@%=|1?{H>2%OI8bQW!`buCa-ZPKDfHGYW(3;B zz_7r0>u%=E%?GcY7X1IGj6G}FrQI|5?8ABd$^#u-{^mJlF-F%lM=f8=KjGoO4riAs huQz=41Zr!Lt6@;ysburJXvs&AF`lk|F6*2UngFPxUT^>a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_foot.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..9856dd6faef0445c290d1fb95d13026530387295 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|dOcknLn`LH zy|s{+$x(#mg5pByC#Hqd+!k>EdANc}MXG)h(~1~3tKfkH$|CwPI|lV{I7`lzgIoqseDq!_VcZV`$bQ7Hfb literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_hand.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..5ac8ce3e608c687251deb4bcf59158a068b54510 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|$~;{hLn`LH zy=5ra;vnF9Q1gvI5>x8*Vo9xlCXOj*TqSNuN33`y_QCAN2Y(iz`UCPsbB(TRPPg2& zY4@3l>AN>c3mS$T+jl!|=I*`mi++7y|BeZ$3J5MNy54oWYIZ=Cd_m2zJmGK3dF)mB gKla{dXJDx4m2aPmdKI;Vst07+;=+5i9m literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_leg.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..7907f130f4ccf8582e08f4fac96eeec7cef8c9e2 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|c6z!vhE&XX zdrOz^kb^+m!}TofD;=+zi0+um(wfusfTLPO@1X1sSN{tNA4^4L7;HtQWfZJ@IUm+u zne{iV{z(rD&esfK zFL*g+Yi-nh`FmT=&-)o18#n6#BSb%#{I9@vGt>Tj!4d7}&1=>jyI#Ki_-UK3ulGN_ q<$c^&>WakX`b|F>&g+BJewJpq#;h7>Y90XcB7>)^pUXO@geCyefM37> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json b/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json index b62cac749ad..d22ab1556c9 100644 --- a/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json +++ b/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json @@ -1,15 +1,74 @@ { - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b , edited by Alekshhh", - "states": [ - { - "name": "monkey", - "directions": 4 - } - ] + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b , edited by Alekshhh, parts splitted up by Roudenn (GitHub)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "monkey", + "directions": 4 + }, + { + "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": "tail", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_arm.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..db4a7b639a925c6d260b7a99b87d7c16b898a180 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|_ItWGhE&XX zdut=_Ap?1<#@*RF8K|*g z{W!ZU~<^n-bTz&X)1D+`eU#d~V);=#w~Y*PrPLF z_`+PWA?}0Yu6s*Q`|g%%EZVdA$mH8r5HnsJ6n4I(FE(YhZU)FePgg&ebxsLQ0FyOn A!T`SV--@&5M{_{RfuLsT zGC$4TulDWoe?I?3?OmO?Yx)0j5`TLp@w8t~-ExoN!22DH#u;jteZ1Gs0IBzM^>bP0 Hl+XkKm~&F- literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_hand.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e27204944ebaacad15d4ad5efc50ac6bcc8e51 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Dm`5sLn`LH zy|t0I#es+Afbd&^ODt0-I+umksERnMswp|Y(0}lE!A!P2MZ2Ow#vbUb)DbN0SmB(K zzOyK0&hbyB=hi(v@G0_k@ZSq-e@5+_^-|N45vUFb{)K<@d(ii6d!~HBi94J*!Skc* h)4#vJ`5h=7m&pEENyElC&q@HK($m$?Wt~$(69AmXMt1-J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_leg.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..c470114e15d689def2bb01b8ba03e4675f3c60c4 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|c6quuhE&XX zdrOh;kb%U}kL(8%(*lgWS@}EzPN;G89SGdPQvN_}&H~3rg`zSHe|=3XoG#^^-1g!B z%rKq5ap}KRfMx)}gXNdq%u3qwy^3{<+H>xx~0`` ttoFrp1O=Dcr%(FJ@cvljWuTq|Q?@kyR1Li1l*$Uy>gnp|vd$@?2>{t>WNZKc literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/tail.png b/Resources/Textures/Mobs/Animals/monkey.rsi/tail.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf07fb0ae89645accd3eeb21f7b16fd3dbe4dd9 GIT binary patch literal 360 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zl{{S>Ln`LH zy=CjiY$(w7P`{(Etxay}cflC9Th4D}cQknGZ74sXs1#V#@}(pjj(C;k5m^r zY&!8fWLo-O>&Np?X)^+iWng%)ZB0^g$tIf(cb7-3U*`C2)9yLXO{Q#}+bcOYXR{xF z?zK%-PF1G7n|2+rlB?-rkGHFj=a-n9v-`T1pHq(arQ7cHyOq|ZWlvr1_^otO-2LZe z+1uyHHl7dGGPy5mE4E*y;^yUMk?!-qmmCuW+Xp5-yceC`^3!zF6g{!*kJoCvH<&0@oVxgW3``OJULJP`M#x#c^McQqCfHSd~1H%r!grTWSyt0pUXO@geCwW Ct(h$V literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/torso_f.png b/Resources/Textures/Mobs/Animals/monkey.rsi/torso_f.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3c5ce5487eadfdf3ea0217bf7ebd232cd7322b GIT binary patch literal 465 zcmV;?0WSWDP)Px$i%CR5RCt{2+A(UwFcb#hmr^=3&@E(e!O*=&D4hyDL>EE#UZ4;Hy+BXkYZN>d zU888x5WJLtGh|T*qgsyLQa#HuZvGE~5`*%;$aV(#5di=I0KjpY`A&GgA+wmbj~6A; z%e(*gjh%nuJ3)OmL%WU-$>v;~pHWd(W1oEQ1=y5z0q(ddf0_}N&Drkujgg!0y#Pej zncwdAw3t_85$VUf`9wtaR_K$@T7duLlshr@SsyCjdjT$Q1wF1-L`0;urX)$K_v;0t8G5*G@5jg7qwmV ztLB8RmX)E|-h{dq9@Z7G4A7VmimhSEJPGV8;IM$$Mq7L#gi%U0UQ$Y00000NkvXX Hu0mjfccs+) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/torso_m.png b/Resources/Textures/Mobs/Animals/monkey.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3c5ce5487eadfdf3ea0217bf7ebd232cd7322b GIT binary patch literal 465 zcmV;?0WSWDP)Px$i%CR5RCt{2+A(UwFcb#hmr^=3&@E(e!O*=&D4hyDL>EE#UZ4;Hy+BXkYZN>d zU888x5WJLtGh|T*qgsyLQa#HuZvGE~5`*%;$aV(#5di=I0KjpY`A&GgA+wmbj~6A; z%e(*gjh%nuJ3)OmL%WU-$>v;~pHWd(W1oEQ1=y5z0q(ddf0_}N&Drkujgg!0y#Pej zncwdAw3t_85$VUf`9wtaR_K$@T7duLlshr@SsyCjdjT$Q1wF1-L`0;urX)$K_v;0t8G5*G@5jg7qwmV ztLB8RmX)E|-h{dq9@Z7G4A7VmimhSEJPGV8;IM$$Mq7L#gi%U0UQ$Y00000NkvXX Hu0mjfccs+) literal 0 HcmV?d00001 From 264ece6ff7989d1e334c9d2e5f1ac44f447c4414 Mon Sep 17 00:00:00 2001 From: Roudenn Date: Thu, 21 Nov 2024 20:31:43 +0300 Subject: [PATCH 2/3] Update animals.yml --- .../Prototypes/Entities/Mobs/NPCs/animals.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 23f0d5fad35..2108dc133e4 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1581,22 +1581,6 @@ path: /Audio/Animals/lizard_happy.ogg interactFailureSound: path: /Audio/Items/wirecutter.ogg - - type: RandomSprite - getAllGroups: true - available: - - enum.DamageStateVisualLayers.Base: - kobold: KoboldColors - - horns: - horns_curled: KoboldHornColors - horns_ram: KoboldHornColors - horns_short: KoboldHornColors - horns_myrsore: KoboldHornColors - horns_bighorn: KoboldHornColors - horns_argali: KoboldHornColors - horns_ayrshire: KoboldHornColors - horns_floppy_kobold_ears: Inherit - horns_double: Inherit - horns_kobold_ears: Inherit - type: MobThresholds thresholds: 0: Alive From 2d3b065bdcd058fc76f4b8013f8f05eea4c19fc5 Mon Sep 17 00:00:00 2001 From: Roudenn Date: Fri, 22 Nov 2024 18:27:25 +0300 Subject: [PATCH 3/3] Fix some things --- .../Locale/ru-RU/backmen/species/species.ftl | 3 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 2 +- .../Entities/Mobs/Player/humanoid.yml | 6 + .../monkey_inventory_template.yml | 248 +++++++++--------- .../Prototypes/_Backmen/Species/kobold.yml | 15 +- .../Prototypes/_Backmen/Species/monkey.yml | 6 +- .../Textures/Mobs/Animals/kobold.rsi/tail.png | Bin 561 -> 531 bytes 7 files changed, 146 insertions(+), 134 deletions(-) diff --git a/Resources/Locale/ru-RU/backmen/species/species.ftl b/Resources/Locale/ru-RU/backmen/species/species.ftl index 3e1f397d747..f6e78e22852 100644 --- a/Resources/Locale/ru-RU/backmen/species/species.ftl +++ b/Resources/Locale/ru-RU/backmen/species/species.ftl @@ -4,4 +4,7 @@ species-name-foxes = Лиса species-name-oni = Они species-name-felinid = Кошка species-name-ArachneClassic = Арахна классическая +species-name-monkey = Обезьяна +species-name-kobold = Кобольд + namepreset-x-no-y = { $last }-но-{ $first } diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 2108dc133e4..ea86511ca83 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1318,7 +1318,7 @@ - TauCetiBasic - Monkey - type: HumanoidAppearance - species: Monkey + species: Monkey # backmen: species - type: DiseaseCarrier - type: CombatMode - type: SurgeryTarget diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml index ab0b49a3371..8c9bb71ec1a 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml @@ -2,6 +2,12 @@ - type: randomHumanoidSettings id: EventHumanoid + # start-backmen: species + speciesBlacklist: + - Monkey + - Kobold + - ArachneClassic + # end-backmen: species components: - type: RandomHumanoidAppearance randomizeName: false diff --git a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml index 5414823ed66..bce0ae8019b 100644 --- a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml @@ -1,127 +1,127 @@ - type: inventoryTemplate id: monkey slots: - - name: head - slotTexture: head - slotFlags: HEAD - uiWindowPos: 1,2 - strippingWindowPos: 0,0 - displayName: Head - - name: ears - slotTexture: ears - slotFlags: EARS - stripTime: 3 - uiWindowPos: 0,2 - strippingWindowPos: 1,2 - displayName: Ears - - name: mask - slotTexture: mask - slotFlags: MASK - uiWindowPos: 0,1 - strippingWindowPos: 1,1 - displayName: Mask - - name: jumpsuit - slotTexture: uniform - slotFlags: INNERCLOTHING - stripTime: 6 - uiWindowPos: 1,0 - strippingWindowPos: 0,2 - displayName: Jumpsuit - - name: id - slotTexture: id - fullTextureName: template_small - slotFlags: IDCARD - slotGroup: SecondHotbar - stripTime: 6 - uiWindowPos: 2,1 - strippingWindowPos: 2,4 - dependsOn: jumpsuit - displayName: ID - - name: suitstorage - slotTexture: suit_storage - slotFlags: SUITSTORAGE - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 2,0 - strippingWindowPos: 2,5 - dependsOn: outerClothing - dependsOnComponents: - - type: AllowSuitStorage - displayName: Suit Storage - - name: outerClothing - slotTexture: suit - slotFlags: OUTERCLOTHING - stripTime: 6 - uiWindowPos: 1,1 - strippingWindowPos: 1,3 - displayName: Suit - whitelist: - tags: - - MonkeyWearable - #backmen:underclothing-start - - name: undershirt - slotTexture: undershirt - slotFlags: UNDERSHIRT - stripTime: 8 - uiWindowPos: 4,1 - strippingWindowPos: 3,1 - displayName: Undershirt - - name: underpants - slotTexture: underpants - slotFlags: UNDERPANTS - stripTime: 12 - uiWindowPos: 4,0 - strippingWindowPos: 3,2 - displayName: Underpants - - name: socks - slotTexture: socks - slotFlags: SOCKS - stripTime: 8 - uiWindowPos: 4,2 - strippingWindowPos: 3,3 - displayName: Socks - #backmen:underclothing-end - - name: gloves - slotTexture: gloves - slotFlags: GLOVES - uiWindowPos: 2,1 - strippingWindowPos: 2,2 - displayName: Gloves - - name: eyes - slotTexture: glasses - slotFlags: EYES - stripTime: 3 - uiWindowPos: 0,3 - strippingWindowPos: 0,0 - displayName: Eyes - - name: pocket1 - slotTexture: pocket - fullTextureName: template_small - slotFlags: POCKET - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 0,3 - strippingWindowPos: 0,4 - dependsOn: jumpsuit - displayName: Pocket 1 - stripHidden: true - - name: pocket2 - slotTexture: pocket - fullTextureName: template_small - slotFlags: POCKET - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 2,3 - strippingWindowPos: 1,4 - dependsOn: jumpsuit - displayName: Pocket 2 - stripHidden: true - - name: back - slotTexture: back - fullTextureName: template_small - slotFlags: BACK - slotGroup: SecondHotbar - stripTime: 6 - uiWindowPos: 3,0 - strippingWindowPos: 0,5 - displayName: Back + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 0,1 + strippingWindowPos: 0,2 + displayName: Jumpsuit + - name: outerClothing + slotTexture: suit + slotFlags: OUTERCLOTHING + stripTime: 6 + uiWindowPos: 1,1 + strippingWindowPos: 1,2 + displayName: Suit + #backmen:underclothing-start + - name: undershirt + slotTexture: undershirt + slotFlags: UNDERSHIRT + stripTime: 8 + uiWindowPos: 4,1 + strippingWindowPos: 3,1 + displayName: Undershirt + - name: underpants + slotTexture: underpants + slotFlags: UNDERPANTS + stripTime: 12 + uiWindowPos: 4,0 + strippingWindowPos: 3,2 + displayName: Underpants + - name: socks + slotTexture: socks + slotFlags: SOCKS + stripTime: 8 + uiWindowPos: 4,2 + strippingWindowPos: 3,3 + displayName: Socks + #backmen:underclothing-end + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,2 + strippingWindowPos: 1,1 + displayName: Mask + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,0 + displayName: Eyes + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 2,2 + strippingWindowPos: 2,0 + displayName: Ears + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,3 + strippingWindowPos: 1,0 + displayName: Head + - name: pocket1 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,5 + dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage + displayName: Suit Storage + - name: id + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + fullTextureName: template_small + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + fullTextureName: template_small + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back diff --git a/Resources/Prototypes/_Backmen/Species/kobold.yml b/Resources/Prototypes/_Backmen/Species/kobold.yml index e2fbd634e1b..42542c29164 100644 --- a/Resources/Prototypes/_Backmen/Species/kobold.yml +++ b/Resources/Prototypes/_Backmen/Species/kobold.yml @@ -5,11 +5,9 @@ prototype: MobKobold sprites: MobKoboldSprites dollPrototype: MobKoboldDummy - skinColoration: HumanToned + skinColoration: Hues + defaultSkinTone: "#9a7c5a" markingLimits: MobKoboldMarkingLimits -# sexes: -# - Male # no female sprites for now... -# - Female - type: speciesBaseSprites id: MobKoboldSprites @@ -19,7 +17,7 @@ Chest: MobKoboldTorso Tail: MobKoboldTail Eyes: MobKoboldEyes - HeadTop: MobKoboldAnyMarking + HeadTop: MobKoboldHorns LArm: MobKoboldLArm RArm: MobKoboldRArm LHand: MobKoboldLHand @@ -36,6 +34,13 @@ id: MobKoboldMarkingMatchSkin markingsMatchSkin: true +- type: humanoidBaseSprite + id: MobKoboldHorns + matchSkin: false + baseSprite: + sprite: Mobs/Customization/reptilian_parts.rsi + state: horns_short + - type: humanoidBaseSprite id: MobKoboldHead baseSprite: diff --git a/Resources/Prototypes/_Backmen/Species/monkey.yml b/Resources/Prototypes/_Backmen/Species/monkey.yml index 57cd1346638..9102ea7acfa 100644 --- a/Resources/Prototypes/_Backmen/Species/monkey.yml +++ b/Resources/Prototypes/_Backmen/Species/monkey.yml @@ -5,11 +5,9 @@ prototype: MobMonkey sprites: MobMonkeySprites dollPrototype: MobMonkeyDummy - skinColoration: HumanToned + skinColoration: Hues + defaultSkinTone: "#ffffff" markingLimits: MobMonkeyMarkingLimits -# sexes: -# - Male # no female sprites for now... -# - Female - type: speciesBaseSprites id: MobMonkeySprites diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/tail.png b/Resources/Textures/Mobs/Animals/kobold.rsi/tail.png index 4c1993a3d64a0d0301267c6a444f0cf0fbd207dc..9d1b337ab76379e532bf6a71d22a8216c6821674 100644 GIT binary patch delta 492 zcmVpDFP{M-A|fIp zA|fJsU!4CP;8aQ}nchtS01saukmos;%Vp*DH2!+Bf27@R-+#ASEqI=X>rdC{cDv|w zI``Y{_Dhxbd?-6nDJ9ioo}bMuY-ZtId5EH@a?Vl(P)bP@MW-b^6Jw0C*=%5~1%Q)_ zaP-V5rDQxFo1ch?h=_=Yh=_=Yh=^)MYb{DCSv{^K z2!h&mii04K)#FN(Qlhmkov(Cz8~~CInAG6qr-`yk6+mk(VHg4c zilRUq$F*xT#&PTvMF9W^!w_Y6LFpafU3svXMUo^ZMrAy|BuQX13-{73{Y>-N;7b)J zw-eaRVm_bOx=sEgo6Kf2Ol~ItAOMcG#((>N008WEyVr@117l2W7yql_a3~_LC!pW& i12|p?A|fJsf4&180-NG}gfH;`0000>^E delta 523 zcmV+m0`&cp1hE8=F@NhxL_t(|obB4ZZlgdH1>nO%vw49aQ@LKw091bN6 zL)f+r(==heID; zzYoi@uvjdvCSM{VA|fIpA|fIpA|kqKQ51<%N>)!R@jOp1ozHuo=gI16B}yrYqNsI# z-?{{u-cO-34cB$MXLx3=>q2K5&Cou^B;`&*xWlE&kqXZZezAnlT;$ zaP(^Yuk!%_u-$IoHW~)B)>m8npGKpRh`gPE!C(O3cq532i0JG24Yg9m@$5PFI{*Lx N07*qoLQn##