第352页:经营动物园
展开三零二.经营动物园(用黄油种动物园,买卖、繁殖小动物,赚门票钱)
用记事本打开游戏目录\data\scripts\prefabs\butter.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local slotpos = { Vector3(0,-100,0)}
local function itemtest(inst, item, slot)
if item.prefab == "carrot" then
return true
end
return false
end
local widgetbuttoninfo = {
text = "Sell",
position = Vector3(0, -30, 0),
fn = function(inst)
local target = FindEntity(inst, 9, function(guy)
return guy:HasTag("zoobaby")
end )
if target then
for k = 1,20 do
local pt5 = target:GetPosition()
SpawnPrefab("goldnugget").Transform:SetPosition(pt5.x, 0, pt5.z)
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
target:Remove()
end
end
end }
local function OnDeploy (inst, pt)
local brand = SpawnPrefab("butter")
brand.Transform:SetPosition(pt.x, pt.y, pt.z)
brand.AnimState:SetBank("sign_home")
brand.AnimState:SetBuild("sign_home")
brand.AnimState:PlayAnimation("idle")
brand.Transform:SetScale(0.8, 0.8, 0.8)
brand.AnimState:SetMultColour(0/255,255/255,0/255,1)
brand:RemoveComponent("stackable")
brand:RemoveComponent("inventoryitem")
brand:RemoveComponent("edible")
brand:RemoveComponent("perishable")
brand:RemoveComponent("deployable")
brand:RemoveComponent("container")
brand:AddTag("brand")
local slotpos1 = { Vector3(0,-75,0)}
brand:AddComponent("container")
brand.components.container:SetNumSlots(#slotpos1)
brand.components.container.widgetslotpos = slotpos1
brand.components.container.widgetpos = Vector3(0,180,0)
brand.components.container.side_align_tip = 160
brand.components.container.acceptsstacks = false
brand.components.container.itemtestfn = function(brand, item, slot)
if item.prefab == "charcoal" or item.prefab == "trunk_summer" or item.prefab == "trunk_winter" or item.prefab == "walrus_tusk" or item.prefab == "cave_banana" then
return true
end
return false
end
brand.components.container.widgetbuttoninfo = {
text = "Buy",
position = Vector3(0, -145, 0),
fn = function(brand)
if GetPlayer().components.inventory:Has("goldnugget", 30) then
if brand.components.container:Has("charcoal", 1) then
brand.components.container:ConsumeByName("charcoal", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = brand:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("krampus")
zoobaby.AnimState:SetBuild("krampus_build")
zoobaby.AnimState:PlayAnimation("idle", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.AnimState:Hide("SACK")
zoobaby.AnimState:Show("ARM")
zoobaby.Transform:SetScale(0.7,0.7,0.7)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkrampus")
zoobaby:AddTag("zoobaby1")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if brand.components.container:Has("trunk_summer", 1) then
brand.components.container:ConsumeByName("trunk_summer", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = brand:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_summer_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby2")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if brand.components.container:Has("trunk_winter", 1) then
brand.components.container:ConsumeByName("trunk_winter", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = brand:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_winter_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby3")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if brand.components.container:Has("walrus_tusk", 1) then
brand.components.container:ConsumeByName("walrus_tusk", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = brand:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("walrus")
zoobaby.AnimState:SetBuild("walrus_baby_build")
zoobaby.AnimState:PlayAnimation("idle_happy")
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.8,0.8,0.8)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGwalrus")
zoobaby:AddTag("zoobaby4")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if brand.components.container:Has("cave_banana", 1) then
brand.components.container:ConsumeByName("cave_banana", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = brand:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("kiki")
zoobaby.AnimState:SetBuild("kiki_basic")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.soundtype = ""
zoobaby.Transform:SetScale(1.2,1.2,1.2)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGmonkey")
zoobaby:AddTag("zoobaby5")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
end
end }
local zooroom = SpawnPrefab("butter")
zooroom.Transform:SetPosition(pt.x-7, 0, pt.z-7)
zooroom.AnimState:SetBank("rabbithouse")
zooroom.AnimState:SetBuild("rabbit_house")
zooroom.AnimState:PlayAnimation("idle", true)
zooroom.Transform:SetScale(0.4, 0.4, 0.4)
zooroom:RemoveComponent("stackable")
zooroom:RemoveComponent("inventoryitem")
zooroom:RemoveComponent("edible")
zooroom:RemoveComponent("perishable")
zooroom:RemoveComponent("deployable")
zooroom.components.container.canbeopened = true
zooroom.entity:AddLight()
zooroom.Light:SetFalloff(1)
zooroom.Light:SetIntensity(.8)
zooroom.Light:SetRadius(15)
zooroom.Light:SetColour(180/255, 195/255, 50/255)
zooroom.Light:Enable(true)
zooroom:AddTag("zooroom")
zooroom:DoPeriodicTask(180, function(zooroom)
local target = FindEntity(zooroom, 9, function(guy)
return guy:HasTag("zoobaby")
end )
if target then
local target1 = FindEntity(zooroom, 9, function(guy)
return guy.prefab == "poop"
end )
if not target1 then
for k = 1,math.random(5,10) do
local pt2 = zooroom:GetPosition()
SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5)
end
else
for k = 1,math.random(1,3) do
local pt2 = zooroom:GetPosition()
SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5)
end
end
if zooroom.components.container:Has("carrot", 3) then
zooroom.components.container:ConsumeByName("carrot", 3)
if math.random()<0.1 then
if target:HasTag("zoobaby1") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("krampus")
zoobaby.AnimState:SetBuild("krampus_build")
zoobaby.AnimState:PlayAnimation("idle", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.AnimState:Hide("SACK")
zoobaby.AnimState:Show("ARM")
zoobaby.Transform:SetScale(0.7,0.7,0.7)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkrampus")
zoobaby:AddTag("zoobaby1")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby2") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_summer_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby2")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby3") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_winter_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby3")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby4") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("walrus")
zoobaby.AnimState:SetBuild("walrus_baby_build")
zoobaby.AnimState:PlayAnimation("idle_happy")
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.8,0.8,0.8)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGwalrus")
zoobaby:AddTag("zoobaby4")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby5") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("kiki")
zoobaby.AnimState:SetBuild("kiki_basic")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.soundtype = ""
zoobaby.Transform:SetScale(1.2,1.2,1.2)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGmonkey")
zoobaby:AddTag("zoobaby5")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
end
else
target.components.health:Kill()
end
end
end )
zooroom:AddComponent("workable")
zooroom.components.workable:SetWorkAction(ACTIONS.HAMMER)
zooroom.components.workable:SetWorkLeft(3)
zooroom.components.workable:SetOnFinishCallback(function(zooroom)
local pos = Vector3(zooroom.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10)
for k,v in pairs(ents) do
if v:HasTag("zoofence") or v:HasTag("brand") then
SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
v:Remove()
end
end
zooroom:Remove()
end )
local pt0 = Vector3(zooroom.Transform:GetWorldPosition())
for k = 1, 40 do
local result_offset = FindValidPositionByFan(1 * 2 * PI, 8, 40, function(offset)
local x,y,z = (pt0 + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local zoofence = SpawnPrefab("butter")
zoofence.AnimState:SetBank("wall")
zoofence.AnimState:SetBuild("wall_wood")
zoofence.AnimState:PlayAnimation("1_2", false)
MakeObstaclePhysics(zoofence, .5)
zoofence:RemoveComponent("stackable")
zoofence:RemoveComponent("inventoryitem")
zoofence:RemoveComponent("edible")
zoofence:RemoveComponent("perishable")
zoofence:RemoveComponent("deployable")
zoofence:RemoveComponent("container")
zoofence:AddTag("zoofence")
zoofence.Transform:SetPosition((pt0 + result_offset):Get())
zoofence.components.inspectable.getstatus = function(zoofence)
zoofence.Transform:SetScale(1, 0.1, 1)
zoofence.Physics:SetActive(false)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
zoofence:DoTaskInTime(5, function(zoofence)
zoofence.Transform:SetScale(1, 1, 1)
zoofence.Physics:SetActive(true)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
end )
end
end
end
inst.components.stackable:Get():Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
inst:AddComponent("container")
inst.components.container:SetNumSlots(#slotpos)
inst.components.container.widgetslotpos = slotpos
inst.components.container.widgetpos = Vector3(0,180,0)
inst.components.container.side_align_tip = 160
inst.components.container.itemtestfn = itemtest
inst.components.container.canbeopened = false
inst.components.container.widgetbuttoninfo = widgetbuttoninfo
local function onsave(inst, data)
if inst:HasTag("brand") then
data.brand = true
end
if inst:HasTag("zooroom") then
data.zooroom = true
end
if inst:HasTag("zoofence") then
data.zoofence = true
end
if inst:HasTag("zoobaby1") then
data.zoobaby1 = true
end
if inst:HasTag("zoobaby2") then
data.zoobaby2 = true
end
if inst:HasTag("zoobaby3") then
data.zoobaby3 = true
end
if inst:HasTag("zoobaby4") then
data.zoobaby4 = true
end
if inst:HasTag("zoobaby5") then
data.zoobaby5 = true
end
if inst:HasTag("followme") then
data.followme = true
end
end
local function onload(inst, data)
if data and data.brand then
inst.AnimState:SetBank("sign_home")
inst.AnimState:SetBuild("sign_home")
inst.AnimState:PlayAnimation("idle")
inst.Transform:SetScale(0.8, 0.8, 0.8)
inst.AnimState:SetMultColour(0/255,255/255,0/255,1)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
inst:AddTag("brand")
local slotpos1 = { Vector3(0,-75,0)}
inst:AddComponent("container")
inst.components.container:SetNumSlots(#slotpos1)
inst.components.container.widgetslotpos = slotpos1
inst.components.container.widgetpos = Vector3(0,180,0)
inst.components.container.side_align_tip = 160
inst.components.container.acceptsstacks = false
inst.components.container.itemtestfn = function(inst, item, slot)
if item.prefab == "charcoal" or item.prefab == "trunk_summer" or item.prefab == "trunk_winter" or item.prefab == "walrus_tusk" or item.prefab == "cave_banana" then
return true
end
return false
end
inst.components.container.widgetbuttoninfo = {
text = "Buy",
position = Vector3(0, -145, 0),
fn = function(inst)
if GetPlayer().components.inventory:Has("goldnugget", 30) then
if inst.components.container:Has("charcoal", 1) then
inst.components.container:ConsumeByName("charcoal", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = inst:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("krampus")
zoobaby.AnimState:SetBuild("krampus_build")
zoobaby.AnimState:PlayAnimation("idle", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.AnimState:Hide("SACK")
zoobaby.AnimState:Show("ARM")
zoobaby.Transform:SetScale(0.7,0.7,0.7)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkrampus")
zoobaby:AddTag("zoobaby1")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if inst.components.container:Has("trunk_summer", 1) then
inst.components.container:ConsumeByName("trunk_summer", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = inst:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_summer_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby2")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if inst.components.container:Has("trunk_winter", 1) then
inst.components.container:ConsumeByName("trunk_winter", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = inst:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_winter_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby3")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if inst.components.container:Has("walrus_tusk", 1) then
inst.components.container:ConsumeByName("walrus_tusk", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = inst:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("walrus")
zoobaby.AnimState:SetBuild("walrus_baby_build")
zoobaby.AnimState:PlayAnimation("idle_happy")
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.8,0.8,0.8)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGwalrus")
zoobaby:AddTag("zoobaby4")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
if inst.components.container:Has("cave_banana", 1) then
inst.components.container:ConsumeByName("cave_banana", 1)
local zoobaby = SpawnPrefab("butter")
local pt1 = inst:GetPosition()
zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6)
zoobaby.AnimState:SetBank("kiki")
zoobaby.AnimState:SetBuild("kiki_basic")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.soundtype = ""
zoobaby.Transform:SetScale(1.2,1.2,1.2)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGmonkey")
zoobaby:AddTag("zoobaby5")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available")
GetPlayer().components.inventory:ConsumeByName("goldnugget", 30)
end
end
end }
end
if data and data.zooroom then
inst.AnimState:SetBank("rabbithouse")
inst.AnimState:SetBuild("rabbit_house")
inst.AnimState:PlayAnimation("idle", true)
inst.Transform:SetScale(0.4, 0.4, 0.4)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst.components.container.canbeopened = true
inst.entity:AddLight()
inst.Light:SetFalloff(1)
inst.Light:SetIntensity(.8)
inst.Light:SetRadius(15)
inst.Light:SetColour(180/255, 195/255, 50/255)
inst.Light:Enable(true)
inst:AddTag("zooroom")
inst:DoPeriodicTask(180, function(inst)
local target = FindEntity(inst, 9, function(guy)
return guy:HasTag("zoobaby")
end )
if target then
local target1 = FindEntity(inst, 9, function(guy)
return guy.prefab == "poop"
end )
if not target1 then
for k = 1,math.random(5,10) do
local pt2 = inst:GetPosition()
SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5)
end
else
for k = 1,math.random(1,3) do
local pt2 = inst:GetPosition()
SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5)
end
end
if inst.components.container:Has("carrot", 3) then
inst.components.container:ConsumeByName("carrot", 3)
if math.random()<0.1 then
if target:HasTag("zoobaby1") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("krampus")
zoobaby.AnimState:SetBuild("krampus_build")
zoobaby.AnimState:PlayAnimation("idle", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.AnimState:Hide("SACK")
zoobaby.AnimState:Show("ARM")
zoobaby.Transform:SetScale(0.7,0.7,0.7)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkrampus")
zoobaby:AddTag("zoobaby1")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby2") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_summer_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby2")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby3") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("koalefant")
zoobaby.AnimState:SetBuild("koalefant_winter_build")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.5,0.5,0.5)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGkoalefant")
zoobaby:AddTag("zoobaby3")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby4") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("walrus")
zoobaby.AnimState:SetBuild("walrus_baby_build")
zoobaby.AnimState:PlayAnimation("idle_happy")
zoobaby.entity:AddSoundEmitter()
zoobaby.Transform:SetScale(0.8,0.8,0.8)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGwalrus")
zoobaby:AddTag("zoobaby4")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
if target:HasTag("zoobaby5") then
local zoobaby = SpawnPrefab("butter")
local pt4 = target:GetPosition()
zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z)
zoobaby.AnimState:SetBank("kiki")
zoobaby.AnimState:SetBuild("kiki_basic")
zoobaby.AnimState:PlayAnimation("idle_loop", true)
zoobaby.entity:AddSoundEmitter()
zoobaby.soundtype = ""
zoobaby.Transform:SetScale(1.2,1.2,1.2)
zoobaby:AddComponent("locomotor")
zoobaby.components.locomotor.walkspeed = 3
zoobaby.components.locomotor.runspeed = 6
zoobaby:SetStateGraph("SGmonkey")
zoobaby:AddTag("zoobaby5")
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby.Transform:SetFourFaced()
MakeCharacterPhysics(zoobaby, 15, .5)
zoobaby:AddComponent("knownlocations")
zoobaby:AddComponent("combat")
zoobaby:AddComponent("health")
zoobaby.components.health:SetMaxHealth(100)
zoobaby:RemoveComponent("stackable")
zoobaby:RemoveComponent("inventoryitem")
zoobaby:RemoveComponent("edible")
zoobaby:RemoveComponent("perishable")
zoobaby:RemoveComponent("deployable")
zoobaby:RemoveComponent("container")
local minimap = zoobaby.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
zoobaby:AddComponent("follower")
zoobaby.components.inspectable.getstatus = function(zoobaby)
if not zoobaby:HasTag("followme") then
local brain = require "brains/abigailbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(GetPlayer())
zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
zoobaby:AddTag("followme")
else
local brain = require "brains/frogbrain"
zoobaby:SetBrain(brain)
zoobaby:RestartBrain()
zoobaby.components.follower:SetLeader(nil)
zoobaby.AnimState:SetBloomEffectHandle("")
zoobaby:RemoveTag("followme")
end
end
zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby)
SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition())
end )
zoobaby:AddComponent("lootdropper")
zoobaby.components.lootdropper:SetLoot({"smallmeat"})
zoobaby:AddTag("zoobaby")
end
end
else
target.components.health:Kill()
end
end
end )
inst:AddComponent("workable")
inst.components.workable:SetWorkAction(ACTIONS.HAMMER)
inst.components.workable:SetWorkLeft(3)
inst.components.workable:SetOnFinishCallback(function(inst)
local pos = Vector3(inst.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10)
for k,v in pairs(ents) do
if v:HasTag("zoofence") or v:HasTag("brand") then
SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
v:Remove()
end
end
inst:Remove()
end )
end
if data and data.zoofence then
inst.AnimState:SetBank("wall")
inst.AnimState:SetBuild("wall_wood")
inst.AnimState:PlayAnimation("1_2", false)
MakeObstaclePhysics(inst, .5)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
inst:AddTag("zoofence")
inst.components.inspectable.getstatus = function(inst)
inst.Transform:SetScale(1, 0.1, 1)
inst.Physics:SetActive(false)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
inst:DoTaskInTime(5, function(inst)
inst.Transform:SetScale(1, 1, 1)
inst.Physics:SetActive(true)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
end )
end
end
if data and data.zoobaby1 then
inst.AnimState:SetBank("krampus")
inst.AnimState:SetBuild("krampus_build")
inst.AnimState:PlayAnimation("idle", true)
inst.entity:AddSoundEmitter()
inst.AnimState:Hide("SACK")
inst.AnimState:Show("ARM")
inst.Transform:SetScale(0.7,0.7,0.7)
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 3
inst.components.locomotor.runspeed = 6
inst:SetStateGraph("SGkrampus")
inst:AddTag("zoobaby1")
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst.Transform:SetFourFaced()
MakeCharacterPhysics(inst, 15, .5)
inst:AddComponent("knownlocations")
inst:AddComponent("combat")
inst:AddComponent("health")
inst.components.health:SetMaxHealth(100)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
inst:AddComponent("follower")
inst.components.inspectable.getstatus = function(inst)
if not inst:HasTag("followme") then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("followme")
else
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(nil)
inst.AnimState:SetBloomEffectHandle("")
inst:RemoveTag("followme")
end
end
inst:DoPeriodicTask(math.random(360, 480), function(inst)
SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition())
end )
inst:AddComponent("lootdropper")
inst.components.lootdropper:SetLoot({"smallmeat"})
inst:AddTag("zoobaby")
end
if data and data.zoobaby2 then
inst.AnimState:SetBank("koalefant")
inst.AnimState:SetBuild("koalefant_summer_build")
inst.AnimState:PlayAnimation("idle_loop", true)
inst.entity:AddSoundEmitter()
inst.Transform:SetScale(0.5,0.5,0.5)
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 3
inst.components.locomotor.runspeed = 6
inst:SetStateGraph("SGkoalefant")
inst:AddTag("zoobaby2")
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst.Transform:SetFourFaced()
MakeCharacterPhysics(inst, 15, .5)
inst:AddComponent("knownlocations")
inst:AddComponent("combat")
inst:AddComponent("health")
inst.components.health:SetMaxHealth(100)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
inst:AddComponent("follower")
inst.components.inspectable.getstatus = function(inst)
if not inst:HasTag("followme") then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("followme")
else
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(nil)
inst.AnimState:SetBloomEffectHandle("")
inst:RemoveTag("followme")
end
end
inst:DoPeriodicTask(math.random(360, 480), function(inst)
SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition())
end )
inst:AddComponent("lootdropper")
inst.components.lootdropper:SetLoot({"smallmeat"})
inst:AddTag("zoobaby")
end
if data and data.zoobaby3 then
inst.AnimState:SetBank("koalefant")
inst.AnimState:SetBuild("koalefant_winter_build")
inst.AnimState:PlayAnimation("idle_loop", true)
inst.entity:AddSoundEmitter()
inst.Transform:SetScale(0.5,0.5,0.5)
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 3
inst.components.locomotor.runspeed = 6
inst:SetStateGraph("SGkoalefant")
inst:AddTag("zoobaby3")
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst.Transform:SetFourFaced()
MakeCharacterPhysics(inst, 15, .5)
inst:AddComponent("knownlocations")
inst:AddComponent("combat")
inst:AddComponent("health")
inst.components.health:SetMaxHealth(100)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
inst:AddComponent("follower")
inst.components.inspectable.getstatus = function(inst)
if not inst:HasTag("followme") then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("followme")
else
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(nil)
inst.AnimState:SetBloomEffectHandle("")
inst:RemoveTag("followme")
end
end
inst:DoPeriodicTask(math.random(360, 480), function(inst)
SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition())
end )
inst:AddComponent("lootdropper")
inst.components.lootdropper:SetLoot({"smallmeat"})
inst:AddTag("zoobaby")
end
if data and data.zoobaby4 then
inst.AnimState:SetBank("walrus")
inst.AnimState:SetBuild("walrus_baby_build")
inst.AnimState:PlayAnimation("idle_happy")
inst.entity:AddSoundEmitter()
inst.Transform:SetScale(0.8,0.8,0.8)
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 3
inst.components.locomotor.runspeed = 6
inst:SetStateGraph("SGwalrus")
inst:AddTag("zoobaby4")
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst.Transform:SetFourFaced()
MakeCharacterPhysics(inst, 15, .5)
inst:AddComponent("knownlocations")
inst:AddComponent("combat")
inst:AddComponent("health")
inst.components.health:SetMaxHealth(100)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
inst:AddComponent("follower")
inst.components.inspectable.getstatus = function(inst)
if not inst:HasTag("followme") then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("followme")
else
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(nil)
inst.AnimState:SetBloomEffectHandle("")
inst:RemoveTag("followme")
end
end
inst:DoPeriodicTask(math.random(360, 480), function(inst)
SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition())
end )
inst:AddComponent("lootdropper")
inst.components.lootdropper:SetLoot({"smallmeat"})
inst:AddTag("zoobaby")
end
if data and data.zoobaby5 then
inst.AnimState:SetBank("kiki")
inst.AnimState:SetBuild("kiki_basic")
inst.AnimState:PlayAnimation("idle_loop", true)
inst.entity:AddSoundEmitter()
inst.soundtype = ""
inst.Transform:SetScale(1.2,1.2,1.2)
inst:AddComponent("locomotor")
inst.components.locomotor.walkspeed = 3
inst.components.locomotor.runspeed = 6
inst:SetStateGraph("SGmonkey")
inst:AddTag("zoobaby5")
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst.Transform:SetFourFaced()
MakeCharacterPhysics(inst, 15, .5)
inst:AddComponent("knownlocations")
inst:AddComponent("combat")
inst:AddComponent("health")
inst.components.health:SetMaxHealth(100)
inst:RemoveComponent("stackable")
inst:RemoveComponent("inventoryitem")
inst:RemoveComponent("edible")
inst:RemoveComponent("perishable")
inst:RemoveComponent("deployable")
inst:RemoveComponent("container")
local minimap = inst.entity:AddMiniMapEntity()
minimap:SetIcon("monkey_barrel.png")
inst:AddComponent("follower")
inst.components.inspectable.getstatus = function(inst)
if not inst:HasTag("followme") then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("followme")
else
local brain = require "brains/frogbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(nil)
inst.AnimState:SetBloomEffectHandle("")
inst:RemoveTag("followme")
end
end
inst:DoPeriodicTask(math.random(360, 480), function(inst)
SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition())
end )
inst:AddComponent("lootdropper")
inst.components.lootdropper:SetLoot({"smallmeat"})
inst:AddTag("zoobaby")
end
if data and data.followme then
local brain = require "brains/abigailbrain"
inst:SetBrain(brain)
inst:RestartBrain()
inst.components.follower:SetLeader(GetPlayer())
inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
inst:AddTag("followme")
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可在开阔的空地上,用黄油种动物园,在身上有30个黄金时,用鼠标左键点牌子,可打开格子,放入木炭点Buy按钮,可买一只小龙,花费30个黄金;放入夏象鼻点Buy按钮,可买小红象;放入冬象鼻点Buy按钮,可买小蓝象;放入海象牙点Buy按钮,可买小海象;放入香蕉点Buy按钮,可买猴子。鼠标左键点木栅栏,可开门,5秒后自动关门。鼠标左键点中间的胡萝卜房可打开格子,放入小动物爱吃的胡萝卜(每天消耗9个),当格子里的胡萝卜不足3个时,圈里的动物将陆续饿死。当动物园里有动物时,每天都能收到15-30个黄金的门票钱(放在牌子前面),动物会产便便,如果不及时清扫,门票钱将下降为正常的1/3。如果食物充足,小动物还有一定概率会繁殖,点胡萝卜房格子上方的Sell按钮,可卖掉圈舍中的动物,每只20个黄金。如果动物跑出圈舍,或想带领动物转场,就用鼠标左键点动物(手里不要拿武器),它会跟随你,再次用鼠标左键点动物,可以取消跟随。动物在小地图上显示为猴子的图标。不想要动物园时,用锤子砸掉胡萝卜房即可。黄油可以打蝴蝶获得,如果修改了“巨型超市”,也可花1-3个黄金购得
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏