Guest User

mcGeeBehavior

a guest
Aug 31st, 2011
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.31 KB | None | 0 0
  1. if(!isObject(EnemyMcGeeBehavior))
  2. {
  3. %template = new BehaviorTemplate(EnemyMcGeeBehavior);
  4.  
  5. %template.friendlyName = "EnemyMcGeeBehavior";
  6. %template.description = "EnemyMcGeeBehavior";
  7. %template.behaviorType = "EnemyBehavior";
  8.  
  9.  
  10. ///owner normal vertexes
  11. %template.addBehaviorField(edges, "", int, "4");
  12. %template.addBehaviorField(vertex1, "", Point2F, "-0.506 -0.658");
  13. %template.addBehaviorField(vertex2, "", Point2F, "0.516 -0.658");
  14. %template.addBehaviorField(vertex3, "", Point2F, "0.506 0.246");
  15. %template.addBehaviorField(vertex4, "", Point2F, "-0.467 0.260");
  16.  
  17. ///owner swipeing vertexes
  18. %template.addBehaviorField(pvertex1, "", Point2F, "0.501 0.196");
  19. %template.addBehaviorField(pvertex2, "", Point2F, "1.000 0.201");
  20. %template.addBehaviorField(pvertex3, "", Point2F, "1.00 0.452");
  21. %template.addBehaviorField(pvertex4, "", Point2F, "0.481 0.452");
  22.  
  23.  
  24. %template.addBehaviorField(Chip, "", object, "Chip", t2dSceneObject);
  25. %template.addBehaviorField(ChipsChip, "", object, "ChipsChip", t2dSceneObject);
  26. %template.addBehaviorField(ChipsEnemyTrigger, "", object, "ChipsEnemyTrigger", t2dSceneObject);
  27. %template.addBehaviorField(enemyChip, "", object, "enemyChip", t2dSceneObject);
  28. }
  29.  
  30. function EnemyMcGeeBehavior::onBehaviorAdd(%this)
  31. {
  32. %this.hitting = false;
  33. echo("%this.hitting" @ %this.hitting);
  34. $EnemySwipeCount = 0;
  35. $Enemy = %this.owner;
  36. $playersCollided = false;
  37.  
  38. ///set enemies velocity may
  39. $EnemyVelocity = 45;
  40. ///set Global Enemy
  41. $Enemy = %this.owner;
  42.  
  43. $playerCollCount = 0;
  44.  
  45. %this.schedule(1000, eRecover);
  46. echo("mm enemy behavior on add mm");
  47. echo("mm enemy behavior on add mm");
  48. echo("mm enemy behavior on add mm");
  49. echo("mm enemy behavior on add mm");
  50. echo("mm enemy behavior on add mm");
  51. echo("mm enemy behavior on add mm");
  52. echo("mm enemy behavior on add mm");
  53. echo("mm enemy behavior on add mm");
  54. echo("mm enemy behavior on add mm");
  55.  
  56. }
  57.  
  58. function EnemyMcGeeBehavior::onCollision(%srcObject, %dstObject, %srcRef, %dstRef, %time, %normal, %contacts, %points)
  59. {
  60. if(%dstObject.class $= "ChipClass")
  61. {
  62. echo("eMcG onColl::ChipClass");
  63. if($playersCollided != true)
  64. {
  65. if($ChipSwiping == true)
  66. {
  67. echo("eMcG $ChipSwiping");
  68. %srcObject.ChipSwipeAccount();
  69. %dstObject.setCollisionActive(false, false);
  70. //%srcObject.setCollisionActive(false, false);
  71. }
  72. if($EnemySwiping == true)
  73. {
  74. echo("eMcG $EnemySwiping");
  75. %srcObject.EnemySwipeAccount();
  76. %dstObject.setCollisionActive(false, false);
  77. //%srcObject.setCollisionActive(false, false);
  78. }
  79. }
  80.  
  81. else if($playersCollided == true)
  82. {
  83. echo("... playersCollided == false");
  84. return;
  85. }
  86.  
  87. }
  88. }
  89.  
  90. function EnemyMcGeeBehavior::ChipSwipeAccount(%this)
  91. {
  92. if(EnemySwiping == true)
  93. return;
  94.  
  95. echo("eMcG ChipSwipeAccount function");
  96. echo("$ChipSwiping should = 1 " @ $ChipSwiping);
  97. echo("eMcG % time " @ Sim::getCurrentTime());
  98. %eReaction = getRandom(1, 2);
  99. echo("eMcG ::%eReaction dictates enemy reaction if 1 def, 2 smacked");
  100. echo("eMcG %eReaction " @ %eReaction);
  101. if(%eReaction == 1)
  102. {
  103. echo("eMcG %eReaction == 1 so enemy defend.");
  104. //this means enemy succesfully defends
  105. %this.schedule(500, eRecover);
  106. %this.schedule(1000, reREreRE);
  107. $EnemyChangeState = true;
  108. $EnemyDefending = true;
  109. $EnemySmacked = false;
  110. ///will also have to change eChip mount pos.
  111. /*%this.enemyChip.mount($Enemy, -3, -3, true);*/
  112.  
  113. }
  114. else if(%eReaction == 2)
  115. {
  116. echo("eMcG %eReaction == 2 so enemy smacked.");
  117. //this means enemy is smacked
  118. %this.schedule(500, eRecover);
  119. %this.schedule(1000, reREreRE);
  120. $EnemyChangeState = true;
  121. $EnemyDefending = false;
  122. $EnemySmacked = true;
  123. //this means enemy loseshis chip
  124. %this.enemyChip.dismount();
  125. %this.enemyChip.setConstantForceY($Gravity);
  126. ///this var simply tells e to getChip uPon scheduled eRecover
  127. %this.lostChip = true;
  128. }
  129. }
  130.  
  131.  
  132. function EnemyMcGeeBehavior::reREreRE(%this)
  133. {
  134. echo("G G G Gggggg GGG gggg G G g g ");
  135. echo("G G G Gggggg GGG gggg G G g g ");
  136. echo("G G G Gggggg GGG gggg G G g g ");
  137. echo("G G G Gggggg GGG gggg G G g g ");
  138. echo("G G G Gggggg GGG gggg G G g g ");
  139. echo("G G G Gggggg GGG gggg G G g g ");
  140. echo("G G G Gggggg GGG gggg G G g g ");
  141. echo("G G G Gggggg GGG gggg G G g g ");
  142. }
  143.  
  144.  
  145. function EnemyMcGeeBehavior::eRecover(%this)
  146. {
  147. $Chip.setCollisionActive(true, true);
  148. echo("eMcG ::eRecover");
  149. echo("eMcG ::eRecover");
  150. echo("eMcG ::eRecover");
  151. echo("eMcG ::eRecover");
  152. return;
  153. if($EnemyMounted == true)
  154. {
  155. ///figure out time to drop chip.
  156. %ePos = $Enemy.position;
  157. if(%ePos > 10)
  158. {
  159. ///so walk right, drop
  160. $EnemyChangeState = true;
  161. $EnemyWalking = true;
  162. $EnemyWalkingRight = true;
  163. %this.schedule(1000, dropChip);
  164. }
  165. else if (%ePos < 10)
  166. {
  167. ///so walk left, drop.
  168. $EnemyChangeState = true;
  169. $EnemyWalking = true;
  170. $EnemyWalkingLeft = true;
  171. %this.schedule(1000, dropChip);
  172. }
  173. }
  174. else if($EnemyMounted == false)
  175. {
  176. $EnemyChangeState = true;
  177. $EnemyWalking = false;
  178. $EnemyWalkingLeft = true;
  179. $EnemyWalkingRight = true;
  180. $EnemyDefending = false;
  181. $EnemySmacking = false;
  182. }
  183. }
  184.  
  185. function EnemyMcGeeBehavior::dropChip(%this)
  186. {
  187. $EnemyChangeState = true;
  188. $EnemyWalking = false;
  189. $EnemyWalkingLeft = false;
  190. $EnemyWalkingRight = false;
  191.  
  192. %this.enemyChip.dismount();
  193. %this.enemyChip.setConstantForceY($Gravity);
  194. }
  195.  
  196. function EnemyMcGeeBehavior::ChipCollision(%this)
  197. {
  198.  
  199. if($ChipMounted == true || $EnemyMounted == true)
  200. {
  201. echo("Chip or Enemy Mounted. No Collision reaction.");
  202. echo("");
  203. return;
  204. }
  205.  
  206.  
  207. $playersCollided = true;
  208.  
  209. echo("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
  210.  
  211. %this.schedule(1000, allowPlayerCollisions);
  212.  
  213. $playerCollCount = $playerCollCount + 1;
  214. echo("$playerCollCount " @ $playerCollCount);
  215. $playersCollided = true;
  216. echo("+x+ $playersCollided " @ $playersCollided);
  217.  
  218. ////%enemyReaction ...Decked or Defend
  219. %enemyReaction = getRandom(1, 2);
  220. echo("++ %enemyReaction: detemines if enemy is Decked(1) or defends(2). = " @ %enemyReaction);
  221. ///need to set up random of how Enemy reacts
  222. //%EnemyDecked = 1;
  223. //%EnemyDefends = 2;
  224. if(%enemyReaction == 1)
  225. {
  226. echo("++ enemy is decked");
  227. ///set up global to show enemy react
  228. $EnemyChangeState = true;
  229. $EnemyWalking = false;
  230. $EnemySmacked = true;
  231. $EnemyDefend = false;
  232. echo("++enemy should be playing animayion HIT");
  233. %this.schedule(700, enemyRecover);
  234. return;
  235.  
  236. }
  237. else if(%enemyReaction == 2)
  238. {
  239. echo("++%enemyReaction == 2, therefore he defends");
  240. ///set up global to show enemy react
  241. $EnemyChangeState = true;
  242. $EnemyWalking = false;
  243. $EnemyDefend = true;
  244. $EnemySmacked = false;
  245. echo("++enemy should be playing animayion DEFEND");
  246. %this.schedule(700, enemyRecover);
  247. return;
  248. }
  249. }
  250.  
  251. function EnemyMcGeeBehavior::enemyRecover(%this)
  252. {
  253. echo("++ function EnemyMcGeeBehavior::Recover(%this)");
  254. $EnemyChangeState = true;
  255. $EnemyIdle = true;
  256. $EnemyDefend = false;
  257. $EnemyDecked = false;
  258.  
  259. %this.schedule(750, EnemyChooseTask);
  260. %this.schedule(2000, allowPlayerCollisions);
  261. }
  262.  
  263. function EnemyMcGeeBehavior::EnemyChooseTask(%this)
  264. {
  265. echo("++ function EnemyMcGeeBehavior::EnemyChooseTask(%this)");
  266. if($EnemyMounted == true)
  267. {
  268. $Enemy.setCollisionActive(false, false);
  269. %this.schedule(1000, turnOnEnemyCollision);
  270. %this.enemyChip.dismount();
  271. %this.enemyChip.setConstantForceY($Gravity);
  272. %this.schedule(500, enemyPickUpChip);
  273. }
  274. }
  275.  
  276. function EnemyMcGeeBehavior::enemyPickUpChip(%this)
  277. {
  278. if(EnemyOutOfChips == false)
  279. {
  280. $EnemyChangeState = true;
  281. $EnemyGoToPickUp = true;
  282. }
  283. }
  284.  
  285. function EnemyMcGeeBehavior::allowPlayerCollisions(%this)
  286. {
  287. echo("++ reset playerCollided to false... meaning player can now collide and (fight)");
  288. $Enemy.setCollisionActive(true, true);
  289. $Chip.setCollisionActive(true, true);
  290. $playersCollided = false;
  291. $noControl = false;
  292. return;
  293. }
  294.  
  295.  
  296.  
  297.  
  298. function EnemyMcGeeBehavior::ChipRecover(%this)
  299. {
  300. $noControl = false;
  301. $ChipDefending = false;
  302. $ChipSmacking = false;
  303. $EnemyChangeState = true;
  304. $EnemyWalking = true;
  305. $EnemySmacking = false;
  306.  
  307. %this.Chip.setDamping(0);
  308.  
  309. $Enemy.setCollisionActive(true, true);
  310.  
  311. if($ChipMounted == true)
  312. {
  313. %this.owner.mount(%this.Chip, 0.5, 0.17, 0, 0, 1, 0, 1);
  314. }
  315.  
  316. if($ChipHit == true)
  317. {
  318. $createNewChip = true;
  319. $ChipHit = false;
  320. }
  321. if($EnemyOutOfChips == true)
  322. {
  323. $EnemyWalking = false;
  324. }
  325.  
  326. }
  327.  
  328.  
  329. function EnemyMcGeeBehavior::pickUpChip(%this)
  330. {
  331. if($EnemyMounted == false)
  332. {
  333. $EnemyChangeState = true;
  334. $createNewEnemyChip = true;
  335. $EnemyRecovering = false;
  336. $EnemyWalking = true;
  337. $EnemyWalkingLeft = true;
  338. $EnemyMounted = false;
  339. $EnemyWalkingRight = false;
  340. }
  341. }
  342.  
  343.  
  344. function EnemyMcGeeBehavior::onWorldLimit(%this)
  345. {
  346. echo("enmey at world Limit :::::::: : : : : : : :x : : ");
  347.  
  348. $EnemyChangeState = true;
  349. $Enemy.setCollisionActive(false, false);
  350. %this.schedule(1550, turnOnCollisions);
  351.  
  352. if($EnemyWalkingLeft == true)
  353. {
  354. $EnemyWalkingLeft = false;
  355. $EnemyWalkingRight = true;
  356. }
  357. else if($EnemyWalkingRight == true)
  358. {
  359. $EnemyWalkingRight = false;
  360. $EnemyWalkingLeft = true;
  361. }
  362.  
  363. if($EnemyOutOfChips == true)
  364. {
  365. $EnemyWalking = false;
  366. $EnemyWalkingLeft = false;
  367. $EnemyWalkingRight = false;
  368. }
  369. }
Advertisement
Add Comment
Please, Sign In to add comment