diff --git a/components/baby/baby.lua b/components/baby/baby.lua index 2da1388..c20fcc9 100644 --- a/components/baby/baby.lua +++ b/components/baby/baby.lua @@ -26,10 +26,29 @@ function BabyComponent:post_activate() self._eat_listener = radiant.events.listen(self._entity, 'stonehearth:eat_food', function(e) self._sv._calories_consumed = self._sv._calories_consumed + e.food_data.satisfaction - if self._sv._calories_consumed > 200 then + if self._sv._calories_consumed > self:calories_target() then self:grow() end end) + + self._conversation_listener = radiant.events.listen(self._entity, 'stonehearth:conversation:results_produced', function(e) + local target = stonehearth.conversation:get_target(self._entity) + if not (target and target:is_valid()) then + return + end + radiant.entities.add_thought(target, 'stonehearth:thoughts:social:animal:booped', { + tooltip_args = { + species = "i18n(swamp_goblins:entities.goblins.baby.display_name)" + } + }) + end) +end + +function BabyComponent:calories_target() + if radiant.entities.has_buff(self._entity, "swamp_goblins:buffs:baby:bottle") then + return 150 + end + return 300 end function BabyComponent:grow() @@ -40,9 +59,9 @@ function BabyComponent:grow() local facing = radiant.entities.get_facing(self._entity) local equipment_component = self._entity:get_component("stonehearth:equipment") - local mind_booster = equipment_component:has_item_type("swamp_goblins:baby:toy:upgraded") - local body_booster = equipment_component:has_item_type("swamp_goblins:baby:bottle:upgraded") - local spirit_booster = equipment_component:has_item_type("swamp_goblins:baby:blanket:upgraded") + local mind_booster = equipment_component:has_item_type("swamp_goblins:baby:toy2") + local body_booster = equipment_component:has_item_type("swamp_goblins:baby:bottle2") + local spirit_booster = equipment_component:has_item_type("swamp_goblins:baby:blanket2") radiant.entities.destroy_entity(self._entity) @@ -78,12 +97,21 @@ function BabyComponent:reroll_stats(adult, mind_booster,body_booster,spirit_boos if mind_booster and (new_mind>current_mind) then attributes_component:set_attribute("mind", new_mind) + for i=1, new_mind-current_mind do + radiant.entities.add_thought(adult, 'stonehearth:thoughts:baby:mind_booster') + end end if body_booster and (new_body>current_body) then attributes_component:set_attribute("body", new_body) + for i=1, new_body-current_body do + radiant.entities.add_thought(adult, 'stonehearth:thoughts:baby:body_booster') + end end if spirit_booster and (new_spirit>current_spirit) then attributes_component:set_attribute("spirit", new_spirit) + for i=1, new_spirit-current_spirit do + radiant.entities.add_thought(adult, 'stonehearth:thoughts:baby:spirit_booster') + end end end @@ -100,6 +128,10 @@ function BabyComponent:destroy() self._eat_listener:destroy() self._eat_listener = nil end + if self._conversation_listener then + self._conversation_listener:destroy() + self._conversation_listener = nil + end end return BabyComponent \ No newline at end of file diff --git a/data/buffs/baby/blanket.json b/data/buffs/baby/blanket.json new file mode 100644 index 0000000..6ac54f0 --- /dev/null +++ b/data/buffs/baby/blanket.json @@ -0,0 +1,12 @@ +{ + "type": "buff", + "axis": "buff", + "display_name": "i18n(swamp_goblins:entities.baby.blanket.display_name)", + "description": "i18n(swamp_goblins:entities.baby.blanket.flavor)", + "icon": "/stonehearth/ui/game/images/spirit_stat.png", + "modifiers" : { + "sleep_duration": { + "multiply": 0.5 + } + } +} \ No newline at end of file diff --git a/data/buffs/baby/bottle.json b/data/buffs/baby/bottle.json new file mode 100644 index 0000000..e18fcd2 --- /dev/null +++ b/data/buffs/baby/bottle.json @@ -0,0 +1,12 @@ +{ + "type": "buff", + "axis": "buff", + "display_name": "i18n(swamp_goblins:entities.baby.bottle.display_name)", + "description": "i18n(swamp_goblins:entities.baby.bottle.flavor)", + "icon": "/stonehearth/ui/game/images/body_stat.png", + "modifiers" : { + "calorie_burn_multiplier": { + "multiply": 0.8 + } + } +} \ No newline at end of file diff --git a/data/buffs/baby/toy.json b/data/buffs/baby/toy.json new file mode 100644 index 0000000..c36dea5 --- /dev/null +++ b/data/buffs/baby/toy.json @@ -0,0 +1,15 @@ +{ + "type": "buff", + "axis": "buff", + "display_name": "i18n(swamp_goblins:entities.baby.toy.display_name)", + "description": "i18n(swamp_goblins:entities.baby.toy.flavor)", + "icon": "/stonehearth/ui/game/images/mind_stat.png", + "modifiers" : { + "social_loss_amount": { + "multiply": 0.5 + }, + "speed": { + "multiply": 1.11 + } + } +} \ No newline at end of file diff --git a/data/effects/mosquito_cloud/mosquito_cloud.json b/data/effects/mosquito_cloud/mosquito_cloud.json deleted file mode 100644 index 1666319..0000000 --- a/data/effects/mosquito_cloud/mosquito_cloud.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type" : "effect", - "tracks": { - "dummy_animation": { - "type": "animation_effect", - "start_time": 0, - "animation": "dummy.json", - "loop": false - }, - "mosquito_cloud": { - "type": "cubemitter", - "cubemitter": "/swamp_goblins/data/horde/particles/mosquito_cloud/mosquito.json", - "loop": false, - "transforms": { - "x":0, "y":2.5, "z":0, - "rx":90, "ry":0, "rz":0 - } - }, - "mosquito_cloud_dust": { - "type": "cubemitter", - "cubemitter": "/swamp_goblins/data/horde/particles/mosquito_cloud/mosquito_cloud.json", - "loop": false, - "transforms": { - "x":0, "y":2.5, "z":0, - "rx":90, "ry":0, "rz":0 - } - } - } -} \ No newline at end of file diff --git a/data/happiness/thoughts.json b/data/happiness/thoughts.json index 7e0dbfa..eb88bb0 100644 --- a/data/happiness/thoughts.json +++ b/data/happiness/thoughts.json @@ -1,6 +1,34 @@ { "type": "index", "thoughts": { + "baby": { + "values": { + "mind_booster": { + "display_name": "i18n(swamp_goblins:data.happiness.thoughts.baby.values.mind_booster.display_name)", + "tooltip": "i18n(swamp_goblins:data.happiness.thoughts.baby.values.mind_booster.tooltip)", + "happiness_delta": 1, + "duration": "1d", + "stackable": true, + "max_stacks": 10 + }, + "body_booster": { + "display_name": "i18n(swamp_goblins:data.happiness.thoughts.baby.values.body_booster.display_name)", + "tooltip": "i18n(swamp_goblins:data.happiness.thoughts.baby.values.body_booster.tooltip)", + "happiness_delta": 1, + "duration": "1d", + "stackable": true, + "max_stacks": 10 + }, + "spirit_booster": { + "display_name": "i18n(swamp_goblins:data.happiness.thoughts.baby.values.spirit_booster.display_name)", + "tooltip": "i18n(swamp_goblins:data.happiness.thoughts.baby.values.spirit_booster.tooltip)", + "happiness_delta": 1, + "duration": "1d", + "stackable": true, + "max_stacks": 10 + } + } + }, "water":{ "mutually_exclusive": false, "values":{ diff --git a/data/horde/particles/mosquito_cloud/mosquito.json b/data/horde/particles/mosquito_cloud/mosquito.json deleted file mode 100644 index 19e8717..0000000 --- a/data/horde/particles/mosquito_cloud/mosquito.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "name": "mosquito", - "duration": 20000, - "material": "materials/cubemitter.material.json", - "loops": true, - "emission": { - "rate": { - "kind": "CONSTANT", - "values": [20] - }, - "angle": { - "kind": "CONSTANT", - "values": [0] - }, - "origin": { - "surface": "SPHERE", - "values": [2, 0, 360] - } - }, - "particle": { - "lifetime": { - "start": { - "kind": "RANDOM_BETWEEN", - "values": [1000, 1200] - } - }, - "speed": { - "start": { - "kind": "RANDOM_BETWEEN", - "values": [-2, 2] - } - }, - "velocity": { - "over_lifetime_x": { - "kind": "CURVE", - "values": [ - [0, 8], - [0.5, -8], - [1, 8] - ] - }, - "over_lifetime_z": { - "kind": "CURVE", - "values": [ - [0, 0], - [0.25, -8], - [0.75, 8], - [1, 0] - ] - } - }, - "rotation": { - "over_lifetime_x": { - "kind": "RANDOM_BETWEEN_CURVES", - "values": [ - [ - [0, 0], - [1, 0] - ], - [ - [0, 90], - [1, 90] - ] - ] - }, - "over_lifetime_y": { - "kind": "RANDOM_BETWEEN_CURVES", - "values": [ - [ - [0, 0], - [1, 0] - ], - [ - [0, 90], - [1, 90] - ] - ] - }, - "over_lifetime_z": { - "kind": "RANDOM_BETWEEN_CURVES", - "values": [ - [ - [0, 0], - [1, 0] - ], - [ - [0, 90], - [1, 90] - ] - ] - } - }, - "scale": { - "start": { - "kind": "RANDOM_BETWEEN", - "values": [0.05, 0.1] - } - }, - "color": { - "start": { - "kind": "CONSTANT", - "values": [0, 0, 0, 1] - }, - "over_lifetime_a": { - "kind": "CURVE", - "values": [ - [0, 0], - [0.1, 1], - [0.9, 1], - [1, 0] - ] - } - } - } -} \ No newline at end of file diff --git a/data/horde/particles/mosquito_cloud/mosquito_cloud.json b/data/horde/particles/mosquito_cloud/mosquito_cloud.json deleted file mode 100644 index b0cb6cb..0000000 --- a/data/horde/particles/mosquito_cloud/mosquito_cloud.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "name": "mosquito_cloud", - "duration": 20000, - "material": "materials/cubemitter_bloom.material.json", - "loops": true, - "emission": { - "rate": { - "kind": "CONSTANT", - "values": [4] - }, - "angle": { - "kind": "CONSTANT", - "values": [0] - }, - "origin": { - "surface": "SPHERE", - "values": [2, 0, 360] - } - }, - "particle": { - "lifetime": { - "start": { - "kind": "RANDOM_BETWEEN", - "values": [4500, 5000] - } - }, - "speed": { - "start": { - "kind": "CONSTANT", - "values": [0] - } - }, - "velocity": { - "over_lifetime_x": { - "kind": "CURVE", - "values": [ - [0, 2], - [0.5, -2], - [1, 2] - ] - }, - "over_lifetime_z": { - "kind": "CURVE", - "values": [ - [0, 0], - [0.25, -2], - [0.75, 2], - [1, 0] - ] - } - }, - "rotation": { - "over_lifetime_x": { - "kind": "RANDOM_BETWEEN_CURVES", - "values": [ - [ - [0, 0], - [1, 0] - ], - [ - [0, 90], - [1, 90] - ] - ] - }, - "over_lifetime_y": { - "kind": "RANDOM_BETWEEN_CURVES", - "values": [ - [ - [0, 0], - [1, 0] - ], - [ - [0, 90], - [1, 90] - ] - ] - }, - "over_lifetime_z": { - "kind": "RANDOM_BETWEEN_CURVES", - "values": [ - [ - [0, 0], - [1, 0] - ], - [ - [0, 90], - [1, 90] - ] - ] - } - }, - "scale": { - "start": { - "kind": "RANDOM_BETWEEN", - "values": [2, 3] - } - }, - "color": { - "start": { - "kind": "CONSTANT", - "values": [0, 0, 0, 1] - }, - "over_lifetime_a": { - "kind": "CURVE", - "values": [ - [0, 0], - [0.1, 0.025], - [0.9, 0.025], - [1, 0] - ] - } - } - } -} \ No newline at end of file diff --git a/data/loadouts/loadouts.json b/data/loadouts/loadouts.json index f76e231..0ecf12e 100644 --- a/data/loadouts/loadouts.json +++ b/data/loadouts/loadouts.json @@ -28,10 +28,10 @@ }, "potion": { "ordinal": 30, - "display_name": "i18n(swamp_goblins:entities.consumables.large_healing.display_name)", + "display_name": "i18n(swamp_goblins:entities.consumables.potions.large_healing.display_name)", "type": "entity", "uri": "swamp_goblins:consumables:potions:large_healing", - "icon": "/swamp_goblins/entities/consumables/large_healing/large_healing.png", + "icon": "/swamp_goblins/entities/consumables/potions/large_healing/large_healing.png", "amount": 1 }, "jerky": { diff --git a/data/rigs/entities/monster/mosquito_cloud/animations/dummy.json b/data/rigs/entities/monster/mosquito_cloud/animations/dummy.json deleted file mode 100644 index 0ec8a8f..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/animations/dummy.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "type": "animation", - "frames": [ - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - } - ] -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/animations/idle_breathe.json b/data/rigs/entities/monster/mosquito_cloud/animations/idle_breathe.json deleted file mode 100644 index 0ec8a8f..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/animations/idle_breathe.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "type": "animation", - "frames": [ - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - }, - { - "root": { - "pos": [0,0,0], - "rot": [1,0,0,0] - }, - "ATTOVERCOG": { - "pos": [0,0,40], - "rot": [1,0,0,0] - }, - "head": { - "pos": [0,0,18], - "rot": [1,0,0,0] - }, - "bodyPosition": { - "pos": [0,0,18], - "rot": [1,0,0,0] - } - } - ] -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_backhand.json b/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_backhand.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_backhand.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_forehand.json b/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_forehand.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_forehand.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_idle.json b/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_idle.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/combat_1h_idle.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/idle_breathe.json b/data/rigs/entities/monster/mosquito_cloud/effects/idle_breathe.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/idle_breathe.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/idle_look_around.json b/data/rigs/entities/monster/mosquito_cloud/effects/idle_look_around.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/idle_look_around.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/idle_sway.json b/data/rigs/entities/monster/mosquito_cloud/effects/idle_sway.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/idle_sway.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/effects/run.json b/data/rigs/entities/monster/mosquito_cloud/effects/run.json deleted file mode 100644 index ab3a18b..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/effects/run.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "mixins": "swamp_goblins:effects:mosquito_cloud" -} \ No newline at end of file diff --git a/data/rigs/entities/monster/mosquito_cloud/mosquito_cloud.json b/data/rigs/entities/monster/mosquito_cloud/mosquito_cloud.json deleted file mode 100644 index 7de4405..0000000 --- a/data/rigs/entities/monster/mosquito_cloud/mosquito_cloud.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "skeleton": { - "root": [0,0,0], - "bodyPosition": [0,0,20], - "head": [0,0,20], - "ATTOVERCOG": [0,0,40] - }, - "animation_root" : "file(animations)", - "effects_root": "file(effects)" -} diff --git a/entities/armor/party_goblin_hat/party_goblin_hat.json b/entities/armor/party_goblin_hat/party_goblin_hat.json index a47d9a5..2561780 100644 --- a/entities/armor/party_goblin_hat/party_goblin_hat.json +++ b/entities/armor/party_goblin_hat/party_goblin_hat.json @@ -13,7 +13,7 @@ }, "stonehearth:equipment_piece": { "render_type": "merge_with_model", - "slot": "helmet", + "slot": "helmet" } }, "entity_data": { diff --git a/entities/baby/blanket/blanket.json b/entities/baby/blanket/blanket.json new file mode 100644 index 0000000..822123a --- /dev/null +++ b/entities/baby/blanket/blanket.json @@ -0,0 +1,39 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(blanket_iconic.json)" + }, + "stonehearth:equipment_piece": { + "render_type": "merge_with_model", + "slot": "baby_blanket", + "ilevel": 1, + "roles":["npc_baby"], + "equip_effect": "stonehearth:effects:weapon_level_up", + "no_drop": true, + "injected_buffs": [ + "swamp_goblins:buffs:baby:blanket" + ] + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 4, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 2, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.baby.blanket.display_name)", + "description": "i18n(swamp_goblins:entities.baby.blanket.description)", + "icon": "file(blanket.png)", + "category": "tools", + "material_tags": ["firefly_made", "stockpile_tool"] + } + } +} \ No newline at end of file diff --git a/entities/baby/blanket/blanket.png b/entities/baby/blanket/blanket.png new file mode 100644 index 0000000..0534132 Binary files /dev/null and b/entities/baby/blanket/blanket.png differ diff --git a/entities/baby/blanket/blanket.qb b/entities/baby/blanket/blanket.qb new file mode 100644 index 0000000..6127aff Binary files /dev/null and b/entities/baby/blanket/blanket.qb differ diff --git a/entities/baby/blanket/blanket_iconic.json b/entities/baby/blanket/blanket_iconic.json new file mode 100644 index 0000000..207ec80 --- /dev/null +++ b/entities/baby/blanket/blanket_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(blanket.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "tools" + } + } +} \ No newline at end of file diff --git a/entities/baby/blanket2/blanket2.json b/entities/baby/blanket2/blanket2.json new file mode 100644 index 0000000..70f2d59 --- /dev/null +++ b/entities/baby/blanket2/blanket2.json @@ -0,0 +1,39 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(blanket2_iconic.json)" + }, + "stonehearth:equipment_piece": { + "render_type": "merge_with_model", + "slot": "baby_blanket", + "ilevel": 2, + "roles":["npc_baby"], + "equip_effect": "stonehearth:effects:weapon_level_up", + "no_drop": true, + "injected_buffs": [ + "swamp_goblins:buffs:baby:blanket" + ] + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 39, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 3, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.baby.blanket2.display_name)", + "description": "i18n(swamp_goblins:entities.baby.blanket2.description)", + "icon": "file(blanket2.png)", + "category": "tools", + "material_tags": ["firefly_made", "stockpile_tool"] + } + } +} \ No newline at end of file diff --git a/entities/baby/blanket2/blanket2.png b/entities/baby/blanket2/blanket2.png new file mode 100644 index 0000000..cbec46c Binary files /dev/null and b/entities/baby/blanket2/blanket2.png differ diff --git a/entities/baby/blanket2/blanket2.qb b/entities/baby/blanket2/blanket2.qb new file mode 100644 index 0000000..379ca26 Binary files /dev/null and b/entities/baby/blanket2/blanket2.qb differ diff --git a/entities/baby/blanket2/blanket2_iconic.json b/entities/baby/blanket2/blanket2_iconic.json new file mode 100644 index 0000000..3e22bc9 --- /dev/null +++ b/entities/baby/blanket2/blanket2_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(blanket2.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "tools" + } + } +} \ No newline at end of file diff --git a/entities/baby/bottle/bottle.json b/entities/baby/bottle/bottle.json new file mode 100644 index 0000000..1d318df --- /dev/null +++ b/entities/baby/bottle/bottle.json @@ -0,0 +1,39 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(bottle_iconic.json)" + }, + "stonehearth:equipment_piece": { + "render_type": "merge_with_model", + "slot": "baby_bottle", + "ilevel": 1, + "roles":["npc_baby"], + "equip_effect": "stonehearth:effects:weapon_level_up", + "no_drop": true, + "injected_buffs": [ + "swamp_goblins:buffs:baby:bottle" + ] + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 4, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 2, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.baby.bottle.display_name)", + "description": "i18n(swamp_goblins:entities.baby.bottle.description)", + "icon": "file(bottle.png)", + "category": "tools", + "material_tags": ["firefly_made", "stockpile_tool"] + } + } +} \ No newline at end of file diff --git a/entities/baby/bottle/bottle.png b/entities/baby/bottle/bottle.png new file mode 100644 index 0000000..3936da6 Binary files /dev/null and b/entities/baby/bottle/bottle.png differ diff --git a/entities/baby/bottle/bottle.qb b/entities/baby/bottle/bottle.qb new file mode 100644 index 0000000..39fa6bc Binary files /dev/null and b/entities/baby/bottle/bottle.qb differ diff --git a/entities/baby/bottle/bottle_iconic.json b/entities/baby/bottle/bottle_iconic.json new file mode 100644 index 0000000..9328d3a --- /dev/null +++ b/entities/baby/bottle/bottle_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(bottle.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "tools" + } + } +} \ No newline at end of file diff --git a/entities/baby/bottle2/bottle2.json b/entities/baby/bottle2/bottle2.json new file mode 100644 index 0000000..17ac594 --- /dev/null +++ b/entities/baby/bottle2/bottle2.json @@ -0,0 +1,39 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(bottle2_iconic.json)" + }, + "stonehearth:equipment_piece": { + "render_type": "merge_with_model", + "slot": "baby_bottle", + "ilevel": 2, + "roles":["npc_baby"], + "equip_effect": "stonehearth:effects:weapon_level_up", + "no_drop": true, + "injected_buffs": [ + "swamp_goblins:buffs:baby:bottle" + ] + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 39, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 3, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.baby.bottle2.display_name)", + "description": "i18n(swamp_goblins:entities.baby.bottle2.description)", + "icon": "file(bottle2.png)", + "category": "tools", + "material_tags": ["firefly_made", "stockpile_tool"] + } + } +} \ No newline at end of file diff --git a/entities/baby/bottle2/bottle2.png b/entities/baby/bottle2/bottle2.png new file mode 100644 index 0000000..b81dbdb Binary files /dev/null and b/entities/baby/bottle2/bottle2.png differ diff --git a/entities/baby/bottle2/bottle2.qb b/entities/baby/bottle2/bottle2.qb new file mode 100644 index 0000000..71e40dd Binary files /dev/null and b/entities/baby/bottle2/bottle2.qb differ diff --git a/entities/baby/bottle2/bottle2_iconic.json b/entities/baby/bottle2/bottle2_iconic.json new file mode 100644 index 0000000..532b026 --- /dev/null +++ b/entities/baby/bottle2/bottle2_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(bottle2.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "tools" + } + } +} \ No newline at end of file diff --git a/entities/baby/toy/toy.json b/entities/baby/toy/toy.json new file mode 100644 index 0000000..9ba1ce4 --- /dev/null +++ b/entities/baby/toy/toy.json @@ -0,0 +1,39 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(toy_iconic.json)" + }, + "stonehearth:equipment_piece": { + "render_type": "merge_with_model", + "slot": "baby_toy", + "ilevel": 1, + "roles":["npc_baby"], + "equip_effect": "stonehearth:effects:weapon_level_up", + "no_drop": true, + "injected_buffs": [ + "swamp_goblins:buffs:baby:toy" + ] + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 4, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 2, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.baby.toy.display_name)", + "description": "i18n(swamp_goblins:entities.baby.toy.description)", + "icon": "file(toy.png)", + "category": "tools", + "material_tags": ["firefly_made", "stockpile_tool"] + } + } +} \ No newline at end of file diff --git a/entities/baby/toy/toy.png b/entities/baby/toy/toy.png new file mode 100644 index 0000000..4c92079 Binary files /dev/null and b/entities/baby/toy/toy.png differ diff --git a/entities/baby/toy/toy.qb b/entities/baby/toy/toy.qb new file mode 100644 index 0000000..bbceb1b Binary files /dev/null and b/entities/baby/toy/toy.qb differ diff --git a/entities/baby/toy/toy_iconic.json b/entities/baby/toy/toy_iconic.json new file mode 100644 index 0000000..e6bf3a6 --- /dev/null +++ b/entities/baby/toy/toy_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(toy.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "tools" + } + } +} \ No newline at end of file diff --git a/entities/baby/toy2/toy2.json b/entities/baby/toy2/toy2.json new file mode 100644 index 0000000..4af00da --- /dev/null +++ b/entities/baby/toy2/toy2.json @@ -0,0 +1,39 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(toy2_iconic.json)" + }, + "stonehearth:equipment_piece": { + "render_type": "merge_with_model", + "slot": "baby_toy", + "ilevel": 2, + "roles":["npc_baby"], + "equip_effect": "stonehearth:effects:weapon_level_up", + "no_drop": true, + "injected_buffs": [ + "swamp_goblins:buffs:baby:toy" + ] + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 39, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 3, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.baby.toy2.display_name)", + "description": "i18n(swamp_goblins:entities.baby.toy2.description)", + "icon": "file(toy2.png)", + "category": "tools", + "material_tags": ["firefly_made", "stockpile_tool"] + } + } +} \ No newline at end of file diff --git a/entities/baby/toy2/toy2.png b/entities/baby/toy2/toy2.png new file mode 100644 index 0000000..b230137 Binary files /dev/null and b/entities/baby/toy2/toy2.png differ diff --git a/entities/baby/toy2/toy2.qb b/entities/baby/toy2/toy2.qb new file mode 100644 index 0000000..fec9762 Binary files /dev/null and b/entities/baby/toy2/toy2.qb differ diff --git a/entities/baby/toy2/toy2_iconic.json b/entities/baby/toy2/toy2_iconic.json new file mode 100644 index 0000000..e1d8f22 --- /dev/null +++ b/entities/baby/toy2/toy2_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(toy2.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "tools" + } + } +} \ No newline at end of file diff --git a/entities/consumables/seeds/giple/giple.json b/entities/consumables/seeds/giple/giple.json new file mode 100644 index 0000000..c83659a --- /dev/null +++ b/entities/consumables/seeds/giple/giple.json @@ -0,0 +1,44 @@ +{ + "mixins": [ + "stonehearth:mixins:item_properties", + "file(giple_ghost.json)" + ], + "type": "entity", + "components": { + "stonehearth:commands": { + "commands": [ + "stonehearth:commands:use_seeds" + ] + }, + "stonehearth:entity_forms": { + "iconic_form": "file(giple_iconic.json)", + "ghost_form": "file(giple_ghost.json)", + "placeable_on_ground": true + } + }, + "entity_data": { + "stonehearth:net_worth": { + "value_in_gold": 30, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 3, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:consumable": { + "script": "stonehearth:consumables:scripts:unlock_crop", + "crop": "giple" + }, + "stonehearth:catalog": { + "material_tags": [ + "firefly_made", + "seeds", + "small", + "consumable", + "stockpile_consumable" + ] + } + } +} \ No newline at end of file diff --git a/entities/consumables/seeds/giple/giple.png b/entities/consumables/seeds/giple/giple.png new file mode 100644 index 0000000..56c723a Binary files /dev/null and b/entities/consumables/seeds/giple/giple.png differ diff --git a/entities/consumables/seeds/giple/giple.qb b/entities/consumables/seeds/giple/giple.qb new file mode 100644 index 0000000..51c9344 Binary files /dev/null and b/entities/consumables/seeds/giple/giple.qb differ diff --git a/entities/consumables/seeds/giple/giple_ghost.json b/entities/consumables/seeds/giple/giple_ghost.json new file mode 100644 index 0000000..c6cefe0 --- /dev/null +++ b/entities/consumables/seeds/giple/giple_ghost.json @@ -0,0 +1,24 @@ +{ + "mixins": "stonehearth:mixins:placed_object", + "type": "entity", + "components": { + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + }, + "model_variants": { + "default": { + "models": [ + "file(giple.qb)" + ] + } + } + }, + "entity_data": { + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.consumables.seeds.giple.display_name)", + "description": "i18n(swamp_goblins:entities.consumables.seeds.giple.description)", + "icon": "file(giple.png)", + "category": "consumable" + } + } +} \ No newline at end of file diff --git a/entities/consumables/seeds/giple/giple_iconic.json b/entities/consumables/seeds/giple/giple_iconic.json new file mode 100644 index 0000000..6423c6e --- /dev/null +++ b/entities/consumables/seeds/giple/giple_iconic.json @@ -0,0 +1,27 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(giple.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 } + }, + "stonehearth:commands": { + "commands": [ + "stonehearth:commands:use_seeds" + ] + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "consumable" + } + } +} \ No newline at end of file diff --git a/entities/critters/dragonfly/dragonfly.json b/entities/critters/dragonfly/dragonfly.json new file mode 100644 index 0000000..fa0eabb --- /dev/null +++ b/entities/critters/dragonfly/dragonfly.json @@ -0,0 +1,154 @@ +{ + "type": "entity", + "mixins": "stonehearth:mixins:critter", + "components": { + "model_variants": { + "default": { + "models": [ + "file(dragonfly.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": 0, "y": -2, "z": 0 } + }, + "stonehearth:resource_node": { + "category": "herding", + "harvest_overlay_effect": "stonehearth:effects:chop_overlay_effect", + "harvester_effect": "fiddle", + "description": "harvest_animal", + "resource": "stonehearth:food:poyo_meat", + "harvestable_by_harvest_tool": false, + "check_owner": true, + "resource_loot_table": { + "entries": { + "pelt": { + "items": { + "none": { + "uri": "", + "weight": 1 + }, + "pelt": { + "uri": "stonehearth:resources:feathers:poyo_feathers", + "weight": 1 + } + } + } + } + } + }, + "stonehearth:renewable_resource_node": { + "category": "herding", + "resource": "stonehearth:food:egg", + "renewal_time": "40h+12h", + "resource_spawn_effect": "stonehearth:effects:fursplosion_effect", + "start_unharvestable": true, + "spawn_resource_immediately": true, + "check_owner": true, + "resource_loot_table": { + "entries": { + "pelt": { + "roll_type": "some_of", + "num_rolls": { + "min": 0, + "max": 1 + }, + "items": { + "none": { + "uri": "", + "weight": 5 + }, + "fertilized egg": { + "uri": "stonehearth:poyo:egg", + "weight": 1 + } + } + } + } + } + }, + "stonehearth:attributes": { + "max_health": { + "type": "basic", + "value": 20 + }, + "min_calories": { + "type": "basic", + "value": -30 + }, + "max_calories": { + "type": "basic", + "value": 30 + }, + "speed": { + "type": "basic", + "value": 40 + }, + "reproduction_rate_multiplier": { + "type": "basic", + "value": 1 + }, + "renewable_resource_rate_multiplier": { + "type": "basic", + "value": 1 + }, + "max_social_satisfaction": { + "type": "basic", + "value": 72 + } + }, + "render_info": { + "animation_table": "stonehearth/data/rigs/entities/critters/poyo/poyo.json", + "scale": 0.14 + } + }, + "entity_data": { + "stonehearth:entity_radius": 1, + "stonehearth:species": { + "id": "dragonfly", + "display_name": "i18n(swamp_goblins:entities.critters.dragonfly.species)" + }, + "stonehearth:idle_effects": { + "effects": [ + { + "name": "idle_breathe", + "weight": 6 + }, + { + "name": "idle_look_around", + "weight": 3 + }, + { + "name": "idle_peck", + "weight": 6 + } + ] + }, + "stonehearth:pasture_animal": { + "added_equipment": [ + "stonehearth:pasture_equipment:adult_animal_collar" + ], + "food_material": "poyo_feed_edible", + "type": "stonehearth:poyo" + }, + "stonehearth:calories": { + "hungry_threshold": 0, + "famished_threshold": 0, + "malnourished_threshold": -10, + "hourly_calorie_loss": 0.5 + }, + "stonehearth:net_worth": { + "value_in_gold": 8, + "shop_info": { + "buyable": false, + "sellable": false + } + }, + "stonehearth:catalog": { + "player_id": "animals", + "display_name": "i18n(swamp_goblins:entities.critters.dragonfly.display_name)", + "description": "i18n(swamp_goblins:entities.critters.dragonfly.description)", + "icon": "file(dragonfly.png)" + } + } +} \ No newline at end of file diff --git a/entities/critters/dragonfly/dragonfly.png b/entities/critters/dragonfly/dragonfly.png new file mode 100644 index 0000000..2086aa9 Binary files /dev/null and b/entities/critters/dragonfly/dragonfly.png differ diff --git a/entities/critters/dragonfly/dragonfly.qb b/entities/critters/dragonfly/dragonfly.qb new file mode 100644 index 0000000..a523990 Binary files /dev/null and b/entities/critters/dragonfly/dragonfly.qb differ diff --git a/entities/critters/frog/rabbit_jerky/rabbit_jerky.json b/entities/critters/frog/rabbit_jerky/rabbit_jerky.json deleted file mode 100644 index 191202f..0000000 --- a/entities/critters/frog/rabbit_jerky/rabbit_jerky.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "mixins": "stonehearth:mixins:resources:jerky", - "type": "entity", - "components": {}, - "entity_data": { - "stonehearth:catalog": { - "display_name": "i18n(stonehearth:entities.critters.rabbit.rabbit_jerky.display_name)" - } - } -} diff --git a/entities/crops/giple_crop/giple_crop.json b/entities/crops/giple_crop/giple_crop.json index 6fddbc0..846debf 100644 --- a/entities/crops/giple_crop/giple_crop.json +++ b/entities/crops/giple_crop/giple_crop.json @@ -4,38 +4,43 @@ "model_variants": { "default": { "models": [ - "file(giple_1.qb)" + "file(waterfarm_giple_1.qb)" ] }, "giple_1": { "models": [ - "file(giple_1.qb)" + "file(waterfarm_giple_1.qb)" ] }, "giple_2": { "models": [ - "file(giple_2.qb)" + "file(waterfarm_giple_2.qb)" ] }, "giple_3": { "models": [ - "file(giple_3.qb)" + "file(waterfarm_giple_3.qb)" ] }, "giple_4": { "models": [ - "file(giple_4.qb)" + "file(waterfarm_giple_4.qb)" ] } }, "render_info": { - "scale": 0.1 + "color_map": "stonehearth:color_map:water", + "material_maps": [ + "/stonehearth/data/materials/material_maps/water_material_map.json" + ], + "scale": 0.0715 }, "mob": { - "model_origin": { "x": -0.05, "y": 0, "z": -0.05 }, + "model_origin": { "x": 0, "y": -0.015, "z": 0 }, "mob_collision_type": "clutter" }, "stonehearth:crop": { + "post_harvest_stage":1, "resource_pairings": { "giple_4": "swamp_goblins:resources:giant_flower" }, @@ -96,14 +101,14 @@ "stonehearth:catalog": { "display_name": "i18n(swamp_goblins:entities.crops.giple_crop.display_name)", "description": "i18n(swamp_goblins:entities.crops.giple_crop.description)", - "icon": "/swamp_goblins/entities/plants/giple/giple.png", + "icon": "/swamp_goblins/entities/plants/giant_flower/giant_flower.png", "material_tags": [ "crop", "giple" ] }, "stonehearth:appeal": { - "appeal": 1 + "appeal": 2 } } } \ No newline at end of file diff --git a/entities/crops/giple_crop/waterfarm_giple_1.qb b/entities/crops/giple_crop/waterfarm_giple_1.qb new file mode 100644 index 0000000..ff196c4 Binary files /dev/null and b/entities/crops/giple_crop/waterfarm_giple_1.qb differ diff --git a/entities/crops/giple_crop/waterfarm_giple_2.qb b/entities/crops/giple_crop/waterfarm_giple_2.qb new file mode 100644 index 0000000..b1f31f7 Binary files /dev/null and b/entities/crops/giple_crop/waterfarm_giple_2.qb differ diff --git a/entities/crops/giple_crop/waterfarm_giple_3.qb b/entities/crops/giple_crop/waterfarm_giple_3.qb new file mode 100644 index 0000000..5cb33fc Binary files /dev/null and b/entities/crops/giple_crop/waterfarm_giple_3.qb differ diff --git a/entities/crops/giple_crop/waterfarm_giple_4.qb b/entities/crops/giple_crop/waterfarm_giple_4.qb new file mode 100644 index 0000000..407e2b8 Binary files /dev/null and b/entities/crops/giple_crop/waterfarm_giple_4.qb differ diff --git a/entities/decoration/certificate/certificate.json b/entities/decoration/certificate/certificate.json index d248b53..3d8e8ad 100644 --- a/entities/decoration/certificate/certificate.json +++ b/entities/decoration/certificate/certificate.json @@ -19,7 +19,7 @@ }, "entity_data": { "stonehearth:net_worth": { - "value_in_gold": 6, + "value_in_gold": 4, "rarity": "common", "shop_info": { "buyable": true, diff --git a/entities/furniture/clay/bed/bed.png b/entities/furniture/clay/bed/bed.png index 7743c62..7f3cafe 100644 Binary files a/entities/furniture/clay/bed/bed.png and b/entities/furniture/clay/bed/bed.png differ diff --git a/entities/furniture/clay/bed/bed.qb b/entities/furniture/clay/bed/bed.qb index bd13cba..c066a8c 100644 Binary files a/entities/furniture/clay/bed/bed.qb and b/entities/furniture/clay/bed/bed.qb differ diff --git a/entities/furniture/clay/bed/bed_ghost.json b/entities/furniture/clay/bed/bed_ghost.json index 7f757c6..5b1126c 100644 --- a/entities/furniture/clay/bed/bed_ghost.json +++ b/entities/furniture/clay/bed/bed_ghost.json @@ -10,7 +10,7 @@ } }, "render_info": { - "scale": 0.22 + "scale": 0.11 }, "mob": { "model_origin": { "x": 0, "y": 0, "z": 0 }, @@ -19,7 +19,7 @@ }, "entity_data": { "stonehearth:catalog": { - "display_name": "i18n(stonehearth:entities.furniture.clay_bed.clay_bed_ghost.display_name)", + "display_name": "i18n(swamp_goblins:entities.furniture.clay.bed.display_name)", "description": "i18n(stonehearth:entities.furniture.clay_bed.clay_bed_ghost.description)", "icon": "file(bed.png)", "category": "furniture", diff --git a/entities/furniture/clay/chair/chair.png b/entities/furniture/clay/chair/chair.png index 6450bc3..ec0d33c 100644 Binary files a/entities/furniture/clay/chair/chair.png and b/entities/furniture/clay/chair/chair.png differ diff --git a/entities/furniture/clay/chair/chair.qb b/entities/furniture/clay/chair/chair.qb index 6c7adaf..d4c8832 100644 Binary files a/entities/furniture/clay/chair/chair.qb and b/entities/furniture/clay/chair/chair.qb differ diff --git a/entities/furniture/clay/chair/chair_ghost.json b/entities/furniture/clay/chair/chair_ghost.json index eedabf8..aa677a2 100644 --- a/entities/furniture/clay/chair/chair_ghost.json +++ b/entities/furniture/clay/chair/chair_ghost.json @@ -15,7 +15,7 @@ }, "entity_data": { "stonehearth:catalog": { - "display_name": "i18n(stonehearth:entities.furniture.simple_clay_chair.simple_clay_chair_ghost.display_name)", + "display_name": "i18n(swamp_goblins:entities.furniture.clay.chair.display_name)", "description": "i18n(stonehearth:entities.furniture.simple_clay_chair.simple_clay_chair_ghost.description)", "icon": "file(chair.png)", "category": "furniture", diff --git a/entities/furniture/clay/table/table.png b/entities/furniture/clay/table/table.png index 5a68dbd..259f31f 100644 Binary files a/entities/furniture/clay/table/table.png and b/entities/furniture/clay/table/table.png differ diff --git a/entities/furniture/clay/table/table.qb b/entities/furniture/clay/table/table.qb index 4516e33..f6b8c36 100644 Binary files a/entities/furniture/clay/table/table.qb and b/entities/furniture/clay/table/table.qb differ diff --git a/entities/furniture/clay/table/table_ghost.json b/entities/furniture/clay/table/table_ghost.json index f4e5267..d4d82b9 100644 --- a/entities/furniture/clay/table/table_ghost.json +++ b/entities/furniture/clay/table/table_ghost.json @@ -17,7 +17,7 @@ "entity_data": { "stonehearth:catalog": { "display_name": "i18n(swamp_goblins:entities.furniture.clay.table.display_name)", - "description": "i18n(swamp_goblins:entities.furniture.clay.table.description)", + "description": "i18n(stonehearth:entities.furniture.clay_dining_table.clay_dining_table_ghost.description)", "icon": "file(table.png)", "category": "furniture", "material_tags": ["firefly_made", "clay", "table", "furniture", "crafted", "stockpile_furniture"] diff --git a/entities/furniture/clay/table/table_iconic.qb b/entities/furniture/clay/table/table_iconic.qb index cc1d98a..546212c 100644 Binary files a/entities/furniture/clay/table/table_iconic.qb and b/entities/furniture/clay/table/table_iconic.qb differ diff --git a/entities/furniture/stone/bed/bed.json b/entities/furniture/stone/bed/bed.json new file mode 100644 index 0000000..59a5cea --- /dev/null +++ b/entities/furniture/stone/bed/bed.json @@ -0,0 +1,66 @@ +{ + "type": "entity", + "mixins": "file(bed_ghost.json)", + "components": { + "stonehearth:entity_forms": { + "iconic_form": "file(bed_iconic.json)", + "ghost_form": "file(bed_ghost.json)", + "placeable_on_ground": true + }, + "destination": { + "region": [ + { + "min": { "x": -1, "y": 0, "z": -1 }, + "max": { "x": 2, "y": 1, "z": 2 } + } + ], + "adjacency_flags": [ + "left", + "right" + ] + }, + "region_collision_shape": { + "region": [ + { + "min": { "x": -1, "y": 0, "z": -2 }, + "max": { "x": 2, "y": 1, "z": 2 } + }, + { + "min": { "x": -1, "y": 0, "z": 2 }, + "max": { "x": 2, "y": 2, "z": 3 } + } + ] + }, + "stonehearth:mount": { + "mount_offset": { "x": 0, "y": 1, "z": -0.75 }, + "mounted_model_variant": "sleeping" + }, + "stonehearth:ownable_object": { + "ownership_type": "bed" + } + }, + "entity_data": { + "stonehearth:bed": { + "shelter": { + "contribution_threshold": 30, + "score": 8 + } + }, + "stonehearth:net_worth": { + "value_in_gold": 6, + "rarity": "common", + "shop_info": { + "buyable": true, + "sellable": true, + "shopkeeper_level": 2, + "shopkeeper_type": "caravan" + } + }, + "stonehearth:appeal": { + "appeal": 3 + }, + "stonehearth:item_quality": { + "variable_quality": true + } + } +} \ No newline at end of file diff --git a/entities/furniture/stone/bed/bed.png b/entities/furniture/stone/bed/bed.png new file mode 100644 index 0000000..1835dff Binary files /dev/null and b/entities/furniture/stone/bed/bed.png differ diff --git a/entities/furniture/stone/bed/bed.qb b/entities/furniture/stone/bed/bed.qb new file mode 100644 index 0000000..efb0b07 Binary files /dev/null and b/entities/furniture/stone/bed/bed.qb differ diff --git a/entities/furniture/stone/bed/bed_ghost.json b/entities/furniture/stone/bed/bed_ghost.json new file mode 100644 index 0000000..acdcd21 --- /dev/null +++ b/entities/furniture/stone/bed/bed_ghost.json @@ -0,0 +1,29 @@ +{ + "mixins": "stonehearth:mixins:placed_object", + "type": "entity", + "components": { + "model_variants": { + "default": { + "models": [ + "file(bed.qb)" + ] + } + }, + "render_info": { + "scale": 0.22 + }, + "mob": { + "model_origin": { "x": 0, "y": 0, "z": 0 }, + "region_origin": { "x": 0.5, "y": 0, "z": 0.5 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "display_name": "i18n(swamp_goblins:entities.furniture.stone.bed.display_name)", + "description": "i18n(stonehearth:jobs.mason.recipes.stone_bed_recipe.description)", + "icon": "file(bed.png)", + "category": "furniture", + "material_tags": ["firefly_made", "stone", "bed", "furniture", "crafted", "stockpile_furniture"] + } + } +} \ No newline at end of file diff --git a/entities/furniture/stone/bed/bed_iconic.json b/entities/furniture/stone/bed/bed_iconic.json new file mode 100644 index 0000000..54d6a6a --- /dev/null +++ b/entities/furniture/stone/bed/bed_iconic.json @@ -0,0 +1,22 @@ +{ + "mixins": "stonehearth:mixins:item_properties", + "components": { + "model_variants": { + "default": { + "models": [ + "file(bed_iconic.qb)" + ] + } + }, + "mob": { + "model_origin": { "x": -0.05, "y": 0, "z": 0 }, + "region_origin": { "x": 0.5, "y": 0, "z": 0.5 } + } + }, + "entity_data": { + "stonehearth:catalog": { + "is_item": true, + "category": "furniture" + } + } +} \ No newline at end of file diff --git a/entities/furniture/stone/bed/bed_iconic.qb b/entities/furniture/stone/bed/bed_iconic.qb new file mode 100644 index 0000000..1155e7e Binary files /dev/null and b/entities/furniture/stone/bed/bed_iconic.qb differ diff --git a/entities/monsters/mosquito_cloud/mosquito_cloud.json b/entities/monsters/mosquito_cloud/mosquito_cloud.json deleted file mode 100644 index 98794cc..0000000 --- a/entities/monsters/mosquito_cloud/mosquito_cloud.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "type": "entity", - "mixins": "stonehearth:mixins:monster", - "components": { - "render_info": { - "animation_table": "/swamp_goblins/data/rigs/entities/monster/mosquito_cloud/mosquito_cloud.json" - }, - "effect_list": { - "default": "swamp_goblins:effects:mosquito_cloud" - }, - "stonehearth:attributes": { - "max_health": { - "type": "basic", - "value": 100 - }, - "muscle": { - "type": "basic", - "value": 1 - }, - "menace": { - "type": "basic", - "value": 35 - }, - "courage": { - "type": "basic", - "value": 50 - }, - "speed": { - "type": "basic", - "value": 75 - }, - "exp_reward": { - "type": "basic", - "value": 1 - } - }, - "stonehearth:equipment": { - "items": [ - "stonehearth:monsters:forest:entling:fist_weapon" - ] - } - }, - "entity_data": { - "stonehearth:combat": { - "no_shuffle": true - }, - "stonehearth:buffs": { - "inflictable_debuffs": { - "infection": { - "uri": "stonehearth:buffs:undead_infection", - "chance": 0.5 - } - } - }, - "stonehearth:catalog": { - "display_name": "i18n(swamp_goblins:entities.monsters.mosquito_cloud.display_name)", - "description": "i18n(swamp_goblins:entities.monsters.mosquito_cloud.description)", - "portrait": "/stonehearth/data/weather/foggy/foggy.png" - } - } -} \ No newline at end of file diff --git a/jobs/earthmaster/recipes/furnitures/clay/bed_recipe.json b/jobs/earthmaster/recipes/furnitures/clay/bed_recipe.json index a3a7e65..66cf693 100644 --- a/jobs/earthmaster/recipes/furnitures/clay/bed_recipe.json +++ b/jobs/earthmaster/recipes/furnitures/clay/bed_recipe.json @@ -2,7 +2,7 @@ "type": "recipe", "effort": 40, "work_units": 3, - "recipe_name": "i18n(stonehearth:jobs.potter.recipes.clay_bed_recipe.recipe_name)", + "recipe_name": "i18n(swamp_goblins:entities.furniture.clay.bed.display_name)", "description": "i18n(stonehearth:jobs.mason.recipes.stone_bed_recipe.description)", "flavor": "i18n(stonehearth:jobs.potter.recipes.clay_bed_recipe.flavor)", "portrait": "/swamp_goblins/entities/furniture/clay/bed/bed.png", diff --git a/jobs/earthmaster/recipes/furnitures/clay/chair_recipe.json b/jobs/earthmaster/recipes/furnitures/clay/chair_recipe.json index db6c318..3f84407 100644 --- a/jobs/earthmaster/recipes/furnitures/clay/chair_recipe.json +++ b/jobs/earthmaster/recipes/furnitures/clay/chair_recipe.json @@ -2,7 +2,7 @@ "type": "recipe", "effort": 44, "work_units": 5, - "recipe_name": "i18n(stonehearth:jobs.potter.recipes.simple_clay_chair_recipe.recipe_name)", + "recipe_name": "i18n(swamp_goblins:entities.furniture.clay.chair.display_name)", "description": "i18n(stonehearth:jobs.potter.recipes.simple_clay_chair_recipe.description)", "flavor": "i18n(stonehearth:jobs.potter.recipes.simple_clay_chair_recipe.flavor)", "portrait": "/swamp_goblins/entities/furniture/clay/chair/chair.png", diff --git a/jobs/earthmaster/recipes/furnitures/clay/table_recipe.json b/jobs/earthmaster/recipes/furnitures/clay/table_recipe.json index 4eb49c7..11aefc3 100644 --- a/jobs/earthmaster/recipes/furnitures/clay/table_recipe.json +++ b/jobs/earthmaster/recipes/furnitures/clay/table_recipe.json @@ -3,8 +3,8 @@ "effort": 40, "work_units": 5, "recipe_name": "i18n(swamp_goblins:entities.furniture.clay.table.display_name)", - "description": "i18n(swamp_goblins:entities.furniture.clay.table.description)", - "flavor": "i18n(swamp_goblins:entities.furniture.clay.table.flavor)", + "description": "i18n(stonehearth:entities.furniture.clay_dining_table.clay_dining_table_ghost.description)", + "flavor": "i18n(stonehearth:jobs.potter.recipes.clay_dining_table_recipe.flavor)", "portrait": "/swamp_goblins/entities/furniture/clay/table/table.png", "workshop": "swamp_goblins:earthmaster:potter_workbench", "level_requirement": 2, diff --git a/jobs/earthmaster/recipes/furnitures/stone/bed_recipe.json b/jobs/earthmaster/recipes/furnitures/stone/bed_recipe.json new file mode 100644 index 0000000..ae598bd --- /dev/null +++ b/jobs/earthmaster/recipes/furnitures/stone/bed_recipe.json @@ -0,0 +1,22 @@ +{ + "type": "recipe", + "effort": 33, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.furniture.stone.bed.display_name)", + "description": "i18n(stonehearth:jobs.mason.recipes.stone_bed_recipe.description)", + "flavor": "", + "portrait": "/swamp_goblins/entities/furniture/stone/bed/bed.png", + "workshop": "swamp_goblins:earthmaster:workbench", + "level_requirement": 1, + "ingredients": [ + { + "material": "stone resource", + "count": 2 + } + ], + "produces": [ + { + "item": "swamp_goblins:furniture:stone:bed" + } + ] +} \ No newline at end of file diff --git a/jobs/earthmaster/recipes/recipes.json b/jobs/earthmaster/recipes/recipes.json index 50aa6af..1307678 100644 --- a/jobs/earthmaster/recipes/recipes.json +++ b/jobs/earthmaster/recipes/recipes.json @@ -115,6 +115,9 @@ "ordinal": 40, "name": "i18n(stonehearth:jobs.carpenter.recipes.furniture_name)", "recipes":{ + "stone_bed": { + "recipe": "file(furnitures/stone/bed_recipe.json)" + }, "stone_chair": { "recipe": "file(furnitures/stone/chair_recipe.json)" }, diff --git a/jobs/shaman/recipes/baby_care/blanket2_recipe.json b/jobs/shaman/recipes/baby_care/blanket2_recipe.json new file mode 100644 index 0000000..aa5c03f --- /dev/null +++ b/jobs/shaman/recipes/baby_care/blanket2_recipe.json @@ -0,0 +1,35 @@ +{ + "type": "recipe", + "effort": 66, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.baby.blanket2.display_name)", + "description": "i18n(swamp_goblins:entities.baby.blanket2.description)", + "flavor": "i18n(swamp_goblins:entities.baby.blanket2.flavor)", + "portrait": "/swamp_goblins/entities/baby/blanket2/blanket2.png", + "workshop": "swamp_goblins:shaman:workbench", + "work_effect": "fiddle", + "level_requirement": 6, + "ingredients": [ + { + "uri": "swamp_goblins:resources:firefly_essense", + "count": 1 + }, + { + "uri": "swamp_goblins:consumables:potions:spirit", + "count": 1 + }, + { + "material": "herb resource", + "count": 1 + }, + { + "material": "fiber resource", + "count": 1 + } + ], + "produces": [ + { + "item": "swamp_goblins:baby:blanket2" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/baby_care/blanket_recipe.json b/jobs/shaman/recipes/baby_care/blanket_recipe.json new file mode 100644 index 0000000..19a6298 --- /dev/null +++ b/jobs/shaman/recipes/baby_care/blanket_recipe.json @@ -0,0 +1,27 @@ +{ + "type": "recipe", + "effort": 33, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.baby.blanket.display_name)", + "description": "i18n(swamp_goblins:entities.baby.blanket.description)", + "flavor": "i18n(swamp_goblins:entities.baby.blanket.flavor)", + "portrait": "/swamp_goblins/entities/baby/blanket/blanket.png", + "workshop": "swamp_goblins:shaman:workbench", + "work_effect": "fiddle", + "level_requirement": 3, + "ingredients": [ + { + "uri": "swamp_goblins:resources:firefly_essense", + "count": 1 + }, + { + "material": "fiber resource", + "count": 1 + } + ], + "produces": [ + { + "item": "swamp_goblins:baby:blanket" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/baby_care/bottle2_recipe.json b/jobs/shaman/recipes/baby_care/bottle2_recipe.json new file mode 100644 index 0000000..bac3876 --- /dev/null +++ b/jobs/shaman/recipes/baby_care/bottle2_recipe.json @@ -0,0 +1,35 @@ +{ + "type": "recipe", + "effort": 66, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.baby.bottle2.display_name)", + "description": "i18n(swamp_goblins:entities.baby.bottle2.description)", + "flavor": "i18n(swamp_goblins:entities.baby.bottle2.flavor)", + "portrait": "/swamp_goblins/entities/baby/bottle2/bottle2.png", + "workshop": "swamp_goblins:shaman:workbench", + "work_effect": "fiddle", + "level_requirement": 6, + "ingredients": [ + { + "uri": "swamp_goblins:resources:firefly_essense", + "count": 1 + }, + { + "uri": "swamp_goblins:consumables:potions:body", + "count": 1 + }, + { + "material": "chitin resource", + "count": 1 + }, + { + "uri": "swamp_goblins:food:mushroom", + "count": 1 + } + ], + "produces": [ + { + "item": "swamp_goblins:baby:bottle2" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/baby_care/bottle_recipe.json b/jobs/shaman/recipes/baby_care/bottle_recipe.json new file mode 100644 index 0000000..10bc2fc --- /dev/null +++ b/jobs/shaman/recipes/baby_care/bottle_recipe.json @@ -0,0 +1,27 @@ +{ + "type": "recipe", + "effort": 33, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.baby.bottle.display_name)", + "description": "i18n(swamp_goblins:entities.baby.bottle.description)", + "flavor": "i18n(swamp_goblins:entities.baby.bottle.flavor)", + "portrait": "/swamp_goblins/entities/baby/bottle/bottle.png", + "workshop": "swamp_goblins:shaman:workbench", + "work_effect": "fiddle", + "level_requirement": 3, + "ingredients": [ + { + "uri": "swamp_goblins:resources:firefly_essense", + "count": 1 + }, + { + "uri": "swamp_goblins:food:mushroom", + "count": 1 + } + ], + "produces": [ + { + "item": "swamp_goblins:baby:bottle" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/workbenches/egg_pedestal_recipe.json b/jobs/shaman/recipes/baby_care/egg_pedestal_recipe.json similarity index 100% rename from jobs/shaman/recipes/workbenches/egg_pedestal_recipe.json rename to jobs/shaman/recipes/baby_care/egg_pedestal_recipe.json diff --git a/jobs/shaman/recipes/baby_care/toy2_recipe.json b/jobs/shaman/recipes/baby_care/toy2_recipe.json new file mode 100644 index 0000000..e423347 --- /dev/null +++ b/jobs/shaman/recipes/baby_care/toy2_recipe.json @@ -0,0 +1,35 @@ +{ + "type": "recipe", + "effort": 66, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.baby.toy2.display_name)", + "description": "i18n(swamp_goblins:entities.baby.toy2.description)", + "flavor": "i18n(swamp_goblins:entities.baby.toy2.flavor)", + "portrait": "/swamp_goblins/entities/baby/toy2/toy2.png", + "workshop": "swamp_goblins:shaman:workbench", + "work_effect": "fiddle", + "level_requirement": 6, + "ingredients": [ + { + "uri": "swamp_goblins:resources:firefly_essense", + "count": 1 + }, + { + "uri": "swamp_goblins:consumables:potions:mind", + "count": 1 + }, + { + "material": "wood resource", + "count": 1 + }, + { + "material": "fiber resource", + "count": 1 + } + ], + "produces": [ + { + "item": "swamp_goblins:baby:toy2" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/baby_care/toy_recipe.json b/jobs/shaman/recipes/baby_care/toy_recipe.json new file mode 100644 index 0000000..1b6d3af --- /dev/null +++ b/jobs/shaman/recipes/baby_care/toy_recipe.json @@ -0,0 +1,27 @@ +{ + "type": "recipe", + "effort": 33, + "work_units": 5, + "recipe_name": "i18n(swamp_goblins:entities.baby.toy.display_name)", + "description": "i18n(swamp_goblins:entities.baby.toy.description)", + "flavor": "i18n(swamp_goblins:entities.baby.toy.flavor)", + "portrait": "/swamp_goblins/entities/baby/toy/toy.png", + "workshop": "swamp_goblins:shaman:workbench", + "work_effect": "fiddle", + "level_requirement": 3, + "ingredients": [ + { + "uri": "swamp_goblins:resources:firefly_essense", + "count": 1 + }, + { + "material": "fiber resource", + "count": 1 + } + ], + "produces": [ + { + "item": "swamp_goblins:baby:toy" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/deprecated.json b/jobs/shaman/recipes/deprecated.json new file mode 100644 index 0000000..3be2902 --- /dev/null +++ b/jobs/shaman/recipes/deprecated.json @@ -0,0 +1,22 @@ +{ + "type": "recipe", + "effort": 1, + "work_units": 1, + "recipe_name": "i18n(swamp_goblins:deprecated)", + "description": "i18n(swamp_goblins:deprecated)", + "flavor": "i18n(swamp_goblins:deprecated)", + "portrait": "/swamp_goblins/ui/game/show_workshop/mod_icon.png", + "work_effect": "work", + "manual_unlock": true, + "ingredients": [ + { + "material": "wood resource", + "count": 1 + } + ], + "produces": [ + { + "item": "stonehearth:object:transient" + } + ] +} \ No newline at end of file diff --git a/jobs/shaman/recipes/recipes.json b/jobs/shaman/recipes/recipes.json index 0235a1e..5d53333 100644 --- a/jobs/shaman/recipes/recipes.json +++ b/jobs/shaman/recipes/recipes.json @@ -25,7 +25,7 @@ "recipe": "file(workbenches/firefly_token_recipe.json)" }, "egg_pedestal": { - "recipe": "file(workbenches/egg_pedestal_recipe.json)" + "recipe": "file(deprecated.json)" }, "goblinpedia": { "recipe": "file(workbenches/goblinpedia_recipe.json)" @@ -71,6 +71,33 @@ } } }, + "baby_care": { + "ordinal": 25, + "name": "i18n(swamp_goblins:jobs.shaman.recipes.baby_care)", + "recipes": { + "egg_pedestal": { + "recipe": "file(baby_care/egg_pedestal_recipe.json)" + }, + "bottle": { + "recipe": "file(baby_care/bottle_recipe.json)" + }, + "bottle2": { + "recipe": "file(baby_care/bottle2_recipe.json)" + }, + "blanket": { + "recipe": "file(baby_care/blanket_recipe.json)" + }, + "blanket2": { + "recipe": "file(baby_care/blanket2_recipe.json)" + }, + "toy": { + "recipe": "file(baby_care/toy_recipe.json)" + }, + "toy2": { + "recipe": "file(baby_care/toy2_recipe.json)" + } + } + }, "goblin_potions": { "ordinal": 30, "name": "i18n(swamp_goblins:jobs.shaman.recipes.potions)", diff --git a/locales/en.json b/locales/en.json index 0b3d52b..1d56649 100644 --- a/locales/en.json +++ b/locales/en.json @@ -1,5 +1,6 @@ { "wip":"Work in Progress", + "deprecated":"Deprecated", "ai": { "actions": { "status_text": { @@ -665,7 +666,6 @@ "purple_tier_end_dialog":{ "message":"Us.. too weak.. Put out xxx Gong if you dares.." } - } } } @@ -684,6 +684,22 @@ }, "happiness": { "thoughts": { + "baby":{ + "values": { + "mind_booster": { + "display_name": "Mind Bonus", + "tooltip": "Mind attribute boosted from Baby Toy" + }, + "body_booster": { + "display_name": "Body Bonus", + "tooltip": "Body attribute boosted from Baby Bottle" + }, + "spirit_booster": { + "display_name": "Spirit Bonus", + "tooltip": "Spirit attribute boosted from Baby Blanket" + } + } + }, "social":{ "values": { "happy_potion": { @@ -839,6 +855,38 @@ "description": "Scary and smelly" } }, + "baby":{ + "blanket": { + "display_name": "Baby Blanket", + "description": "To help with a better sleep", + "flavor":"The baby will require less time sleeping" + }, + "blanket2": { + "display_name": "Baby Comfy Blanket", + "description": "Super comfy, can't leave", + "flavor":"The baby will require less time sleeping and can grow with higher spirit stat" + }, + "bottle": { + "display_name": "Baby Bottle", + "description": "Complementing the diet", + "flavor":"The baby will require less food" + }, + "bottle2": { + "display_name": "Baby Healthy Bottle", + "description": "Super healthy, to grow strong", + "flavor":"The baby will require less food and can grow with higher body stat" + }, + "toy": { + "display_name": "Baby Toy", + "description": "A world of fantasy in our hands", + "flavor":"The baby will require less conversations and move faster" + }, + "toy2": { + "display_name": "Baby Advanced Toy", + "description": "Fancy doll, accessories not included", + "flavor":"The baby will require less conversations, move faster and can grow with higher mind stat" + } + }, "construction": { "brick_fence": { "display_name": "Brick Fence", @@ -974,6 +1022,10 @@ "display_name": "Cattail seeds", "description": "Learn to grow cattail plants." }, + "giple": { + "display_name": "Giple seeds", + "description": "Learn to grow giple plants." + }, "mangrove_halfsize": { "display_name": "Mangrove seeds", "description": "Learn to grow mangrove trees." @@ -1009,6 +1061,11 @@ } }, "critters": { + "dragonfly": { + "species": "dragonfly", + "display_name": "Dragonfly", + "description": "Flying insect" + }, "frog": { "species": "frog", "display_name": "Frog", @@ -1334,10 +1391,14 @@ }, "furniture": { "clay": { + "bed": { + "display_name": "(Firefly) Clay Bed" + }, + "chair": { + "display_name": "(Firefly) Clay Chair" + }, "table": { - "display_name": "Checkers Table", - "description": "A table with a checkerboard", - "flavor": "No, you already played with the green pieces last time, it is my turn now" + "display_name": "(Firefly) Clay Table" } }, "mushroom": { @@ -1351,6 +1412,9 @@ } }, "stone": { + "bed": { + "display_name": "(Firefly) Stone Bed" + }, "chair": { "display_name": "(Firefly) Stone Chair" }, @@ -1972,6 +2036,7 @@ "flavor": "\"Goblin or the egg?\"" }, "recipes": { + "baby_care": "Baby Care", "potions": "Potions", "talismans": "Talismans" } diff --git a/locales/pt-BR.json b/locales/pt-BR.json index 6007a60..144c02c 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -1,5 +1,6 @@ { "wip": "Não Finalizado", + "deprecated":"Descontinuado", "ai": { "actions": { "status_text": { @@ -683,6 +684,22 @@ }, "happiness": { "thoughts": { + "baby":{ + "values": { + "mind_booster": { + "display_name": "Bônus de Mente", + "tooltip": "Atributo da mente impulsionado pelo Brinquedo de Bebê" + }, + "body_booster": { + "display_name": "Bônus de Corpo", + "tooltip": "Atributo do corpo impulsionado pela Mamadeira de Bebê" + }, + "spirit_booster": { + "display_name": "Bônus de Espírito", + "tooltip": "Atributo do espírito impulsionado pelo Cobertor de Bebê" + } + } + }, "social": { "values": { "happy_potion": { @@ -838,6 +855,38 @@ "description": "Assustador e fedido" } }, + "baby":{ + "blanket": { + "display_name": "Cobertor de bebê", + "description": "Para ajudar a dormir melhor", + "flavor":"O bebê vai precisar de menos tempo para dormir" + }, + "blanket2": { + "display_name": "Cobertor de bebê confortável", + "description": "Super confortável, não pode sair", + "flavor":"O bebê vai precisar de menos tempo para dormir e pode crescer com um status de espírito mais alto" + }, + "bottle": { + "display_name": "Mamadeira", + "description": "Complementando a dieta", + "flavor":"O bebê vai precisar de menos comida" + }, + "bottle2": { + "display_name": "Mamadeira Saudável para Bebês", + "description": "Super saudável, para crescer forte", + "flavor":"O bebê vai precisar de menos comida e pode crescer com maior status corporal" + }, + "toy": { + "display_name": "Brinquedo de bebê", + "description": "Um mundo de fantasia em nossas mãos", + "flavor":"O bebê vai precisar de menos conversas" + }, + "toy2": { + "display_name": "Brinquedo Avançado para Bebês", + "description": "Boneca extravagante, acessórios não incluídos", + "flavor":"O bebê vai precisar de menos conversas e pode crescer com um status mental mais alto" + } + }, "construction": { "brick_fence": { "display_name": "Cerca de Pedra", @@ -973,6 +1022,10 @@ "display_name": "Sementes de Taboa", "description": "Aprenda a cultivar Taboa." }, + "giple": { + "display_name": "Sementes de Flor Giple", + "description": "Aprenda a cultivar Giple." + }, "mangrove_halfsize": { "display_name": "Sementes do mangue", "description": "Aprenda a cultivar mangue." @@ -1008,6 +1061,11 @@ } }, "critters": { + "dragonfly": { + "species": "libélula", + "display_name": "Libélula", + "description": "Inseto voador" + }, "frog": { "species": "sapo", "display_name": "Sapo", @@ -1333,10 +1391,14 @@ }, "furniture": { "clay": { + "bed": { + "display_name": "(Vaga-lume) Cama de Argila" + }, + "chair": { + "display_name": "(Vaga-lume) Cadeira de Argila" + }, "table": { - "display_name": "Mesa de Damas", - "description": "Uma mesa com um tabuleiro", - "flavor": "Não, você já jogou com as peças verdes da última vez, agora é a minha vez" + "display_name": "(Vaga-lume) Mesa de Argila" } }, "mushroom": { @@ -1350,6 +1412,9 @@ } }, "stone": { + "bed": { + "display_name": "(Vaga-lume) Cama de Pedra" + }, "chair": { "display_name": "(Vaga-lume) Cadeira de Pedra" }, @@ -1967,6 +2032,7 @@ "flavor": "\"Ovo ou Goblin?\"" }, "recipes": { + "baby_care": "Cuidados de Bebê", "potions": "Poções", "talismans": "Talismãs" } diff --git a/manifest.json b/manifest.json index 3842a9c..3fd2a70 100644 --- a/manifest.json +++ b/manifest.json @@ -65,6 +65,13 @@ "armor:ruler_outfit":"file(jobs/ruler/outfit)", + "baby:bottle": "file(entities/baby/bottle)", + "baby:bottle2": "file(entities/baby/bottle2)", + "baby:blanket": "file(entities/baby/blanket)", + "baby:blanket2":"file(entities/baby/blanket2)", + "baby:toy": "file(entities/baby/toy)", + "baby:toy2": "file(entities/baby/toy2)", + "beast_tamer:claw": "file(jobs/beast_tamer/beast_tamer_claw)", "beast_tamer:talisman": "file(jobs/beast_tamer/beast_tamer_flute)", "beast_tamer:abilities:summon_poyos": "file(jobs/beast_tamer/beast_tamer_abilities/summon_poyos.json)", @@ -107,6 +114,10 @@ "buffs:trapped": "file(data/buffs/trapped)", "buffs:wounds:resist": "file(data/buffs/wounds/resist.json)", + "buffs:baby:blanket": "file(data/buffs/baby/blanket.json)", + "buffs:baby:bottle": "file(data/buffs/baby/bottle.json)", + "buffs:baby:toy": "file(data/buffs/baby/toy.json)", + "buffs:potions:body": "file(data/buffs/potions/body)", "buffs:potions:mind": "file(data/buffs/potions/mind)", "buffs:potions:spirit": "file(data/buffs/potions/spirit)", @@ -178,6 +189,7 @@ "consumables:scripts:teleport": "file(entities/consumables/scripts/teleport.lua)", "consumables:seeds:cattail": "file(entities/consumables/seeds/cattail)", + "consumables:seeds:giple": "file(entities/consumables/seeds/giple)", "consumables:seeds:mangrove_halfsize": "file(entities/consumables/seeds/mangrove_halfsize)", "consumables:seeds:swamp_mushroom": "file(entities/consumables/seeds/swamp_mushroom)", @@ -196,13 +208,15 @@ "color_map:goblin":"file(data/materials/color_maps/goblin_color_map.json)", "color_map:magic":"file(data/materials/color_maps/magic.json)", - "critters:firefly": "file(entities/critters/firefly)", - "critters:frog": "file(entities/critters/frog)", + "critters:dragonfly": "file(entities/critters/dragonfly)", + "critters:firefly": "file(entities/critters/firefly)", + "critters:frog": "file(entities/critters/frog)", "crops:cattail_crop": "file(entities/crops/cattail_crop)", "crops:mushroom_crop": "file(entities/crops/mushroom_crop)", "crops:mangrove_crop": "file(entities/crops/mangrove_halfsize_crop)", "crops:violet_crop": "file(entities/crops/violet_crop)", + "crops:giple_crop": "file(entities/crops/giple_crop)", "data:gm_index": "file(data/gm/gm_index.json)", @@ -294,7 +308,6 @@ "effects:music:bongo_5": "file(data/effects/music/bongo_5.json)", "effects:music:xylophone_1":"file(data/effects/music/xylophone_1.json)", "effects:music:xylophone_4":"file(data/effects/music/xylophone_4.json)", - "effects:mosquito_cloud":"file(data/effects/mosquito_cloud)", "effects:shaman_workbench_effect":"file(data/effects/shaman_workbench_effect)", "effects:upgraded_staff":"file(data/effects/spirit_walker/upgraded_staff.json)", "effects:spirit:armor": "file(data/effects/spirit/armor.json)", @@ -332,6 +345,7 @@ "furniture:clay:table": "file(entities/furniture/clay/table)", "furniture:mushroom:chair": "file(entities/furniture/mushroom/chair)", "furniture:mushroom:table": "file(entities/furniture/mushroom/table)", + "furniture:stone:bed": "file(entities/furniture/stone/bed)", "furniture:stone:bench": "file(entities/furniture/stone/bench)", "furniture:stone:chair": "file(entities/furniture/stone/chair)", "furniture:stone:table": "file(entities/furniture/stone/table)", @@ -405,7 +419,6 @@ "monsters:doodles_giant_egg_raider":"file(entities/monsters/doodles_egg_raider/giant.json)", "monsters:golems:firefly_golem": "file(entities/monsters/golems/firefly_golem)", "monsters:golems:firefly_golem:effect": "file(entities/monsters/golems/firefly_golem/effect.json)", - "monsters:mosquito_cloud": "file(entities/monsters/mosquito_cloud)", "monsters:swamp_zilla": "file(entities/monsters/swamp_zilla)", "monsters:varanus": "file(entities/monsters/varanus_nest/varanus.json)", "monsters:varanus_nest": "file(entities/monsters/varanus_nest)", diff --git a/scenarios/scenario_index.json b/scenarios/scenario_index.json index 523f142..131af50 100644 --- a/scenarios/scenario_index.json +++ b/scenarios/scenario_index.json @@ -1,6 +1,7 @@ { "static" : { "scenarios" : [ + "file(static/dragonfly_nest)", "file(static/frog_nest)", "file(static/landmarks/16x_rabbit_statue.json)", diff --git a/scenarios/static/dragonfly_nest/dragonfly_nest.json b/scenarios/static/dragonfly_nest/dragonfly_nest.json new file mode 100644 index 0000000..f703e27 --- /dev/null +++ b/scenarios/static/dragonfly_nest/dragonfly_nest.json @@ -0,0 +1,22 @@ +{ + "name" : "dragonfly_nest", + "category" : "wildlife", + "habitat_types" : ["water"], + "biomes": ["swamp_goblins:biome:swamp"], + "size" : { + "width" : 16, + "length" : 16 + }, + "weight" : 20, + "unique" : false, + "script" : "stonehearth/scenarios/static/critter_nest/critter_nest.lua", + + "data" : { + "critter_length" : 1, + "num_critters" : { + "min" : 3, + "max" : 5 + }, + "critter_type" : [ "swamp_goblins:critters:dragonfly" ] + } +} \ No newline at end of file diff --git a/services/server/farming/data/all_crops.json b/services/server/farming/data/all_crops.json index c16b606..9d1ca96 100644 --- a/services/server/farming/data/all_crops.json +++ b/services/server/farming/data/all_crops.json @@ -16,8 +16,8 @@ "farm": true } }, - "violet": { - "crop_type": "swamp_goblins:crops:violet_crop", + "giple": { + "crop_type": "swamp_goblins:crops:giple_crop", "ordinal": 9.5, "level_requirement": 3, "field_types": { diff --git a/services/server/farming/data/initial_crops.json b/services/server/farming/data/initial_crops.json index 252a332..9fa46d5 100644 --- a/services/server/farming/data/initial_crops.json +++ b/services/server/farming/data/initial_crops.json @@ -6,7 +6,7 @@ "swamp_mushroom": true, "sweet_potato": true, "cattail": true, - "violet": true, + "giple": true, "corn": true, "wheat": true, "oak_tree": true, diff --git a/swamp_goblins_server.lua b/swamp_goblins_server.lua index 002cd10..4b6a71b 100644 --- a/swamp_goblins_server.lua +++ b/swamp_goblins_server.lua @@ -1,5 +1,5 @@ swamp_goblins = {} -print("Swamp Goblins Mod version 22.9.6") +print("Swamp Goblins Mod version 22.9.23") --[[ @@ -10,19 +10,10 @@ Giant rug, or wall hanging rug. Varanus roasting on a stick armors/equips for beasttamer summons -Babies boosters: - toy: - better social - lvl2 increase mind - baby bottle: - decrease food consumption - lvl2 increase body - blanket: - decrease sleep time - lvl2 increase spirit - -high bed +bed: + high/fancy bed bed of hot embers (firewalking) + magmasword texture/effects drying rack remove stick water debuff with some item or trait @@ -95,7 +86,9 @@ mobs: cube roll walking, particle effect trail size inflation for attack squish up/down idle - mosquito + +green tooth: + farmer+shepherd? party goblin: different tattoo color? @@ -137,7 +130,6 @@ equipments: ranged attack for beast tamer, bow? redo: hourglass effects - checkers table travel stall fisher: swamp fish colors, eels, blowfish diff --git a/update_log.txt b/update_log.txt index 25e0b26..a9ba721 100644 --- a/update_log.txt +++ b/update_log.txt @@ -1,22 +1,16 @@ Additions: -Crusher. Earthshaper (and Engineer) workstation that breaks items put on it back into raw resources. -Wall fountains. Stone and clay versions. -Earthshaper Upgraded Outfit. -Farmer Seed boxes for swamp crops (cattail, mushroom and mangrove), at traders. -Clay Safety Standard, same as the wooden and stone versions +Simple baby boosters: Toy, Baby Bottle and Blanket. Helps with the growth requirements (for social, food and sleep scores), making it easier and faster. +Advanced Toy, Baby Bottle and Blanket. Same as before, but each will also boost one of the stats (mind, body and spirit) when they grow. +Stone beds. +Dragonfly ambient mobs spawning in the swamp (like frogs) +Farmer Seed box for giple flowers, at traders. Changes: -Buffed the mind/body/spirit potions, from +1 to +2 temporary stat boost -Raised priority on Weather Stones to avoid A.I. switching tasks middleway -Prefixed with "(Firefly)" chairs and tables names to avoid duplicate names with vanilla - -Changes for ACE: - +Redesign of clay chair, clay table and clay bed +Babies growth requirements increased, i.e. a little slower to grow. +But if using the baby items, their growth is actually faster and easier. +Talking with babies grants extra happiness (positive thought) +After growing, goblins gains thought happiness based on how much its stats were boosted by their baby items Fixes: -Hitbox of brewing stand. May push it out of near wall once you load the first time. -Weather Stone could get stuck after save reload. -Upgraded worker outfits disappearing on reload - -Fixes for ACE: -Cattail fiber was being used as thatch for building and blocking them from completing \ No newline at end of file +Loadout item missing text \ No newline at end of file