animalbase.c 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  1. class AnimalBase extends DayZAnimal
  2. {
  3. protected ref ArrowManagerBase m_ArrowManager;
  4. void AnimalBase()
  5. {
  6. m_ArrowManager = new ArrowManagerBase(this);
  7. }
  8. override ArrowManagerBase GetArrowManager()
  9. {
  10. return m_ArrowManager;
  11. }
  12. override bool IsRefresherSignalingViable()
  13. {
  14. return false;
  15. }
  16. override bool IsSelfAdjustingTemperature()
  17. {
  18. return IsAlive();
  19. }
  20. override void DeathUpdate()
  21. {
  22. EntityAI dead_entity = EntityAI.Cast( GetGame().CreateObjectEx( GetDeadItemName(), GetPosition(), ECE_OBJECT_SWAP, RF_ORIGINAL ) );
  23. dead_entity.SetOrientation(GetOrientation());
  24. MiscGameplayFunctions.TransferItemProperties(this,dead_entity,true,true,true,true);
  25. if (!KeepHealthOnReplace())
  26. dead_entity.SetHealthMax("","Health");
  27. DeleteSafe();
  28. }
  29. }
  30. class Animal_BosTaurus extends AnimalBase
  31. {
  32. override void RegisterHitComponentsForAI()
  33. {
  34. m_DefaultHitComponent = "Zone_Chest";
  35. m_DefaultHitPositionComponent = "Pelvis";
  36. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 5);
  37. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Belly", 25);
  38. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  39. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  40. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  41. }
  42. override string CaptureSound()
  43. {
  44. return "CattleBellow_SoundSet";
  45. }
  46. override string ReleaseSound()
  47. {
  48. return "CattleMooA_SoundSet";
  49. }
  50. }
  51. class Animal_BosTaurusF extends Animal_BosTaurus {}
  52. class Animal_CanisLupus extends AnimalBase
  53. {
  54. override void RegisterHitComponentsForAI()
  55. {
  56. m_DefaultHitComponent = "Zone_Chest";
  57. m_DefaultHitPositionComponent = "Pelvis";
  58. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 2);
  59. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  60. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  61. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs_Back", 75);
  62. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs_Front", 70);
  63. }
  64. override bool IsDanger()
  65. {
  66. return true;
  67. }
  68. override string CaptureSound()
  69. {
  70. return "WolfWhimper_SoundSet";
  71. }
  72. override string ReleaseSound()
  73. {
  74. return "WolfBark_SoundSet";
  75. }
  76. }
  77. class Animal_CapraHircus extends AnimalBase
  78. {
  79. override void RegisterHitComponentsForAI()
  80. {
  81. m_DefaultHitComponent = "Zone_Chest";
  82. m_DefaultHitPositionComponent = "Pelvis";
  83. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 4);
  84. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  85. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  86. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  87. }
  88. override string CaptureSound()
  89. {
  90. return "GoatBleat_B_SoundSet";
  91. }
  92. override string ReleaseSound()
  93. {
  94. return "GoatBleat_A_SoundSet";
  95. }
  96. }
  97. class Animal_CapraHircusF extends Animal_CapraHircus {}
  98. class Animal_CapraHircus_Spooky extends Animal_CapraHircus
  99. {
  100. override string GetDestructionBehaviour()
  101. {
  102. return "DestructionEffectSpookyGoat";
  103. }
  104. override bool IsDestructionBehaviour()
  105. {
  106. return true;
  107. }
  108. #ifndef SERVER
  109. protected GoatLight m_EyeLight;
  110. override void EEInit()
  111. {
  112. if (!IsDamageDestroyed())//walking up to or connecting to already dead zombies check
  113. m_EyeLight = GoatLight.Cast(ScriptedLightBase.CreateLightAtObjMemoryPoint(GoatLight, this, "GoatLight"));
  114. }
  115. void ~Animal_CapraHircus_Spooky()
  116. {
  117. if (m_EyeLight)
  118. m_EyeLight.Destroy();
  119. }
  120. override void OnDamageDestroyed(int oldLevel)
  121. {
  122. if (m_EyeLight)
  123. m_EyeLight.FadeOut(15);
  124. }
  125. #endif
  126. override bool ResistContaminatedEffect()
  127. {
  128. return true;
  129. }
  130. }
  131. class Animal_CapreolusCapreolus extends AnimalBase
  132. {
  133. override void RegisterHitComponentsForAI()
  134. {
  135. m_DefaultHitComponent = "Zone_Chest";
  136. m_DefaultHitPositionComponent = "Pelvis";
  137. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 4);
  138. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  139. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  140. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  141. }
  142. override string CaptureSound()
  143. {
  144. return "HareSquawk_SoundSet";
  145. }
  146. override string ReleaseSound()
  147. {
  148. return "HareChirp_SoundSet";
  149. }
  150. }
  151. class Animal_CapreolusCapreolusF extends Animal_CapreolusCapreolus {}
  152. class Animal_CervusElaphus extends AnimalBase
  153. {
  154. override void RegisterHitComponentsForAI()
  155. {
  156. m_DefaultHitComponent = "Zone_Chest";
  157. m_DefaultHitPositionComponent = "Pelvis";
  158. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 2);
  159. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  160. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  161. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  162. }
  163. override string CaptureSound()
  164. {
  165. return "DeerBleat_SoundSet";
  166. }
  167. override string ReleaseSound()
  168. {
  169. return "DeerRoar_SoundSet";
  170. }
  171. }
  172. class Animal_CervusElaphusF extends Animal_CervusElaphus {}
  173. class Animal_RangiferTarandus extends AnimalBase
  174. {
  175. override void RegisterHitComponentsForAI()
  176. {
  177. m_DefaultHitComponent = "Zone_Chest";
  178. m_DefaultHitPositionComponent = "Pelvis";
  179. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 2);
  180. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  181. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  182. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  183. }
  184. override string CaptureSound()
  185. {
  186. return "DeerBleat_SoundSet";
  187. }
  188. override string ReleaseSound()
  189. {
  190. return "DeerRoar_SoundSet";
  191. }
  192. }
  193. class Animal_RangiferTarandusF extends Animal_RangiferTarandus {}
  194. class Animal_RangiferTarandus_Xmas extends Animal_RangiferTarandus {}
  195. class Animal_GallusGallusDomesticus extends AnimalBase
  196. {
  197. override void RegisterHitComponentsForAI()
  198. {
  199. m_DefaultHitComponent = "Spine";
  200. m_DefaultHitPositionComponent = "Spine";
  201. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Head", 1);
  202. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Head", 5);
  203. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Head", 20);
  204. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "LArm1", 33);
  205. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "RArm1", 33);
  206. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Spine", 70);
  207. }
  208. override string CaptureSound()
  209. {
  210. return "HenScream_SoundSet";
  211. }
  212. override string ReleaseSound()
  213. {
  214. return "HenCluck_X_SoundSet";
  215. }
  216. override bool ReplaceOnDeath()
  217. {
  218. return true;
  219. }
  220. override bool CanBeSkinned()
  221. {
  222. return false;
  223. }
  224. override string GetDeadItemName()
  225. {
  226. return "DeadRooster";
  227. }
  228. override bool KeepHealthOnReplace()
  229. {
  230. return false;
  231. }
  232. }
  233. class Animal_GallusGallusDomesticusF extends Animal_GallusGallusDomesticus
  234. {
  235. override string GetDeadItemName()
  236. {
  237. return "DeadChicken_Brown";
  238. }
  239. }
  240. class Animal_GallusGallusDomesticusF_Brown extends Animal_GallusGallusDomesticusF
  241. {
  242. override string GetDeadItemName()
  243. {
  244. return "DeadChicken_Brown";
  245. }
  246. }
  247. class Animal_GallusGallusDomesticusF_Spotted extends Animal_GallusGallusDomesticusF
  248. {
  249. override string GetDeadItemName()
  250. {
  251. return "DeadChicken_Spotted";
  252. }
  253. }
  254. class Animal_GallusGallusDomesticusF_White extends Animal_GallusGallusDomesticusF
  255. {
  256. override string GetDeadItemName()
  257. {
  258. return "DeadChicken_White";
  259. }
  260. }
  261. class Animal_OvisAries extends AnimalBase
  262. {
  263. override void RegisterHitComponentsForAI()
  264. {
  265. m_DefaultHitComponent = "Zone_Chest";
  266. m_DefaultHitPositionComponent = "Pelvis";
  267. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 4);
  268. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 15);
  269. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 55);
  270. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  271. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  272. }
  273. override string CaptureSound()
  274. {
  275. return "SheepBleat_E_SoundSet";
  276. }
  277. override string ReleaseSound()
  278. {
  279. return "SheepBleat_G_SoundSet";
  280. }
  281. }
  282. class Animal_OvisAriesF extends Animal_OvisAries {}
  283. class Animal_SusDomesticus extends AnimalBase
  284. {
  285. override void RegisterHitComponentsForAI()
  286. {
  287. m_DefaultHitComponent = "Zone_Spine";
  288. m_DefaultHitPositionComponent = "Spine1";
  289. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 5);
  290. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Belly", 25);
  291. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  292. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Chest", 50);
  293. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  294. }
  295. override string CaptureSound()
  296. {
  297. return "HogSqueal_SoundSet";
  298. }
  299. override string ReleaseSound()
  300. {
  301. return "HogGrunt_G_SoundSet";
  302. }
  303. }
  304. class Animal_SusScrofa extends AnimalBase
  305. {
  306. override void RegisterHitComponentsForAI()
  307. {
  308. m_DefaultHitComponent = "Zone_Spine";
  309. m_DefaultHitPositionComponent = "Pelvis";
  310. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 3);
  311. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 55);
  312. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Belly", 15);
  313. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  314. }
  315. override string CaptureSound()
  316. {
  317. return "HogSqueal_SoundSet";
  318. }
  319. override string ReleaseSound()
  320. {
  321. return "HogGrunt_G_SoundSet";
  322. }
  323. }
  324. class Animal_UrsusArctos extends AnimalBase
  325. {
  326. override void RegisterHitComponentsForAI()
  327. {
  328. m_DefaultHitComponent = "Zone_Head";
  329. m_DefaultHitPositionComponent = "Pelvis";
  330. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Head", 25);
  331. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Belly", 50);
  332. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Neck", 65);
  333. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Zone_Legs", 70);
  334. }
  335. override bool IsDanger()
  336. {
  337. return true;
  338. }
  339. override string CaptureSound()
  340. {
  341. return "BearSnarl_SoundSet";
  342. }
  343. override string ReleaseSound()
  344. {
  345. return "BearRoarShort_SoundSet";
  346. }
  347. }
  348. class Animal_LepusEuropaeus extends AnimalBase
  349. {
  350. override void RegisterHitComponentsForAI()
  351. {
  352. m_DefaultHitComponent = "Spine";
  353. m_DefaultHitPositionComponent = "Spine";
  354. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Head", 20);
  355. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "LFLeg2", 5);
  356. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "RFLeg2", 5);
  357. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Chest", 70);
  358. }
  359. override string CaptureSound()
  360. {
  361. return "HenScream_SoundSet";
  362. }
  363. override string ReleaseSound()
  364. {
  365. return "HenCluck_X_SoundSet";
  366. }
  367. override bool ReplaceOnDeath()
  368. {
  369. return true;
  370. }
  371. override bool CanBeSkinned()
  372. {
  373. return false;
  374. }
  375. override string GetDeadItemName()
  376. {
  377. return "DeadRabbit";
  378. }
  379. override bool KeepHealthOnReplace()
  380. {
  381. return false;
  382. }
  383. }
  384. class Animal_VulpesVulpes extends AnimalBase
  385. {
  386. override void RegisterHitComponentsForAI()
  387. {
  388. m_DefaultHitComponent = "Spine";
  389. m_DefaultHitPositionComponent = "Spine";
  390. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Head", 20);
  391. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "LFLeg2", 5);
  392. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "RFLeg2", 5);
  393. DayZAIHitComponentHelpers.RegisterHitComponent(m_HitComponentsForAI, "Chest", 70);
  394. }
  395. override string CaptureSound()
  396. {
  397. return "HenScream_SoundSet";
  398. }
  399. override string ReleaseSound()
  400. {
  401. return "HenCluck_X_SoundSet";
  402. }
  403. override bool ReplaceOnDeath()
  404. {
  405. return true;
  406. }
  407. override bool CanBeSkinned()
  408. {
  409. return false;
  410. }
  411. override string GetDeadItemName()
  412. {
  413. return "DeadFox";
  414. }
  415. override bool KeepHealthOnReplace()
  416. {
  417. return false;
  418. }
  419. }