diff --git a/Resources/Prototypes/Entities/Objects/Decoration/flora.yml b/Resources/Prototypes/Entities/Objects/Decoration/flora.yml index b4a6cef811dd7..9f129ea0c14b4 100644 --- a/Resources/Prototypes/Entities/Objects/Decoration/flora.yml +++ b/Resources/Prototypes/Entities/Objects/Decoration/flora.yml @@ -232,6 +232,53 @@ tree05: "" tree06: "" +- type: entity + parent: [BaseControllable, FloraTree] # We cannot also inherit from BaseControllable, because that would also inherit GravityAffected, thus causing the tree to be pullable. + id: DionaTree + name: tree + description: Yep, it's a tree. Why do you feel it looking at you? + components: + - type: Actions + - type: Alerts + - type: BodyEmotes # Shhh... the trees are speaking + soundsId: DionaBodyEmotes + - type: BlockMovement # They should never be moving! + blockInteraction: false + blockUse: false + - type: Clickable + - type: ComplexInteraction + - type: DoAfter + - type: Examiner # Lets polymorphed diona inspect the surrounding area, their "eyes" still work. + - type: Hands + showInHands: false + disableExplosionRecursion: true + canBeStripped: false + activeHandId: Hand + hands: + Hand: + location: Left + - type: Input + context: "human" + - type: Inventory + templateId: dionaTree + - type: InventorySlots + - type: Puller # Imagine vine-tentacles made out of biomass + needsHands: false + - type: Transform # Don't move even when pulling stuff + anchored: true + - type: MindContainer + - type: Speech + speechSounds: Alto + speechVerb: Plant + allowedEmotes: ['Chirp'] + - type: Sprite + sprite: Objects/Decoration/Flora/flora_treesdiona.rsi + - type: Vocal + sounds: + Male: UnisexDiona + Female: UnisexDiona + Unsexed: UnisexDiona + - type: entity parent: BaseTreeSnow id: FloraTreeSnow diff --git a/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml index b1e9253729307..106d4d2de029d 100644 --- a/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/diona_inventory_template.yml @@ -2,6 +2,16 @@ - type: inventoryTemplate id: diona slots: + - name: id # By having the ID/PDA listed first, it will get transferred to the robust tree polymorph before the jumpsuit, which would drop the ID without re-equipping it. + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID - name: jumpsuit slotTexture: uniform slotFlags: INNERCLOTHING @@ -87,16 +97,6 @@ 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 diff --git a/Resources/Prototypes/InventoryTemplates/diona_tree_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/diona_tree_inventory_template.yml new file mode 100644 index 0000000000000..6ccaad2a5ac4a --- /dev/null +++ b/Resources/Prototypes/InventoryTemplates/diona_tree_inventory_template.yml @@ -0,0 +1,13 @@ +- type: inventoryTemplate # Just here to you keep your PDA on you even after transforming. + id: dionaTree # TODO: Prevent equipped items from being shown. + slots: + - name: id + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + displayName: ID + stripHidden: true diff --git a/Resources/Prototypes/Polymorphs/polymorph.yml b/Resources/Prototypes/Polymorphs/polymorph.yml index 531a6a8d8b44a..c4754cd67ebe1 100644 --- a/Resources/Prototypes/Polymorphs/polymorph.yml +++ b/Resources/Prototypes/Polymorphs/polymorph.yml @@ -129,12 +129,12 @@ - type: polymorph id: TreeMorph configuration: - entity: FloraTree + entity: DionaTree forced: true transferName: true revertOnDeath: true - inventory: Drop - cooldown: 160 + inventory: Transfer + cooldown: 30 - type: polymorph id: SmartCorgiMorph diff --git a/Resources/Prototypes/Reagents/botany.yml b/Resources/Prototypes/Reagents/botany.yml index 1b1ae04cd55e3..6850ec7bdba4c 100644 --- a/Resources/Prototypes/Reagents/botany.yml +++ b/Resources/Prototypes/Reagents/botany.yml @@ -134,18 +134,6 @@ conditions: - !type:MetabolizerTypeCondition type: [Plant] - - !type:HealthChange - conditions: - - !type:MetabolizerTypeCondition - type: [Plant] - - !type:ReagentCondition - reagent: RobustHarvest - min: 30 - damage: - types: - Asphyxiation: 1 - Heat: 2 - Poison: 1 - !type:Polymorph prototype: TreeMorph conditions: @@ -153,7 +141,16 @@ type: [Plant] - !type:ReagentCondition reagent: RobustHarvest - min: 80 + min: 25 + - !type:AdjustReagent + reagent: RobustHarvest + amount: -10 # Metabolism is paused while polymorphed, so this is to avoid the 999u unkillable diona antag + conditions: + - !type:MetabolizerTypeCondition + type: [Plant] + - !type:ReagentCondition + reagent: RobustHarvest + min: 35 # This is one and a half advanced jet injectors worth. Remember that the polymorph cooldown starts and is paused while it is in effect. - type: reagent id: Sedin diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/meta.json b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/meta.json new file mode 100644 index 0000000000000..e08a66afc5934 --- /dev/null +++ b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/e00cae8d065f9cf520688cc0dd0e15ba5bef12a9, altered by thanosdegraf", + "size": { + "x": 96, + "y": 96 + }, + "states": [ + { + "name": "tree01" + }, + { + "name": "tree02" + }, + { + "name": "tree03" + }, + { + "name": "tree04" + }, + { + "name": "tree05" + }, + { + "name": "tree06" + } + ] +} diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree01.png b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree01.png new file mode 100644 index 0000000000000..123c5c7bf589d Binary files /dev/null and b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree01.png differ diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree02.png b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree02.png new file mode 100644 index 0000000000000..a54f7c524772c Binary files /dev/null and b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree02.png differ diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree03.png b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree03.png new file mode 100644 index 0000000000000..4087a845e7684 Binary files /dev/null and b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree03.png differ diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree04.png b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree04.png new file mode 100644 index 0000000000000..c91a05988c7d7 Binary files /dev/null and b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree04.png differ diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree05.png b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree05.png new file mode 100644 index 0000000000000..9904d185595ab Binary files /dev/null and b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree05.png differ diff --git a/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree06.png b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree06.png new file mode 100644 index 0000000000000..2ef729fae1a4c Binary files /dev/null and b/Resources/Textures/Objects/Decoration/Flora/flora_treesdiona.rsi/tree06.png differ