代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1 2三0二.经营动物园(用黄油种动物园,买卖、繁殖小动物,赚门票钱) 3 4 用MT管理器打开游戏目录/assets/scripts/prefabs/butter.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容: 5 6local slotpos = { Vector3(0,-100,0)} 7local function itemtest(inst, item, slot) 8 if item.prefab == "carrot" then 9 return true 10 end 11 return false 12end 13local widgetbuttoninfo = { 14 text = "Sell", 15 position = Vector3(0, -30, 0), 16 fn = function(inst) 17 local target = FindEntity(inst, 9, function(guy) 18 return guy:HasTag("zoobaby") 19 end ) 20 if target then 21 for k = 1,20 do 22 local pt5 = target:GetPosition() 23 SpawnPrefab("goldnugget").Transform:SetPosition(pt5.x, 0, pt5.z) 24 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 25 target:Remove() 26 end 27 end 28end } 29local function OnDeploy (inst, pt) 30 local brand = SpawnPrefab("butter") 31 brand.Transform:SetPosition(pt.x, pt.y, pt.z) 32 brand.AnimState:SetBank("sign_home") 33 brand.AnimState:SetBuild("sign_home") 34 brand.AnimState:PlayAnimation("idle") 35 brand.Transform:SetScale(0.8, 0.8, 0.8) 36 brand.AnimState:SetMultColour(0/255,255/255,0/255,1) 37 brand:RemoveComponent("stackable") 38 brand:RemoveComponent("inventoryitem") 39 brand:RemoveComponent("edible") 40 brand:RemoveComponent("perishable") 41 brand:RemoveComponent("deployable") 42 brand:RemoveComponent("container") 43 brand:AddTag("brand") 44 local slotpos1 = { Vector3(0,-75,0)} 45 brand:AddComponent("container") 46 brand.components.container:SetNumSlots(#slotpos1) 47 brand.components.container.widgetslotpos = slotpos1 48 brand.components.container.widgetpos = Vector3(0,180,0) 49 brand.components.container.side_align_tip = 160 50 brand.components.container.acceptsstacks = false 51 brand.components.container.itemtestfn = function(brand, item, slot) 52 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 53 return true 54 end 55 return false 56 end 57 brand.components.container.widgetbuttoninfo = { 58 text = "Buy", 59 position = Vector3(0, -145, 0), 60 fn = function(brand) 61 if GetPlayer().components.inventory:Has("goldnugget", 30) then 62 if brand.components.container:Has("charcoal", 1) then 63 brand.components.container:ConsumeByName("charcoal", 1) 64 local zoobaby = SpawnPrefab("butter") 65 local pt1 = brand:GetPosition() 66 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 67 zoobaby.AnimState:SetBank("krampus") 68 zoobaby.AnimState:SetBuild("krampus_build") 69 zoobaby.AnimState:PlayAnimation("idle", true) 70 zoobaby.entity:AddSoundEmitter() 71 zoobaby.AnimState:Hide("SACK") 72 zoobaby.AnimState:Show("ARM") 73 zoobaby.Transform:SetScale(0.7,0.7,0.7) 74 zoobaby:AddComponent("locomotor") 75 zoobaby.components.locomotor.walkspeed = 3 76 zoobaby.components.locomotor.runspeed = 6 77 zoobaby:SetStateGraph("SGkrampus") 78 zoobaby:AddTag("zoobaby1") 79 local brain = require "brains/frogbrain" 80 zoobaby:SetBrain(brain) 81 zoobaby.Transform:SetFourFaced() 82 MakeCharacterPhysics(zoobaby, 15, .5) 83 zoobaby:AddComponent("knownlocations") 84 zoobaby:AddComponent("combat") 85 zoobaby:AddComponent("health") 86 zoobaby.components.health:SetMaxHealth(100) 87 zoobaby:RemoveComponent("stackable") 88 zoobaby:RemoveComponent("inventoryitem") 89 zoobaby:RemoveComponent("edible") 90 zoobaby:RemoveComponent("perishable") 91 zoobaby:RemoveComponent("deployable") 92 zoobaby:RemoveComponent("container") 93 local minimap = zoobaby.entity:AddMiniMapEntity() 94 minimap:SetIcon("monkey_barrel.png") 95 zoobaby:AddComponent("follower") 96 zoobaby.components.inspectable.getstatus = function(zoobaby) 97 if not zoobaby:HasTag("followme") then 98 local brain = require "brains/abigailbrain" 99 zoobaby:SetBrain(brain) 100 zoobaby:RestartBrain() 101 zoobaby.components.follower:SetLeader(GetPlayer()) 102 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 103 zoobaby:AddTag("followme") 104 else 105 local brain = require "brains/frogbrain" 106 zoobaby:SetBrain(brain) 107 zoobaby:RestartBrain() 108 zoobaby.components.follower:SetLeader(nil) 109 zoobaby.AnimState:SetBloomEffectHandle("") 110 zoobaby:RemoveTag("followme") 111 end 112 end 113 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 114 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 115 end ) 116 zoobaby:AddComponent("lootdropper") 117 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 118 zoobaby:AddTag("zoobaby") 119 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 120 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 121 end 122 if brand.components.container:Has("trunk_summer", 1) then 123 brand.components.container:ConsumeByName("trunk_summer", 1) 124 local zoobaby = SpawnPrefab("butter") 125 local pt1 = brand:GetPosition() 126 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 127 zoobaby.AnimState:SetBank("koalefant") 128 zoobaby.AnimState:SetBuild("koalefant_summer_build") 129 zoobaby.AnimState:PlayAnimation("idle_loop", true) 130 zoobaby.entity:AddSoundEmitter() 131 zoobaby.Transform:SetScale(0.5,0.5,0.5) 132 zoobaby:AddComponent("locomotor") 133 zoobaby.components.locomotor.walkspeed = 3 134 zoobaby.components.locomotor.runspeed = 6 135 zoobaby:SetStateGraph("SGkoalefant") 136 zoobaby:AddTag("zoobaby2") 137 local brain = require "brains/frogbrain" 138 zoobaby:SetBrain(brain) 139 zoobaby.Transform:SetFourFaced() 140 MakeCharacterPhysics(zoobaby, 15, .5) 141 zoobaby:AddComponent("knownlocations") 142 zoobaby:AddComponent("combat") 143 zoobaby:AddComponent("health") 144 zoobaby.components.health:SetMaxHealth(100) 145 zoobaby:RemoveComponent("stackable") 146 zoobaby:RemoveComponent("inventoryitem") 147 zoobaby:RemoveComponent("edible") 148 zoobaby:RemoveComponent("perishable") 149 zoobaby:RemoveComponent("deployable") 150 zoobaby:RemoveComponent("container") 151 local minimap = zoobaby.entity:AddMiniMapEntity() 152 minimap:SetIcon("monkey_barrel.png") 153 zoobaby:AddComponent("follower") 154 zoobaby.components.inspectable.getstatus = function(zoobaby) 155 if not zoobaby:HasTag("followme") then 156 local brain = require "brains/abigailbrain" 157 zoobaby:SetBrain(brain) 158 zoobaby:RestartBrain() 159 zoobaby.components.follower:SetLeader(GetPlayer()) 160 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 161 zoobaby:AddTag("followme") 162 else 163 local brain = require "brains/frogbrain" 164 zoobaby:SetBrain(brain) 165 zoobaby:RestartBrain() 166 zoobaby.components.follower:SetLeader(nil) 167 zoobaby.AnimState:SetBloomEffectHandle("") 168 zoobaby:RemoveTag("followme") 169 end 170 end 171 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 172 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 173 end ) 174 zoobaby:AddComponent("lootdropper") 175 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 176 zoobaby:AddTag("zoobaby") 177 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 178 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 179 end 180 if brand.components.container:Has("trunk_winter", 1) then 181 brand.components.container:ConsumeByName("trunk_winter", 1) 182 local zoobaby = SpawnPrefab("butter") 183 local pt1 = brand:GetPosition() 184 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 185 zoobaby.AnimState:SetBank("koalefant") 186 zoobaby.AnimState:SetBuild("koalefant_winter_build") 187 zoobaby.AnimState:PlayAnimation("idle_loop", true) 188 zoobaby.entity:AddSoundEmitter() 189 zoobaby.Transform:SetScale(0.5,0.5,0.5) 190 zoobaby:AddComponent("locomotor") 191 zoobaby.components.locomotor.walkspeed = 3 192 zoobaby.components.locomotor.runspeed = 6 193 zoobaby:SetStateGraph("SGkoalefant") 194 zoobaby:AddTag("zoobaby3") 195 local brain = require "brains/frogbrain" 196 zoobaby:SetBrain(brain) 197 zoobaby.Transform:SetFourFaced() 198 MakeCharacterPhysics(zoobaby, 15, .5) 199 zoobaby:AddComponent("knownlocations") 200 zoobaby:AddComponent("combat") 201 zoobaby:AddComponent("health") 202 zoobaby.components.health:SetMaxHealth(100) 203 zoobaby:RemoveComponent("stackable") 204 zoobaby:RemoveComponent("inventoryitem") 205 zoobaby:RemoveComponent("edible") 206 zoobaby:RemoveComponent("perishable") 207 zoobaby:RemoveComponent("deployable") 208 zoobaby:RemoveComponent("container") 209 local minimap = zoobaby.entity:AddMiniMapEntity() 210 minimap:SetIcon("monkey_barrel.png") 211 zoobaby:AddComponent("follower") 212 zoobaby.components.inspectable.getstatus = function(zoobaby) 213 if not zoobaby:HasTag("followme") then 214 local brain = require "brains/abigailbrain" 215 zoobaby:SetBrain(brain) 216 zoobaby:RestartBrain() 217 zoobaby.components.follower:SetLeader(GetPlayer()) 218 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 219 zoobaby:AddTag("followme") 220 else 221 local brain = require "brains/frogbrain" 222 zoobaby:SetBrain(brain) 223 zoobaby:RestartBrain() 224 zoobaby.components.follower:SetLeader(nil) 225 zoobaby.AnimState:SetBloomEffectHandle("") 226 zoobaby:RemoveTag("followme") 227 end 228 end 229 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 230 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 231 end ) 232 zoobaby:AddComponent("lootdropper") 233 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 234 zoobaby:AddTag("zoobaby") 235 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 236 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 237 end 238 if brand.components.container:Has("walrus_tusk", 1) then 239 brand.components.container:ConsumeByName("walrus_tusk", 1) 240 local zoobaby = SpawnPrefab("butter") 241 local pt1 = brand:GetPosition() 242 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 243 zoobaby.AnimState:SetBank("walrus") 244 zoobaby.AnimState:SetBuild("walrus_baby_build") 245 zoobaby.AnimState:PlayAnimation("idle_happy") 246 zoobaby.entity:AddSoundEmitter() 247 zoobaby.Transform:SetScale(0.8,0.8,0.8) 248 zoobaby:AddComponent("locomotor") 249 zoobaby.components.locomotor.walkspeed = 3 250 zoobaby.components.locomotor.runspeed = 6 251 zoobaby:SetStateGraph("SGwalrus") 252 zoobaby:AddTag("zoobaby4") 253 local brain = require "brains/frogbrain" 254 zoobaby:SetBrain(brain) 255 zoobaby.Transform:SetFourFaced() 256 MakeCharacterPhysics(zoobaby, 15, .5) 257 zoobaby:AddComponent("knownlocations") 258 zoobaby:AddComponent("combat") 259 zoobaby:AddComponent("health") 260 zoobaby.components.health:SetMaxHealth(100) 261 zoobaby:RemoveComponent("stackable") 262 zoobaby:RemoveComponent("inventoryitem") 263 zoobaby:RemoveComponent("edible") 264 zoobaby:RemoveComponent("perishable") 265 zoobaby:RemoveComponent("deployable") 266 zoobaby:RemoveComponent("container") 267 local minimap = zoobaby.entity:AddMiniMapEntity() 268 minimap:SetIcon("monkey_barrel.png") 269 zoobaby:AddComponent("follower") 270 zoobaby.components.inspectable.getstatus = function(zoobaby) 271 if not zoobaby:HasTag("followme") then 272 local brain = require "brains/abigailbrain" 273 zoobaby:SetBrain(brain) 274 zoobaby:RestartBrain() 275 zoobaby.components.follower:SetLeader(GetPlayer()) 276 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 277 zoobaby:AddTag("followme") 278 else 279 local brain = require "brains/frogbrain" 280 zoobaby:SetBrain(brain) 281 zoobaby:RestartBrain() 282 zoobaby.components.follower:SetLeader(nil) 283 zoobaby.AnimState:SetBloomEffectHandle("") 284 zoobaby:RemoveTag("followme") 285 end 286 end 287 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 288 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 289 end ) 290 zoobaby:AddComponent("lootdropper") 291 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 292 zoobaby:AddTag("zoobaby") 293 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 294 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 295 end 296 if brand.components.container:Has("cave_banana", 1) then 297 brand.components.container:ConsumeByName("cave_banana", 1) 298 local zoobaby = SpawnPrefab("butter") 299 local pt1 = brand:GetPosition() 300 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 301 zoobaby.AnimState:SetBank("kiki") 302 zoobaby.AnimState:SetBuild("kiki_basic") 303 zoobaby.AnimState:PlayAnimation("idle_loop", true) 304 zoobaby.entity:AddSoundEmitter() 305 zoobaby.soundtype = "" 306 zoobaby.Transform:SetScale(1.2,1.2,1.2) 307 zoobaby:AddComponent("locomotor") 308 zoobaby.components.locomotor.walkspeed = 3 309 zoobaby.components.locomotor.runspeed = 6 310 zoobaby:SetStateGraph("SGmonkey") 311 zoobaby:AddTag("zoobaby5") 312 local brain = require "brains/frogbrain" 313 zoobaby:SetBrain(brain) 314 zoobaby.Transform:SetFourFaced() 315 MakeCharacterPhysics(zoobaby, 15, .5) 316 zoobaby:AddComponent("knownlocations") 317 zoobaby:AddComponent("combat") 318 zoobaby:AddComponent("health") 319 zoobaby.components.health:SetMaxHealth(100) 320 zoobaby:RemoveComponent("stackable") 321 zoobaby:RemoveComponent("inventoryitem") 322 zoobaby:RemoveComponent("edible") 323 zoobaby:RemoveComponent("perishable") 324 zoobaby:RemoveComponent("deployable") 325 zoobaby:RemoveComponent("container") 326 local minimap = zoobaby.entity:AddMiniMapEntity() 327 minimap:SetIcon("monkey_barrel.png") 328 zoobaby:AddComponent("follower") 329 zoobaby.components.inspectable.getstatus = function(zoobaby) 330 if not zoobaby:HasTag("followme") then 331 local brain = require "brains/abigailbrain" 332 zoobaby:SetBrain(brain) 333 zoobaby:RestartBrain() 334 zoobaby.components.follower:SetLeader(GetPlayer()) 335 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 336 zoobaby:AddTag("followme") 337 else 338 local brain = require "brains/frogbrain" 339 zoobaby:SetBrain(brain) 340 zoobaby:RestartBrain() 341 zoobaby.components.follower:SetLeader(nil) 342 zoobaby.AnimState:SetBloomEffectHandle("") 343 zoobaby:RemoveTag("followme") 344 end 345 end 346 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 347 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 348 end ) 349 zoobaby:AddComponent("lootdropper") 350 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 351 zoobaby:AddTag("zoobaby") 352 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 353 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 354 end 355 end 356 end } 357 local zooroom = SpawnPrefab("butter") 358 zooroom.Transform:SetPosition(pt.x-7, 0, pt.z-7) 359 zooroom.AnimState:SetBank("rabbithouse") 360 zooroom.AnimState:SetBuild("rabbit_house") 361 zooroom.AnimState:PlayAnimation("idle", true) 362 zooroom.Transform:SetScale(0.4, 0.4, 0.4) 363 zooroom:RemoveComponent("stackable") 364 zooroom:RemoveComponent("inventoryitem") 365 zooroom:RemoveComponent("edible") 366 zooroom:RemoveComponent("perishable") 367 zooroom:RemoveComponent("deployable") 368 zooroom.components.container.canbeopened = true 369 zooroom.entity:AddLight() 370 zooroom.Light:SetFalloff(1) 371 zooroom.Light:SetIntensity(.8) 372 zooroom.Light:SetRadius(15) 373 zooroom.Light:SetColour(180/255, 195/255, 50/255) 374 zooroom.Light:Enable(true) 375 zooroom:AddTag("zooroom") 376 zooroom:DoPeriodicTask(180, function(zooroom) 377 local target = FindEntity(zooroom, 9, function(guy) 378 return guy:HasTag("zoobaby") 379 end ) 380 if target then 381 local target1 = FindEntity(zooroom, 9, function(guy) 382 return guy.prefab == "poop" 383 end ) 384 if not target1 then 385 for k = 1,math.random(5,10) do 386 local pt2 = zooroom:GetPosition() 387 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 388 end 389 else 390 for k = 1,math.random(1,3) do 391 local pt2 = zooroom:GetPosition() 392 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 393 end 394 end 395 if zooroom.components.container:Has("carrot", 3) then 396 zooroom.components.container:ConsumeByName("carrot", 3) 397 if math.random()<0.1 then 398 if target:HasTag("zoobaby1") then 399 local zoobaby = SpawnPrefab("butter") 400 local pt4 = target:GetPosition() 401 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 402 zoobaby.AnimState:SetBank("krampus") 403 zoobaby.AnimState:SetBuild("krampus_build") 404 zoobaby.AnimState:PlayAnimation("idle", true) 405 zoobaby.entity:AddSoundEmitter() 406 zoobaby.AnimState:Hide("SACK") 407 zoobaby.AnimState:Show("ARM") 408 zoobaby.Transform:SetScale(0.7,0.7,0.7) 409 zoobaby:AddComponent("locomotor") 410 zoobaby.components.locomotor.walkspeed = 3 411 zoobaby.components.locomotor.runspeed = 6 412 zoobaby:SetStateGraph("SGkrampus") 413 zoobaby:AddTag("zoobaby1") 414 local brain = require "brains/frogbrain" 415 zoobaby:SetBrain(brain) 416 zoobaby.Transform:SetFourFaced() 417 MakeCharacterPhysics(zoobaby, 15, .5) 418 zoobaby:AddComponent("knownlocations") 419 zoobaby:AddComponent("combat") 420 zoobaby:AddComponent("health") 421 zoobaby.components.health:SetMaxHealth(100) 422 zoobaby:RemoveComponent("stackable") 423 zoobaby:RemoveComponent("inventoryitem") 424 zoobaby:RemoveComponent("edible") 425 zoobaby:RemoveComponent("perishable") 426 zoobaby:RemoveComponent("deployable") 427 zoobaby:RemoveComponent("container") 428 local minimap = zoobaby.entity:AddMiniMapEntity() 429 minimap:SetIcon("monkey_barrel.png") 430 zoobaby:AddComponent("follower") 431 zoobaby.components.inspectable.getstatus = function(zoobaby) 432 if not zoobaby:HasTag("followme") then 433 local brain = require "brains/abigailbrain" 434 zoobaby:SetBrain(brain) 435 zoobaby:RestartBrain() 436 zoobaby.components.follower:SetLeader(GetPlayer()) 437 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 438 zoobaby:AddTag("followme") 439 else 440 local brain = require "brains/frogbrain" 441 zoobaby:SetBrain(brain) 442 zoobaby:RestartBrain() 443 zoobaby.components.follower:SetLeader(nil) 444 zoobaby.AnimState:SetBloomEffectHandle("") 445 zoobaby:RemoveTag("followme") 446 end 447 end 448 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 449 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 450 end ) 451 zoobaby:AddComponent("lootdropper") 452 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 453 zoobaby:AddTag("zoobaby") 454 end 455 if target:HasTag("zoobaby2") then 456 local zoobaby = SpawnPrefab("butter") 457 local pt4 = target:GetPosition() 458 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 459 zoobaby.AnimState:SetBank("koalefant") 460 zoobaby.AnimState:SetBuild("koalefant_summer_build") 461 zoobaby.AnimState:PlayAnimation("idle_loop", true) 462 zoobaby.entity:AddSoundEmitter() 463 zoobaby.Transform:SetScale(0.5,0.5,0.5) 464 zoobaby:AddComponent("locomotor") 465 zoobaby.components.locomotor.walkspeed = 3 466 zoobaby.components.locomotor.runspeed = 6 467 zoobaby:SetStateGraph("SGkoalefant") 468 zoobaby:AddTag("zoobaby2") 469 local brain = require "brains/frogbrain" 470 zoobaby:SetBrain(brain) 471 zoobaby.Transform:SetFourFaced() 472 MakeCharacterPhysics(zoobaby, 15, .5) 473 zoobaby:AddComponent("knownlocations") 474 zoobaby:AddComponent("combat") 475 zoobaby:AddComponent("health") 476 zoobaby.components.health:SetMaxHealth(100) 477 zoobaby:RemoveComponent("stackable") 478 zoobaby:RemoveComponent("inventoryitem") 479 zoobaby:RemoveComponent("edible") 480 zoobaby:RemoveComponent("perishable") 481 zoobaby:RemoveComponent("deployable") 482 zoobaby:RemoveComponent("container") 483 local minimap = zoobaby.entity:AddMiniMapEntity() 484 minimap:SetIcon("monkey_barrel.png") 485 zoobaby:AddComponent("follower") 486 zoobaby.components.inspectable.getstatus = function(zoobaby) 487 if not zoobaby:HasTag("followme") then 488 local brain = require "brains/abigailbrain" 489 zoobaby:SetBrain(brain) 490 zoobaby:RestartBrain() 491 zoobaby.components.follower:SetLeader(GetPlayer()) 492 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 493 zoobaby:AddTag("followme") 494 else 495 local brain = require "brains/frogbrain" 496 zoobaby:SetBrain(brain) 497 zoobaby:RestartBrain() 498 zoobaby.components.follower:SetLeader(nil) 499 zoobaby.AnimState:SetBloomEffectHandle("") 500 zoobaby:RemoveTag("followme") 501 end 502 end 503 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 504 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 505 end ) 506 zoobaby:AddComponent("lootdropper") 507 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 508 zoobaby:AddTag("zoobaby") 509 end 510 if target:HasTag("zoobaby3") then 511 local zoobaby = SpawnPrefab("butter") 512 local pt4 = target:GetPosition() 513 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 514 zoobaby.AnimState:SetBank("koalefant") 515 zoobaby.AnimState:SetBuild("koalefant_winter_build") 516 zoobaby.AnimState:PlayAnimation("idle_loop", true) 517 zoobaby.entity:AddSoundEmitter() 518 zoobaby.Transform:SetScale(0.5,0.5,0.5) 519 zoobaby:AddComponent("locomotor") 520 zoobaby.components.locomotor.walkspeed = 3 521 zoobaby.components.locomotor.runspeed = 6 522 zoobaby:SetStateGraph("SGkoalefant") 523 zoobaby:AddTag("zoobaby3") 524 local brain = require "brains/frogbrain" 525 zoobaby:SetBrain(brain) 526 zoobaby.Transform:SetFourFaced() 527 MakeCharacterPhysics(zoobaby, 15, .5) 528 zoobaby:AddComponent("knownlocations") 529 zoobaby:AddComponent("combat") 530 zoobaby:AddComponent("health") 531 zoobaby.components.health:SetMaxHealth(100) 532 zoobaby:RemoveComponent("stackable") 533 zoobaby:RemoveComponent("inventoryitem") 534 zoobaby:RemoveComponent("edible") 535 zoobaby:RemoveComponent("perishable") 536 zoobaby:RemoveComponent("deployable") 537 zoobaby:RemoveComponent("container") 538 local minimap = zoobaby.entity:AddMiniMapEntity() 539 minimap:SetIcon("monkey_barrel.png") 540 zoobaby:AddComponent("follower") 541 zoobaby.components.inspectable.getstatus = function(zoobaby) 542 if not zoobaby:HasTag("followme") then 543 local brain = require "brains/abigailbrain" 544 zoobaby:SetBrain(brain) 545 zoobaby:RestartBrain() 546 zoobaby.components.follower:SetLeader(GetPlayer()) 547 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 548 zoobaby:AddTag("followme") 549 else 550 local brain = require "brains/frogbrain" 551 zoobaby:SetBrain(brain) 552 zoobaby:RestartBrain() 553 zoobaby.components.follower:SetLeader(nil) 554 zoobaby.AnimState:SetBloomEffectHandle("") 555 zoobaby:RemoveTag("followme") 556 end 557 end 558 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 559 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 560 end ) 561 zoobaby:AddComponent("lootdropper") 562 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 563 zoobaby:AddTag("zoobaby") 564 end 565 if target:HasTag("zoobaby4") then 566 local zoobaby = SpawnPrefab("butter") 567 local pt4 = target:GetPosition() 568 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 569 zoobaby.AnimState:SetBank("walrus") 570 zoobaby.AnimState:SetBuild("walrus_baby_build") 571 zoobaby.AnimState:PlayAnimation("idle_happy") 572 zoobaby.entity:AddSoundEmitter() 573 zoobaby.Transform:SetScale(0.8,0.8,0.8) 574 zoobaby:AddComponent("locomotor") 575 zoobaby.components.locomotor.walkspeed = 3 576 zoobaby.components.locomotor.runspeed = 6 577 zoobaby:SetStateGraph("SGwalrus") 578 zoobaby:AddTag("zoobaby4") 579 local brain = require "brains/frogbrain" 580 zoobaby:SetBrain(brain) 581 zoobaby.Transform:SetFourFaced() 582 MakeCharacterPhysics(zoobaby, 15, .5) 583 zoobaby:AddComponent("knownlocations") 584 zoobaby:AddComponent("combat") 585 zoobaby:AddComponent("health") 586 zoobaby.components.health:SetMaxHealth(100) 587 zoobaby:RemoveComponent("stackable") 588 zoobaby:RemoveComponent("inventoryitem") 589 zoobaby:RemoveComponent("edible") 590 zoobaby:RemoveComponent("perishable") 591 zoobaby:RemoveComponent("deployable") 592 zoobaby:RemoveComponent("container") 593 local minimap = zoobaby.entity:AddMiniMapEntity() 594 minimap:SetIcon("monkey_barrel.png") 595 zoobaby:AddComponent("follower") 596 zoobaby.components.inspectable.getstatus = function(zoobaby) 597 if not zoobaby:HasTag("followme") then 598 local brain = require "brains/abigailbrain" 599 zoobaby:SetBrain(brain) 600 zoobaby:RestartBrain() 601 zoobaby.components.follower:SetLeader(GetPlayer()) 602 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 603 zoobaby:AddTag("followme") 604 else 605 local brain = require "brains/frogbrain" 606 zoobaby:SetBrain(brain) 607 zoobaby:RestartBrain() 608 zoobaby.components.follower:SetLeader(nil) 609 zoobaby.AnimState:SetBloomEffectHandle("") 610 zoobaby:RemoveTag("followme") 611 end 612 end 613 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 614 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 615 end ) 616 zoobaby:AddComponent("lootdropper") 617 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 618 zoobaby:AddTag("zoobaby") 619 end 620 if target:HasTag("zoobaby5") then 621 local zoobaby = SpawnPrefab("butter") 622 local pt4 = target:GetPosition() 623 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 624 zoobaby.AnimState:SetBank("kiki") 625 zoobaby.AnimState:SetBuild("kiki_basic") 626 zoobaby.AnimState:PlayAnimation("idle_loop", true) 627 zoobaby.entity:AddSoundEmitter() 628 zoobaby.soundtype = "" 629 zoobaby.Transform:SetScale(1.2,1.2,1.2) 630 zoobaby:AddComponent("locomotor") 631 zoobaby.components.locomotor.walkspeed = 3 632 zoobaby.components.locomotor.runspeed = 6 633 zoobaby:SetStateGraph("SGmonkey") 634 zoobaby:AddTag("zoobaby5") 635 local brain = require "brains/frogbrain" 636 zoobaby:SetBrain(brain) 637 zoobaby.Transform:SetFourFaced() 638 MakeCharacterPhysics(zoobaby, 15, .5) 639 zoobaby:AddComponent("knownlocations") 640 zoobaby:AddComponent("combat") 641 zoobaby:AddComponent("health") 642 zoobaby.components.health:SetMaxHealth(100) 643 zoobaby:RemoveComponent("stackable") 644 zoobaby:RemoveComponent("inventoryitem") 645 zoobaby:RemoveComponent("edible") 646 zoobaby:RemoveComponent("perishable") 647 zoobaby:RemoveComponent("deployable") 648 zoobaby:RemoveComponent("container") 649 local minimap = zoobaby.entity:AddMiniMapEntity() 650 minimap:SetIcon("monkey_barrel.png") 651 zoobaby:AddComponent("follower") 652 zoobaby.components.inspectable.getstatus = function(zoobaby) 653 if not zoobaby:HasTag("followme") then 654 local brain = require "brains/abigailbrain" 655 zoobaby:SetBrain(brain) 656 zoobaby:RestartBrain() 657 zoobaby.components.follower:SetLeader(GetPlayer()) 658 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 659 zoobaby:AddTag("followme") 660 else 661 local brain = require "brains/frogbrain" 662 zoobaby:SetBrain(brain) 663 zoobaby:RestartBrain() 664 zoobaby.components.follower:SetLeader(nil) 665 zoobaby.AnimState:SetBloomEffectHandle("") 666 zoobaby:RemoveTag("followme") 667 end 668 end 669 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 670 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 671 end ) 672 zoobaby:AddComponent("lootdropper") 673 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 674 zoobaby:AddTag("zoobaby") 675 end 676 end 677 else 678 target.components.health:Kill() 679 end 680 end 681 end ) 682 zooroom:AddComponent("workable") 683 zooroom.components.workable:SetWorkAction(ACTIONS.HAMMER) 684 zooroom.components.workable:SetWorkLeft(3) 685 zooroom.components.workable:SetOnFinishCallback(function(zooroom) 686 local pos = Vector3(zooroom.Transform:GetWorldPosition()) 687 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) 688 for k,v in pairs(ents) do 689 if v:HasTag("zoofence") or v:HasTag("brand") then 690 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 691 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 692 v:Remove() 693 end 694 end 695 zooroom:Remove() 696 end ) 697 local pt0 = Vector3(zooroom.Transform:GetWorldPosition()) 698 for k = 1, 40 do 699 local result_offset = FindValidPositionByFan(1 * 2 * PI, 8, 40, function(offset) 700 local x,y,z = (pt0 + offset):Get() 701 local ents = TheSim:FindEntities(x,y,z , 1) 702 return not next(ents) 703 end) 704 if result_offset then 705 local zoofence = SpawnPrefab("butter") 706 zoofence.AnimState:SetBank("wall") 707 zoofence.AnimState:SetBuild("wall_wood") 708 zoofence.AnimState:PlayAnimation("1_2", false) 709 MakeObstaclePhysics(zoofence, .5) 710 zoofence:RemoveComponent("stackable") 711 zoofence:RemoveComponent("inventoryitem") 712 zoofence:RemoveComponent("edible") 713 zoofence:RemoveComponent("perishable") 714 zoofence:RemoveComponent("deployable") 715 zoofence:RemoveComponent("container") 716 zoofence:AddTag("zoofence") 717 zoofence.Transform:SetPosition((pt0 + result_offset):Get()) 718 zoofence.components.inspectable.getstatus = function(zoofence) 719 zoofence.Transform:SetScale(1, 0.1, 1) 720 zoofence.Physics:SetActive(false) 721 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 722 zoofence:DoTaskInTime(5, function(zoofence) 723 zoofence.Transform:SetScale(1, 1, 1) 724 zoofence.Physics:SetActive(true) 725 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 726 end ) 727 end 728 end 729 end 730 inst.components.stackable:Get():Remove() 731end 732 inst:AddComponent("deployable") 733 inst.components.deployable.ondeploy = OnDeploy 734 inst:AddComponent("container") 735 inst.components.container:SetNumSlots(#slotpos) 736 inst.components.container.widgetslotpos = slotpos 737 inst.components.container.widgetpos = Vector3(0,180,0) 738 inst.components.container.side_align_tip = 160 739 inst.components.container.itemtestfn = itemtest 740 inst.components.container.canbeopened = false 741 inst.components.container.widgetbuttoninfo = widgetbuttoninfo 742local function onsave(inst, data) 743 if inst:HasTag("brand") then 744 data.brand = true 745 end 746 if inst:HasTag("zooroom") then 747 data.zooroom = true 748 end 749 if inst:HasTag("zoofence") then 750 data.zoofence = true 751 end 752 if inst:HasTag("zoobaby1") then 753 data.zoobaby1 = true 754 end 755 if inst:HasTag("zoobaby2") then 756 data.zoobaby2 = true 757 end 758 if inst:HasTag("zoobaby3") then 759 data.zoobaby3 = true 760 end 761 if inst:HasTag("zoobaby4") then 762 data.zoobaby4 = true 763 end 764 if inst:HasTag("zoobaby5") then 765 data.zoobaby5 = true 766 end 767 if inst:HasTag("followme") then 768 data.followme = true 769 end 770end 771local function onload(inst, data) 772 if data and data.brand then 773 inst.AnimState:SetBank("sign_home") 774 inst.AnimState:SetBuild("sign_home") 775 inst.AnimState:PlayAnimation("idle") 776 inst.Transform:SetScale(0.8, 0.8, 0.8) 777 inst.AnimState:SetMultColour(0/255,255/255,0/255,1) 778 inst:RemoveComponent("stackable") 779 inst:RemoveComponent("inventoryitem") 780 inst:RemoveComponent("edible") 781 inst:RemoveComponent("perishable") 782 inst:RemoveComponent("deployable") 783 inst:RemoveComponent("container") 784 inst:AddTag("brand") 785 local slotpos1 = { Vector3(0,-75,0)} 786 inst:AddComponent("container") 787 inst.components.container:SetNumSlots(#slotpos1) 788 inst.components.container.widgetslotpos = slotpos1 789 inst.components.container.widgetpos = Vector3(0,180,0) 790 inst.components.container.side_align_tip = 160 791 inst.components.container.acceptsstacks = false 792 inst.components.container.itemtestfn = function(inst, item, slot) 793 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 794 return true 795 end 796 return false 797 end 798 inst.components.container.widgetbuttoninfo = { 799 text = "Buy", 800 position = Vector3(0, -145, 0), 801 fn = function(inst) 802 if GetPlayer().components.inventory:Has("goldnugget", 30) then 803 if inst.components.container:Has("charcoal", 1) then 804 inst.components.container:ConsumeByName("charcoal", 1) 805 local zoobaby = SpawnPrefab("butter") 806 local pt1 = inst:GetPosition() 807 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 808 zoobaby.AnimState:SetBank("krampus") 809 zoobaby.AnimState:SetBuild("krampus_build") 810 zoobaby.AnimState:PlayAnimation("idle", true) 811 zoobaby.entity:AddSoundEmitter() 812 zoobaby.AnimState:Hide("SACK") 813 zoobaby.AnimState:Show("ARM") 814 zoobaby.Transform:SetScale(0.7,0.7,0.7) 815 zoobaby:AddComponent("locomotor") 816 zoobaby.components.locomotor.walkspeed = 3 817 zoobaby.components.locomotor.runspeed = 6 818 zoobaby:SetStateGraph("SGkrampus") 819 zoobaby:AddTag("zoobaby1") 820 local brain = require "brains/frogbrain" 821 zoobaby:SetBrain(brain) 822 zoobaby.Transform:SetFourFaced() 823 MakeCharacterPhysics(zoobaby, 15, .5) 824 zoobaby:AddComponent("knownlocations") 825 zoobaby:AddComponent("combat") 826 zoobaby:AddComponent("health") 827 zoobaby.components.health:SetMaxHealth(100) 828 zoobaby:RemoveComponent("stackable") 829 zoobaby:RemoveComponent("inventoryitem") 830 zoobaby:RemoveComponent("edible") 831 zoobaby:RemoveComponent("perishable") 832 zoobaby:RemoveComponent("deployable") 833 zoobaby:RemoveComponent("container") 834 local minimap = zoobaby.entity:AddMiniMapEntity() 835 minimap:SetIcon("monkey_barrel.png") 836 zoobaby:AddComponent("follower") 837 zoobaby.components.inspectable.getstatus = function(zoobaby) 838 if not zoobaby:HasTag("followme") then 839 local brain = require "brains/abigailbrain" 840 zoobaby:SetBrain(brain) 841 zoobaby:RestartBrain() 842 zoobaby.components.follower:SetLeader(GetPlayer()) 843 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 844 zoobaby:AddTag("followme") 845 else 846 local brain = require "brains/frogbrain" 847 zoobaby:SetBrain(brain) 848 zoobaby:RestartBrain() 849 zoobaby.components.follower:SetLeader(nil) 850 zoobaby.AnimState:SetBloomEffectHandle("") 851 zoobaby:RemoveTag("followme") 852 end 853 end 854 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 855 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 856 end ) 857 zoobaby:AddComponent("lootdropper") 858 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 859 zoobaby:AddTag("zoobaby") 860 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 861 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 862 end 863 if inst.components.container:Has("trunk_summer", 1) then 864 inst.components.container:ConsumeByName("trunk_summer", 1) 865 local zoobaby = SpawnPrefab("butter") 866 local pt1 = inst:GetPosition() 867 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 868 zoobaby.AnimState:SetBank("koalefant") 869 zoobaby.AnimState:SetBuild("koalefant_summer_build") 870 zoobaby.AnimState:PlayAnimation("idle_loop", true) 871 zoobaby.entity:AddSoundEmitter() 872 zoobaby.Transform:SetScale(0.5,0.5,0.5) 873 zoobaby:AddComponent("locomotor") 874 zoobaby.components.locomotor.walkspeed = 3 875 zoobaby.components.locomotor.runspeed = 6 876 zoobaby:SetStateGraph("SGkoalefant") 877 zoobaby:AddTag("zoobaby2") 878 local brain = require "brains/frogbrain" 879 zoobaby:SetBrain(brain) 880 zoobaby.Transform:SetFourFaced() 881 MakeCharacterPhysics(zoobaby, 15, .5) 882 zoobaby:AddComponent("knownlocations") 883 zoobaby:AddComponent("combat") 884 zoobaby:AddComponent("health") 885 zoobaby.components.health:SetMaxHealth(100) 886 zoobaby:RemoveComponent("stackable") 887 zoobaby:RemoveComponent("inventoryitem") 888 zoobaby:RemoveComponent("edible") 889 zoobaby:RemoveComponent("perishable") 890 zoobaby:RemoveComponent("deployable") 891 zoobaby:RemoveComponent("container") 892 local minimap = zoobaby.entity:AddMiniMapEntity() 893 minimap:SetIcon("monkey_barrel.png") 894 zoobaby:AddComponent("follower") 895 zoobaby.components.inspectable.getstatus = function(zoobaby) 896 if not zoobaby:HasTag("followme") then 897 local brain = require "brains/abigailbrain" 898 zoobaby:SetBrain(brain) 899 zoobaby:RestartBrain() 900 zoobaby.components.follower:SetLeader(GetPlayer()) 901 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 902 zoobaby:AddTag("followme") 903 else 904 local brain = require "brains/frogbrain" 905 zoobaby:SetBrain(brain) 906 zoobaby:RestartBrain() 907 zoobaby.components.follower:SetLeader(nil) 908 zoobaby.AnimState:SetBloomEffectHandle("") 909 zoobaby:RemoveTag("followme") 910 end 911 end 912 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 913 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 914 end ) 915 zoobaby:AddComponent("lootdropper") 916 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 917 zoobaby:AddTag("zoobaby") 918 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 919 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 920 end 921 if inst.components.container:Has("trunk_winter", 1) then 922 inst.components.container:ConsumeByName("trunk_winter", 1) 923 local zoobaby = SpawnPrefab("butter") 924 local pt1 = inst:GetPosition() 925 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 926 zoobaby.AnimState:SetBank("koalefant") 927 zoobaby.AnimState:SetBuild("koalefant_winter_build") 928 zoobaby.AnimState:PlayAnimation("idle_loop", true) 929 zoobaby.entity:AddSoundEmitter() 930 zoobaby.Transform:SetScale(0.5,0.5,0.5) 931 zoobaby:AddComponent("locomotor") 932 zoobaby.components.locomotor.walkspeed = 3 933 zoobaby.components.locomotor.runspeed = 6 934 zoobaby:SetStateGraph("SGkoalefant") 935 zoobaby:AddTag("zoobaby3") 936 local brain = require "brains/frogbrain" 937 zoobaby:SetBrain(brain) 938 zoobaby.Transform:SetFourFaced() 939 MakeCharacterPhysics(zoobaby, 15, .5) 940 zoobaby:AddComponent("knownlocations") 941 zoobaby:AddComponent("combat") 942 zoobaby:AddComponent("health") 943 zoobaby.components.health:SetMaxHealth(100) 944 zoobaby:RemoveComponent("stackable") 945 zoobaby:RemoveComponent("inventoryitem") 946 zoobaby:RemoveComponent("edible") 947 zoobaby:RemoveComponent("perishable") 948 zoobaby:RemoveComponent("deployable") 949 zoobaby:RemoveComponent("container") 950 local minimap = zoobaby.entity:AddMiniMapEntity() 951 minimap:SetIcon("monkey_barrel.png") 952 zoobaby:AddComponent("follower") 953 zoobaby.components.inspectable.getstatus = function(zoobaby) 954 if not zoobaby:HasTag("followme") then 955 local brain = require "brains/abigailbrain" 956 zoobaby:SetBrain(brain) 957 zoobaby:RestartBrain() 958 zoobaby.components.follower:SetLeader(GetPlayer()) 959 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 960 zoobaby:AddTag("followme") 961 else 962 local brain = require "brains/frogbrain" 963 zoobaby:SetBrain(brain) 964 zoobaby:RestartBrain() 965 zoobaby.components.follower:SetLeader(nil) 966 zoobaby.AnimState:SetBloomEffectHandle("") 967 zoobaby:RemoveTag("followme") 968 end 969 end 970 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 971 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 972 end ) 973 zoobaby:AddComponent("lootdropper") 974 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 975 zoobaby:AddTag("zoobaby") 976 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 977 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 978 end 979 if inst.components.container:Has("walrus_tusk", 1) then 980 inst.components.container:ConsumeByName("walrus_tusk", 1) 981 local zoobaby = SpawnPrefab("butter") 982 local pt1 = inst:GetPosition() 983 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 984 zoobaby.AnimState:SetBank("walrus") 985 zoobaby.AnimState:SetBuild("walrus_baby_build") 986 zoobaby.AnimState:PlayAnimation("idle_happy") 987 zoobaby.entity:AddSoundEmitter() 988 zoobaby.Transform:SetScale(0.8,0.8,0.8) 989 zoobaby:AddComponent("locomotor") 990 zoobaby.components.locomotor.walkspeed = 3 991 zoobaby.components.locomotor.runspeed = 6 992 zoobaby:SetStateGraph("SGwalrus") 993 zoobaby:AddTag("zoobaby4") 994 local brain = require "brains/frogbrain" 995 zoobaby:SetBrain(brain) 996 zoobaby.Transform:SetFourFaced() 997 MakeCharacterPhysics(zoobaby, 15, .5) 998 zoobaby:AddComponent("knownlocations") 999 zoobaby:AddComponent("combat") 1000 zoobaby:AddComponent("health") 1001 zoobaby.components.health:SetMaxHealth(100) 1002 zoobaby:RemoveComponent("stackable") 1003 zoobaby:RemoveComponent("inventoryitem") 1004 zoobaby:RemoveComponent("edible") 1005 zoobaby:RemoveComponent("perishable") 1006 zoobaby:RemoveComponent("deployable") 1007 zoobaby:RemoveComponent("container") 1008 local minimap = zoobaby.entity:AddMiniMapEntity() 1009 minimap:SetIcon("monkey_barrel.png") 1010 zoobaby:AddComponent("follower") 1011 zoobaby.components.inspectable.getstatus = function(zoobaby) 1012 if not zoobaby:HasTag("followme") then 1013 local brain = require "brains/abigailbrain" 1014 zoobaby:SetBrain(brain) 1015 zoobaby:RestartBrain() 1016 zoobaby.components.follower:SetLeader(GetPlayer()) 1017 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1018 zoobaby:AddTag("followme") 1019 else 1020 local brain = require "brains/frogbrain" 1021 zoobaby:SetBrain(brain) 1022 zoobaby:RestartBrain() 1023 zoobaby.components.follower:SetLeader(nil) 1024 zoobaby.AnimState:SetBloomEffectHandle("") 1025 zoobaby:RemoveTag("followme") 1026 end 1027 end 1028 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1029 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1030 end ) 1031 zoobaby:AddComponent("lootdropper") 1032 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1033 zoobaby:AddTag("zoobaby") 1034 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 1035 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 1036 end 1037 if inst.components.container:Has("cave_banana", 1) then 1038 inst.components.container:ConsumeByName("cave_banana", 1) 1039 local zoobaby = SpawnPrefab("butter") 1040 local pt1 = inst:GetPosition() 1041 zoobaby.Transform:SetPosition(pt1.x-6, 0, pt1.z-6) 1042 zoobaby.AnimState:SetBank("kiki") 1043 zoobaby.AnimState:SetBuild("kiki_basic") 1044 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1045 zoobaby.entity:AddSoundEmitter() 1046 zoobaby.soundtype = "" 1047 zoobaby.Transform:SetScale(1.2,1.2,1.2) 1048 zoobaby:AddComponent("locomotor") 1049 zoobaby.components.locomotor.walkspeed = 3 1050 zoobaby.components.locomotor.runspeed = 6 1051 zoobaby:SetStateGraph("SGmonkey") 1052 zoobaby:AddTag("zoobaby5") 1053 local brain = require "brains/frogbrain" 1054 zoobaby:SetBrain(brain) 1055 zoobaby.Transform:SetFourFaced() 1056 MakeCharacterPhysics(zoobaby, 15, .5) 1057 zoobaby:AddComponent("knownlocations") 1058 zoobaby:AddComponent("combat") 1059 zoobaby:AddComponent("health") 1060 zoobaby.components.health:SetMaxHealth(100) 1061 zoobaby:RemoveComponent("stackable") 1062 zoobaby:RemoveComponent("inventoryitem") 1063 zoobaby:RemoveComponent("edible") 1064 zoobaby:RemoveComponent("perishable") 1065 zoobaby:RemoveComponent("deployable") 1066 zoobaby:RemoveComponent("container") 1067 local minimap = zoobaby.entity:AddMiniMapEntity() 1068 minimap:SetIcon("monkey_barrel.png") 1069 zoobaby:AddComponent("follower") 1070 zoobaby.components.inspectable.getstatus = function(zoobaby) 1071 if not zoobaby:HasTag("followme") then 1072 local brain = require "brains/abigailbrain" 1073 zoobaby:SetBrain(brain) 1074 zoobaby:RestartBrain() 1075 zoobaby.components.follower:SetLeader(GetPlayer()) 1076 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1077 zoobaby:AddTag("followme") 1078 else 1079 local brain = require "brains/frogbrain" 1080 zoobaby:SetBrain(brain) 1081 zoobaby:RestartBrain() 1082 zoobaby.components.follower:SetLeader(nil) 1083 zoobaby.AnimState:SetBloomEffectHandle("") 1084 zoobaby:RemoveTag("followme") 1085 end 1086 end 1087 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1088 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1089 end ) 1090 zoobaby:AddComponent("lootdropper") 1091 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1092 zoobaby:AddTag("zoobaby") 1093 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/research_available") 1094 GetPlayer().components.inventory:ConsumeByName("goldnugget", 30) 1095 end 1096 end 1097 end } 1098 end 1099 if data and data.zooroom then 1100 inst.AnimState:SetBank("rabbithouse") 1101 inst.AnimState:SetBuild("rabbit_house") 1102 inst.AnimState:PlayAnimation("idle", true) 1103 inst.Transform:SetScale(0.4, 0.4, 0.4) 1104 inst:RemoveComponent("stackable") 1105 inst:RemoveComponent("inventoryitem") 1106 inst:RemoveComponent("edible") 1107 inst:RemoveComponent("perishable") 1108 inst:RemoveComponent("deployable") 1109 inst.components.container.canbeopened = true 1110 inst.entity:AddLight() 1111 inst.Light:SetFalloff(1) 1112 inst.Light:SetIntensity(.8) 1113 inst.Light:SetRadius(15) 1114 inst.Light:SetColour(180/255, 195/255, 50/255) 1115 inst.Light:Enable(true) 1116 inst:AddTag("zooroom") 1117 inst:DoPeriodicTask(180, function(inst) 1118 local target = FindEntity(inst, 9, function(guy) 1119 return guy:HasTag("zoobaby") 1120 end ) 1121 if target then 1122 local target1 = FindEntity(inst, 9, function(guy) 1123 return guy.prefab == "poop" 1124 end ) 1125 if not target1 then 1126 for k = 1,math.random(5,10) do 1127 local pt2 = inst:GetPosition() 1128 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 1129 end 1130 else 1131 for k = 1,math.random(1,3) do 1132 local pt2 = inst:GetPosition() 1133 SpawnPrefab("goldnugget").Transform:SetPosition(pt2.x+7.5, 0, pt2.z+7.5) 1134 end 1135 end 1136 if inst.components.container:Has("carrot", 3) then 1137 inst.components.container:ConsumeByName("carrot", 3) 1138 if math.random()<0.1 then 1139 if target:HasTag("zoobaby1") then 1140 local zoobaby = SpawnPrefab("butter") 1141 local pt4 = target:GetPosition() 1142 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1143 zoobaby.AnimState:SetBank("krampus") 1144 zoobaby.AnimState:SetBuild("krampus_build") 1145 zoobaby.AnimState:PlayAnimation("idle", true) 1146 zoobaby.entity:AddSoundEmitter() 1147 zoobaby.AnimState:Hide("SACK") 1148 zoobaby.AnimState:Show("ARM") 1149 zoobaby.Transform:SetScale(0.7,0.7,0.7) 1150 zoobaby:AddComponent("locomotor") 1151 zoobaby.components.locomotor.walkspeed = 3 1152 zoobaby.components.locomotor.runspeed = 6 1153 zoobaby:SetStateGraph("SGkrampus") 1154 zoobaby:AddTag("zoobaby1") 1155 local brain = require "brains/frogbrain" 1156 zoobaby:SetBrain(brain) 1157 zoobaby.Transform:SetFourFaced() 1158 MakeCharacterPhysics(zoobaby, 15, .5) 1159 zoobaby:AddComponent("knownlocations") 1160 zoobaby:AddComponent("combat") 1161 zoobaby:AddComponent("health") 1162 zoobaby.components.health:SetMaxHealth(100) 1163 zoobaby:RemoveComponent("stackable") 1164 zoobaby:RemoveComponent("inventoryitem") 1165 zoobaby:RemoveComponent("edible") 1166 zoobaby:RemoveComponent("perishable") 1167 zoobaby:RemoveComponent("deployable") 1168 zoobaby:RemoveComponent("container") 1169 local minimap = zoobaby.entity:AddMiniMapEntity() 1170 minimap:SetIcon("monkey_barrel.png") 1171 zoobaby:AddComponent("follower") 1172 zoobaby.components.inspectable.getstatus = function(zoobaby) 1173 if not zoobaby:HasTag("followme") then 1174 local brain = require "brains/abigailbrain" 1175 zoobaby:SetBrain(brain) 1176 zoobaby:RestartBrain() 1177 zoobaby.components.follower:SetLeader(GetPlayer()) 1178 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1179 zoobaby:AddTag("followme") 1180 else 1181 local brain = require "brains/frogbrain" 1182 zoobaby:SetBrain(brain) 1183 zoobaby:RestartBrain() 1184 zoobaby.components.follower:SetLeader(nil) 1185 zoobaby.AnimState:SetBloomEffectHandle("") 1186 zoobaby:RemoveTag("followme") 1187 end 1188 end 1189 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1190 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1191 end ) 1192 zoobaby:AddComponent("lootdropper") 1193 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1194 zoobaby:AddTag("zoobaby") 1195 end 1196 if target:HasTag("zoobaby2") then 1197 local zoobaby = SpawnPrefab("butter") 1198 local pt4 = target:GetPosition() 1199 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1200 zoobaby.AnimState:SetBank("koalefant") 1201 zoobaby.AnimState:SetBuild("koalefant_summer_build") 1202 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1203 zoobaby.entity:AddSoundEmitter() 1204 zoobaby.Transform:SetScale(0.5,0.5,0.5) 1205 zoobaby:AddComponent("locomotor") 1206 zoobaby.components.locomotor.walkspeed = 3 1207 zoobaby.components.locomotor.runspeed = 6 1208 zoobaby:SetStateGraph("SGkoalefant") 1209 zoobaby:AddTag("zoobaby2") 1210 local brain = require "brains/frogbrain" 1211 zoobaby:SetBrain(brain) 1212 zoobaby.Transform:SetFourFaced() 1213 MakeCharacterPhysics(zoobaby, 15, .5) 1214 zoobaby:AddComponent("knownlocations") 1215 zoobaby:AddComponent("combat") 1216 zoobaby:AddComponent("health") 1217 zoobaby.components.health:SetMaxHealth(100) 1218 zoobaby:RemoveComponent("stackable") 1219 zoobaby:RemoveComponent("inventoryitem") 1220 zoobaby:RemoveComponent("edible") 1221 zoobaby:RemoveComponent("perishable") 1222 zoobaby:RemoveComponent("deployable") 1223 zoobaby:RemoveComponent("container") 1224 local minimap = zoobaby.entity:AddMiniMapEntity() 1225 minimap:SetIcon("monkey_barrel.png") 1226 zoobaby:AddComponent("follower") 1227 zoobaby.components.inspectable.getstatus = function(zoobaby) 1228 if not zoobaby:HasTag("followme") then 1229 local brain = require "brains/abigailbrain" 1230 zoobaby:SetBrain(brain) 1231 zoobaby:RestartBrain() 1232 zoobaby.components.follower:SetLeader(GetPlayer()) 1233 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1234 zoobaby:AddTag("followme") 1235 else 1236 local brain = require "brains/frogbrain" 1237 zoobaby:SetBrain(brain) 1238 zoobaby:RestartBrain() 1239 zoobaby.components.follower:SetLeader(nil) 1240 zoobaby.AnimState:SetBloomEffectHandle("") 1241 zoobaby:RemoveTag("followme") 1242 end 1243 end 1244 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1245 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1246 end ) 1247 zoobaby:AddComponent("lootdropper") 1248 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1249 zoobaby:AddTag("zoobaby") 1250 end 1251 if target:HasTag("zoobaby3") then 1252 local zoobaby = SpawnPrefab("butter") 1253 local pt4 = target:GetPosition() 1254 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1255 zoobaby.AnimState:SetBank("koalefant") 1256 zoobaby.AnimState:SetBuild("koalefant_winter_build") 1257 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1258 zoobaby.entity:AddSoundEmitter() 1259 zoobaby.Transform:SetScale(0.5,0.5,0.5) 1260 zoobaby:AddComponent("locomotor") 1261 zoobaby.components.locomotor.walkspeed = 3 1262 zoobaby.components.locomotor.runspeed = 6 1263 zoobaby:SetStateGraph("SGkoalefant") 1264 zoobaby:AddTag("zoobaby3") 1265 local brain = require "brains/frogbrain" 1266 zoobaby:SetBrain(brain) 1267 zoobaby.Transform:SetFourFaced() 1268 MakeCharacterPhysics(zoobaby, 15, .5) 1269 zoobaby:AddComponent("knownlocations") 1270 zoobaby:AddComponent("combat") 1271 zoobaby:AddComponent("health") 1272 zoobaby.components.health:SetMaxHealth(100) 1273 zoobaby:RemoveComponent("stackable") 1274 zoobaby:RemoveComponent("inventoryitem") 1275 zoobaby:RemoveComponent("edible") 1276 zoobaby:RemoveComponent("perishable") 1277 zoobaby:RemoveComponent("deployable") 1278 zoobaby:RemoveComponent("container") 1279 local minimap = zoobaby.entity:AddMiniMapEntity() 1280 minimap:SetIcon("monkey_barrel.png") 1281 zoobaby:AddComponent("follower") 1282 zoobaby.components.inspectable.getstatus = function(zoobaby) 1283 if not zoobaby:HasTag("followme") then 1284 local brain = require "brains/abigailbrain" 1285 zoobaby:SetBrain(brain) 1286 zoobaby:RestartBrain() 1287 zoobaby.components.follower:SetLeader(GetPlayer()) 1288 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1289 zoobaby:AddTag("followme") 1290 else 1291 local brain = require "brains/frogbrain" 1292 zoobaby:SetBrain(brain) 1293 zoobaby:RestartBrain() 1294 zoobaby.components.follower:SetLeader(nil) 1295 zoobaby.AnimState:SetBloomEffectHandle("") 1296 zoobaby:RemoveTag("followme") 1297 end 1298 end 1299 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1300 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1301 end ) 1302 zoobaby:AddComponent("lootdropper") 1303 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1304 zoobaby:AddTag("zoobaby") 1305 end 1306 if target:HasTag("zoobaby4") then 1307 local zoobaby = SpawnPrefab("butter") 1308 local pt4 = target:GetPosition() 1309 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1310 zoobaby.AnimState:SetBank("walrus") 1311 zoobaby.AnimState:SetBuild("walrus_baby_build") 1312 zoobaby.AnimState:PlayAnimation("idle_happy") 1313 zoobaby.entity:AddSoundEmitter() 1314 zoobaby.Transform:SetScale(0.8,0.8,0.8) 1315 zoobaby:AddComponent("locomotor") 1316 zoobaby.components.locomotor.walkspeed = 3 1317 zoobaby.components.locomotor.runspeed = 6 1318 zoobaby:SetStateGraph("SGwalrus") 1319 zoobaby:AddTag("zoobaby4") 1320 local brain = require "brains/frogbrain" 1321 zoobaby:SetBrain(brain) 1322 zoobaby.Transform:SetFourFaced() 1323 MakeCharacterPhysics(zoobaby, 15, .5) 1324 zoobaby:AddComponent("knownlocations") 1325 zoobaby:AddComponent("combat") 1326 zoobaby:AddComponent("health") 1327 zoobaby.components.health:SetMaxHealth(100) 1328 zoobaby:RemoveComponent("stackable") 1329 zoobaby:RemoveComponent("inventoryitem") 1330 zoobaby:RemoveComponent("edible") 1331 zoobaby:RemoveComponent("perishable") 1332 zoobaby:RemoveComponent("deployable") 1333 zoobaby:RemoveComponent("container") 1334 local minimap = zoobaby.entity:AddMiniMapEntity() 1335 minimap:SetIcon("monkey_barrel.png") 1336 zoobaby:AddComponent("follower") 1337 zoobaby.components.inspectable.getstatus = function(zoobaby) 1338 if not zoobaby:HasTag("followme") then 1339 local brain = require "brains/abigailbrain" 1340 zoobaby:SetBrain(brain) 1341 zoobaby:RestartBrain() 1342 zoobaby.components.follower:SetLeader(GetPlayer()) 1343 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1344 zoobaby:AddTag("followme") 1345 else 1346 local brain = require "brains/frogbrain" 1347 zoobaby:SetBrain(brain) 1348 zoobaby:RestartBrain() 1349 zoobaby.components.follower:SetLeader(nil) 1350 zoobaby.AnimState:SetBloomEffectHandle("") 1351 zoobaby:RemoveTag("followme") 1352 end 1353 end 1354 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1355 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1356 end ) 1357 zoobaby:AddComponent("lootdropper") 1358 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1359 zoobaby:AddTag("zoobaby") 1360 end 1361 if target:HasTag("zoobaby5") then 1362 local zoobaby = SpawnPrefab("butter") 1363 local pt4 = target:GetPosition() 1364 zoobaby.Transform:SetPosition(pt4.x, 0, pt4.z) 1365 zoobaby.AnimState:SetBank("kiki") 1366 zoobaby.AnimState:SetBuild("kiki_basic") 1367 zoobaby.AnimState:PlayAnimation("idle_loop", true) 1368 zoobaby.entity:AddSoundEmitter() 1369 zoobaby.soundtype = "" 1370 zoobaby.Transform:SetScale(1.2,1.2,1.2) 1371 zoobaby:AddComponent("locomotor") 1372 zoobaby.components.locomotor.walkspeed = 3 1373 zoobaby.components.locomotor.runspeed = 6 1374 zoobaby:SetStateGraph("SGmonkey") 1375 zoobaby:AddTag("zoobaby5") 1376 local brain = require "brains/frogbrain" 1377 zoobaby:SetBrain(brain) 1378 zoobaby.Transform:SetFourFaced() 1379 MakeCharacterPhysics(zoobaby, 15, .5) 1380 zoobaby:AddComponent("knownlocations") 1381 zoobaby:AddComponent("combat") 1382 zoobaby:AddComponent("health") 1383 zoobaby.components.health:SetMaxHealth(100) 1384 zoobaby:RemoveComponent("stackable") 1385 zoobaby:RemoveComponent("inventoryitem") 1386 zoobaby:RemoveComponent("edible") 1387 zoobaby:RemoveComponent("perishable") 1388 zoobaby:RemoveComponent("deployable") 1389 zoobaby:RemoveComponent("container") 1390 local minimap = zoobaby.entity:AddMiniMapEntity() 1391 minimap:SetIcon("monkey_barrel.png") 1392 zoobaby:AddComponent("follower") 1393 zoobaby.components.inspectable.getstatus = function(zoobaby) 1394 if not zoobaby:HasTag("followme") then 1395 local brain = require "brains/abigailbrain" 1396 zoobaby:SetBrain(brain) 1397 zoobaby:RestartBrain() 1398 zoobaby.components.follower:SetLeader(GetPlayer()) 1399 zoobaby.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1400 zoobaby:AddTag("followme") 1401 else 1402 local brain = require "brains/frogbrain" 1403 zoobaby:SetBrain(brain) 1404 zoobaby:RestartBrain() 1405 zoobaby.components.follower:SetLeader(nil) 1406 zoobaby.AnimState:SetBloomEffectHandle("") 1407 zoobaby:RemoveTag("followme") 1408 end 1409 end 1410 zoobaby:DoPeriodicTask(math.random(360, 480), function(zoobaby) 1411 SpawnPrefab("poop").Transform:SetPosition(zoobaby.Transform:GetWorldPosition()) 1412 end ) 1413 zoobaby:AddComponent("lootdropper") 1414 zoobaby.components.lootdropper:SetLoot({"smallmeat"}) 1415 zoobaby:AddTag("zoobaby") 1416 end 1417 end 1418 else 1419 target.components.health:Kill() 1420 end 1421 end 1422 end ) 1423 inst:AddComponent("workable") 1424 inst.components.workable:SetWorkAction(ACTIONS.HAMMER) 1425 inst.components.workable:SetWorkLeft(3) 1426 inst.components.workable:SetOnFinishCallback(function(inst) 1427 local pos = Vector3(inst.Transform:GetWorldPosition()) 1428 local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 10) 1429 for k,v in pairs(ents) do 1430 if v:HasTag("zoofence") or v:HasTag("brand") then 1431 SpawnPrefab("collapse_big").Transform:SetPosition(v.Transform:GetWorldPosition()) 1432 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 1433 v:Remove() 1434 end 1435 end 1436 inst:Remove() 1437 end ) 1438 end 1439 if data and data.zoofence then 1440 inst.AnimState:SetBank("wall") 1441 inst.AnimState:SetBuild("wall_wood") 1442 inst.AnimState:PlayAnimation("1_2", false) 1443 MakeObstaclePhysics(inst, .5) 1444 inst:RemoveComponent("stackable") 1445 inst:RemoveComponent("inventoryitem") 1446 inst:RemoveComponent("edible") 1447 inst:RemoveComponent("perishable") 1448 inst:RemoveComponent("deployable") 1449 inst:RemoveComponent("container") 1450 inst:AddTag("zoofence") 1451 inst.components.inspectable.getstatus = function(inst) 1452 inst.Transform:SetScale(1, 0.1, 1) 1453 inst.Physics:SetActive(false) 1454 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 1455 inst:DoTaskInTime(5, function(inst) 1456 inst.Transform:SetScale(1, 1, 1) 1457 inst.Physics:SetActive(true) 1458 GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood") 1459 end ) 1460 end 1461 end 1462 if data and data.zoobaby1 then 1463 inst.AnimState:SetBank("krampus") 1464 inst.AnimState:SetBuild("krampus_build") 1465 inst.AnimState:PlayAnimation("idle", true) 1466 inst.entity:AddSoundEmitter() 1467 inst.AnimState:Hide("SACK") 1468 inst.AnimState:Show("ARM") 1469 inst.Transform:SetScale(0.7,0.7,0.7) 1470 inst:AddComponent("locomotor") 1471 inst.components.locomotor.walkspeed = 3 1472 inst.components.locomotor.runspeed = 6 1473 inst:SetStateGraph("SGkrampus") 1474 inst:AddTag("zoobaby1") 1475 local brain = require "brains/frogbrain" 1476 inst:SetBrain(brain) 1477 inst.Transform:SetFourFaced() 1478 MakeCharacterPhysics(inst, 15, .5) 1479 inst:AddComponent("knownlocations") 1480 inst:AddComponent("combat") 1481 inst:AddComponent("health") 1482 inst.components.health:SetMaxHealth(100) 1483 inst:RemoveComponent("stackable") 1484 inst:RemoveComponent("inventoryitem") 1485 inst:RemoveComponent("edible") 1486 inst:RemoveComponent("perishable") 1487 inst:RemoveComponent("deployable") 1488 inst:RemoveComponent("container") 1489 local minimap = inst.entity:AddMiniMapEntity() 1490 minimap:SetIcon("monkey_barrel.png") 1491 inst:AddComponent("follower") 1492 inst.components.inspectable.getstatus = function(inst) 1493 if not inst:HasTag("followme") then 1494 local brain = require "brains/abigailbrain" 1495 inst:SetBrain(brain) 1496 inst:RestartBrain() 1497 inst.components.follower:SetLeader(GetPlayer()) 1498 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1499 inst:AddTag("followme") 1500 else 1501 local brain = require "brains/frogbrain" 1502 inst:SetBrain(brain) 1503 inst:RestartBrain() 1504 inst.components.follower:SetLeader(nil) 1505 inst.AnimState:SetBloomEffectHandle("") 1506 inst:RemoveTag("followme") 1507 end 1508 end 1509 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1510 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1511 end ) 1512 inst:AddComponent("lootdropper") 1513 inst.components.lootdropper:SetLoot({"smallmeat"}) 1514 inst:AddTag("zoobaby") 1515 end 1516 if data and data.zoobaby2 then 1517 inst.AnimState:SetBank("koalefant") 1518 inst.AnimState:SetBuild("koalefant_summer_build") 1519 inst.AnimState:PlayAnimation("idle_loop", true) 1520 inst.entity:AddSoundEmitter() 1521 inst.Transform:SetScale(0.5,0.5,0.5) 1522 inst:AddComponent("locomotor") 1523 inst.components.locomotor.walkspeed = 3 1524 inst.components.locomotor.runspeed = 6 1525 inst:SetStateGraph("SGkoalefant") 1526 inst:AddTag("zoobaby2") 1527 local brain = require "brains/frogbrain" 1528 inst:SetBrain(brain) 1529 inst.Transform:SetFourFaced() 1530 MakeCharacterPhysics(inst, 15, .5) 1531 inst:AddComponent("knownlocations") 1532 inst:AddComponent("combat") 1533 inst:AddComponent("health") 1534 inst.components.health:SetMaxHealth(100) 1535 inst:RemoveComponent("stackable") 1536 inst:RemoveComponent("inventoryitem") 1537 inst:RemoveComponent("edible") 1538 inst:RemoveComponent("perishable") 1539 inst:RemoveComponent("deployable") 1540 inst:RemoveComponent("container") 1541 local minimap = inst.entity:AddMiniMapEntity() 1542 minimap:SetIcon("monkey_barrel.png") 1543 inst:AddComponent("follower") 1544 inst.components.inspectable.getstatus = function(inst) 1545 if not inst:HasTag("followme") then 1546 local brain = require "brains/abigailbrain" 1547 inst:SetBrain(brain) 1548 inst:RestartBrain() 1549 inst.components.follower:SetLeader(GetPlayer()) 1550 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1551 inst:AddTag("followme") 1552 else 1553 local brain = require "brains/frogbrain" 1554 inst:SetBrain(brain) 1555 inst:RestartBrain() 1556 inst.components.follower:SetLeader(nil) 1557 inst.AnimState:SetBloomEffectHandle("") 1558 inst:RemoveTag("followme") 1559 end 1560 end 1561 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1562 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1563 end ) 1564 inst:AddComponent("lootdropper") 1565 inst.components.lootdropper:SetLoot({"smallmeat"}) 1566 inst:AddTag("zoobaby") 1567 end 1568 if data and data.zoobaby3 then 1569 inst.AnimState:SetBank("koalefant") 1570 inst.AnimState:SetBuild("koalefant_winter_build") 1571 inst.AnimState:PlayAnimation("idle_loop", true) 1572 inst.entity:AddSoundEmitter() 1573 inst.Transform:SetScale(0.5,0.5,0.5) 1574 inst:AddComponent("locomotor") 1575 inst.components.locomotor.walkspeed = 3 1576 inst.components.locomotor.runspeed = 6 1577 inst:SetStateGraph("SGkoalefant") 1578 inst:AddTag("zoobaby3") 1579 local brain = require "brains/frogbrain" 1580 inst:SetBrain(brain) 1581 inst.Transform:SetFourFaced() 1582 MakeCharacterPhysics(inst, 15, .5) 1583 inst:AddComponent("knownlocations") 1584 inst:AddComponent("combat") 1585 inst:AddComponent("health") 1586 inst.components.health:SetMaxHealth(100) 1587 inst:RemoveComponent("stackable") 1588 inst:RemoveComponent("inventoryitem") 1589 inst:RemoveComponent("edible") 1590 inst:RemoveComponent("perishable") 1591 inst:RemoveComponent("deployable") 1592 inst:RemoveComponent("container") 1593 local minimap = inst.entity:AddMiniMapEntity() 1594 minimap:SetIcon("monkey_barrel.png") 1595 inst:AddComponent("follower") 1596 inst.components.inspectable.getstatus = function(inst) 1597 if not inst:HasTag("followme") then 1598 local brain = require "brains/abigailbrain" 1599 inst:SetBrain(brain) 1600 inst:RestartBrain() 1601 inst.components.follower:SetLeader(GetPlayer()) 1602 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1603 inst:AddTag("followme") 1604 else 1605 local brain = require "brains/frogbrain" 1606 inst:SetBrain(brain) 1607 inst:RestartBrain() 1608 inst.components.follower:SetLeader(nil) 1609 inst.AnimState:SetBloomEffectHandle("") 1610 inst:RemoveTag("followme") 1611 end 1612 end 1613 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1614 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1615 end ) 1616 inst:AddComponent("lootdropper") 1617 inst.components.lootdropper:SetLoot({"smallmeat"}) 1618 inst:AddTag("zoobaby") 1619 end 1620 if data and data.zoobaby4 then 1621 inst.AnimState:SetBank("walrus") 1622 inst.AnimState:SetBuild("walrus_baby_build") 1623 inst.AnimState:PlayAnimation("idle_happy") 1624 inst.entity:AddSoundEmitter() 1625 inst.Transform:SetScale(0.8,0.8,0.8) 1626 inst:AddComponent("locomotor") 1627 inst.components.locomotor.walkspeed = 3 1628 inst.components.locomotor.runspeed = 6 1629 inst:SetStateGraph("SGwalrus") 1630 inst:AddTag("zoobaby4") 1631 local brain = require "brains/frogbrain" 1632 inst:SetBrain(brain) 1633 inst.Transform:SetFourFaced() 1634 MakeCharacterPhysics(inst, 15, .5) 1635 inst:AddComponent("knownlocations") 1636 inst:AddComponent("combat") 1637 inst:AddComponent("health") 1638 inst.components.health:SetMaxHealth(100) 1639 inst:RemoveComponent("stackable") 1640 inst:RemoveComponent("inventoryitem") 1641 inst:RemoveComponent("edible") 1642 inst:RemoveComponent("perishable") 1643 inst:RemoveComponent("deployable") 1644 inst:RemoveComponent("container") 1645 local minimap = inst.entity:AddMiniMapEntity() 1646 minimap:SetIcon("monkey_barrel.png") 1647 inst:AddComponent("follower") 1648 inst.components.inspectable.getstatus = function(inst) 1649 if not inst:HasTag("followme") then 1650 local brain = require "brains/abigailbrain" 1651 inst:SetBrain(brain) 1652 inst:RestartBrain() 1653 inst.components.follower:SetLeader(GetPlayer()) 1654 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1655 inst:AddTag("followme") 1656 else 1657 local brain = require "brains/frogbrain" 1658 inst:SetBrain(brain) 1659 inst:RestartBrain() 1660 inst.components.follower:SetLeader(nil) 1661 inst.AnimState:SetBloomEffectHandle("") 1662 inst:RemoveTag("followme") 1663 end 1664 end 1665 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1666 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1667 end ) 1668 inst:AddComponent("lootdropper") 1669 inst.components.lootdropper:SetLoot({"smallmeat"}) 1670 inst:AddTag("zoobaby") 1671 end 1672 if data and data.zoobaby5 then 1673 inst.AnimState:SetBank("kiki") 1674 inst.AnimState:SetBuild("kiki_basic") 1675 inst.AnimState:PlayAnimation("idle_loop", true) 1676 inst.entity:AddSoundEmitter() 1677 inst.soundtype = "" 1678 inst.Transform:SetScale(1.2,1.2,1.2) 1679 inst:AddComponent("locomotor") 1680 inst.components.locomotor.walkspeed = 3 1681 inst.components.locomotor.runspeed = 6 1682 inst:SetStateGraph("SGmonkey") 1683 inst:AddTag("zoobaby5") 1684 local brain = require "brains/frogbrain" 1685 inst:SetBrain(brain) 1686 inst.Transform:SetFourFaced() 1687 MakeCharacterPhysics(inst, 15, .5) 1688 inst:AddComponent("knownlocations") 1689 inst:AddComponent("combat") 1690 inst:AddComponent("health") 1691 inst.components.health:SetMaxHealth(100) 1692 inst:RemoveComponent("stackable") 1693 inst:RemoveComponent("inventoryitem") 1694 inst:RemoveComponent("edible") 1695 inst:RemoveComponent("perishable") 1696 inst:RemoveComponent("deployable") 1697 inst:RemoveComponent("container") 1698 local minimap = inst.entity:AddMiniMapEntity() 1699 minimap:SetIcon("monkey_barrel.png") 1700 inst:AddComponent("follower") 1701 inst.components.inspectable.getstatus = function(inst) 1702 if not inst:HasTag("followme") then 1703 local brain = require "brains/abigailbrain" 1704 inst:SetBrain(brain) 1705 inst:RestartBrain() 1706 inst.components.follower:SetLeader(GetPlayer()) 1707 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1708 inst:AddTag("followme") 1709 else 1710 local brain = require "brains/frogbrain" 1711 inst:SetBrain(brain) 1712 inst:RestartBrain() 1713 inst.components.follower:SetLeader(nil) 1714 inst.AnimState:SetBloomEffectHandle("") 1715 inst:RemoveTag("followme") 1716 end 1717 end 1718 inst:DoPeriodicTask(math.random(360, 480), function(inst) 1719 SpawnPrefab("poop").Transform:SetPosition(inst.Transform:GetWorldPosition()) 1720 end ) 1721 inst:AddComponent("lootdropper") 1722 inst.components.lootdropper:SetLoot({"smallmeat"}) 1723 inst:AddTag("zoobaby") 1724 end 1725 if data and data.followme then 1726 local brain = require "brains/abigailbrain" 1727 inst:SetBrain(brain) 1728 inst:RestartBrain() 1729 inst.components.follower:SetLeader(GetPlayer()) 1730 inst.AnimState:SetBloomEffectHandle("shaders/anim.ksh") 1731 inst:AddTag("followme") 1732 end 1733end 1734 inst.OnSave = onsave 1735 inst.OnLoad = onload 1736 1737 即可在开阔的空地上,用黄油种动物园,在身上有30个黄金时,用鼠标左键点牌子,可打开格子,放入木炭点Buy按钮,可买一只小龙,花费30个黄金;放入夏象鼻点Buy按钮,可买小红象;放入冬象鼻点Buy按钮,可买小蓝象;放入海象牙点Buy按钮,可买小海象;放入香蕉点Buy按钮,可买猴子。鼠标左键点木栅栏,可开门,5秒后自动关门。鼠标左键点中间的胡萝卜房可打开格子,放入小动物爱吃的胡萝卜(每天消耗9个),当格子里的胡萝卜不足3个时,圈里的动物将陆续饿死。当动物园里有动物时,每天都能收到15-30个黄金的门票钱(放在牌子前面),动物会产便便,如果不及时清扫,门票钱将下降为正常的1/3。如果食物充足,小动物还有一定概率会繁殖,点胡萝卜房格子上方的Sell按钮,可卖掉圈舍中的动物,每只20个黄金。如果动物跑出圈舍,或想带领动物转场,就用鼠标左键点动物(手里不要拿武器),它会跟随你,再次用鼠标左键点动物,可以取消跟随。动物在小地图上显示为猴子的图标。不想要动物园时,用锤子砸掉胡萝卜房即可。黄油可以打蝴蝶获得,如果修改了“巨型超市”,也可花1-3个黄金购得