代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接: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个黄金购得