Shuvit game master repo. http://shuvit.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

actionPlayer.py 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  1. import bge
  2. import actionsFSMlist
  3. import mathutils
  4. dict = bge.logic.globalDict
  5. zero_blend = False
  6. state_a = ['reg_idle',
  7. 'reg_idle2',
  8. 'reg_idle3',
  9. 'reg_idle4',
  10. 'reg_idle5',
  11. 'reg_idle6',
  12. 'reg_idle7',
  13. 'reg_roll',
  14. 'reg_turnLeft',
  15. 'reg_turnRight',
  16. 'reg_manual_left',
  17. 'reg_manual_right',
  18. 'reg_nmanual_left',
  19. 'reg_nmanual_right',
  20. 'reg_opos',
  21. 'reg_nopos',
  22. 'reg_pump',
  23. 'reg_pump_left',
  24. 'reg_pump_right',
  25. 'reg_manual',
  26. 'reg_nmanual',
  27. 'reg_air',
  28. 'reg_air_nb',
  29. 'reg_air_nose',
  30. 'reg_air_tail',
  31. 'reg_5050',
  32. 'reg_bsboard',
  33. 'reg_fsboard',
  34. 'reg_tailg',
  35. 'reg_tailgr',
  36. 'reg_tailgl',
  37. 'reg_noseg',
  38. 'reg_nosegr',
  39. 'reg_nosegl',
  40. 'reg_tailslide',
  41. 'reg_noseslide',
  42. 'fak_idle',
  43. 'fak_idle2',
  44. 'fak_idle3',
  45. 'fak_idle4',
  46. 'fak_idle5',
  47. 'fak_idle6',
  48. 'fak_idle7',
  49. 'fak_roll',
  50. 'fak_turnLeft',
  51. 'fak_turnRight',
  52. 'fak_manual_left',
  53. 'fak_manual_right',
  54. 'fak_nmanual_left',
  55. 'fak_nmanual_right',
  56. 'fak_opos',
  57. 'fak_nopos',
  58. 'fak_pump',
  59. 'fak_pump_left',
  60. 'fak_pump_right',
  61. 'fak_manual',
  62. 'fak_nmanual',
  63. 'fak_air',
  64. 'fak_air_nb',
  65. 'fak_air_nose',
  66. 'fak_air_tail',
  67. 'fak_5050',
  68. 'fak_bsboard',
  69. 'fak_fsboard',
  70. 'fak_tailg',
  71. 'fak_tailgr',
  72. 'fak_tailgl',
  73. 'fak_noseg',
  74. 'fak_nosegr',
  75. 'fak_nosegl',
  76. 'fak_tailslide',
  77. 'fak_noseslide',
  78. 'reg_ollie',
  79. 'reg_kickflip',
  80. 'reg_heelflip',
  81. 'reg_shuvit',
  82. 'reg_shuvit360',
  83. 'reg_fsshuvit',
  84. 'reg_fsshuvit360',
  85. 'reg_nollie',
  86. 'reg_nollie_kickflip',
  87. 'reg_nollie_heelflip',
  88. 'reg_nollie_shuvit',
  89. 'reg_nollie_fsshuvit',
  90. 'reg_nollie_shuvit360',
  91. 'reg_nollie_fsshuvit_360',
  92. 'reg_hardflip',
  93. 'reg_inward_heelflip',
  94. 'reg_varial_kickflip',
  95. 'reg_varial_heelflip',
  96. 'fak_ollie',
  97. 'fak_kickflip',
  98. 'fak_heelflip',
  99. 'fak_shuvit',
  100. 'fak_shuvit360',
  101. 'fak_fsshuvit',
  102. 'fak_fsshuvit360',
  103. 'fak_nollie',
  104. 'fak_nollie_kickflip',
  105. 'fak_nollie_heelflip',
  106. 'fak_nollie_shuvit',
  107. 'fak_nollie_fsshuvit',
  108. 'fak_nollie_shuvit360',
  109. 'fak_nollie_fsshuvit_360',
  110. 'fak_hardflip',
  111. 'fak_inward_heelflip',
  112. 'fak_varial_kickflip',
  113. 'fak_varial_heelflip']
  114. state_b = ['reg_jump',
  115. 'reg_walk_air',
  116. 'reg_walk_air_out',
  117. 'reg_onboard',
  118. 'reg_offboard',
  119. 'reg_brfoot',
  120. 'reg_frfoot',
  121. 'reg_blfoot',
  122. 'reg_flfoot',
  123. 'reg_land',
  124. 'reg_landL',
  125. 'reg_landLb',
  126. 'reg_landR',
  127. 'reg_landRb',
  128. 'revert1',
  129. 'revert2',
  130. 'fak_revert1',
  131. 'fak_revert2',
  132. 'revert3',
  133. 'revert4',
  134. 'fak_jump',
  135. 'fak_walk_air',
  136. 'fak_walk_air_out',
  137. 'fak_onboard',
  138. 'fak_offboard',
  139. 'fak_brfoot',
  140. 'fak_frfoot',
  141. 'fak_blfoot',
  142. 'fak_flfoot',
  143. 'fak_land',
  144. 'fak_landL',
  145. 'fak_landLb',
  146. 'fak_landR',
  147. 'fak_landRb']
  148. def actionPlayer(ac):
  149. scene = bge.logic.getCurrentScene()
  150. cont = bge.logic.getCurrentController()
  151. own = cont.owner
  152. skater = dict['p1']
  153. deck = dict['p1d']
  154. a = getattr(actionsFSMlist.reg_walk, 'name')
  155. name = getattr(ac, 'name')
  156. dname = getattr(ac, 'dname')
  157. start = getattr(ac, 'start')
  158. end = getattr(ac, 'end')
  159. dstart = getattr(ac, 'dstart')
  160. dend = getattr(ac, 'dend')
  161. layer = getattr(ac, 'layer')
  162. mode = getattr(ac, 'mode')
  163. speed = getattr(ac, 'speed')
  164. blendin = getattr(ac, 'blendin')
  165. #--------------------------------
  166. #if zero_blend:
  167. # if own['l_actionState'] != None and own['l_actionState'] in 'revert1':
  168. # blendin = 0
  169. # print('zeroing blend')
  170. skater.playAction(name, start,end, layer=layer, play_mode=mode, speed=speed, blendin=blendin)
  171. deck.playAction(dname, dstart,dend, layer=layer, play_mode=mode, speed=speed, blendin=blendin)
  172. #print('playing', name, get_frame(ac))
  173. #if skater.isPlayingAction(3):
  174. #print(skater.getActionFrame(3))
  175. def get_frame(ac):
  176. skater = dict['p1']
  177. layer = getattr(ac, 'layer')
  178. #print('getting frame', skater.getActionFrame(layer))
  179. return skater.getActionFrame(layer)
  180. def set_frame(ac, frame):
  181. skater = dict['p1']
  182. deck = dict['p1d']
  183. layer = getattr(ac, 'layer')
  184. skater.setActionFrame(frame, layer)
  185. deck.setActionFrame(frame, layer)
  186. #print('setting frame', frame)
  187. def check_exit(aState, rA, timer, ac):
  188. exits = getattr(ac, 'exits')
  189. force = getattr(ac, 'force_exit')
  190. fe = getattr(ac, 'fef')
  191. rv = ''
  192. print('rA, aState', rA, aState, force, fe, timer)
  193. if rA in exits:
  194. rv = rA
  195. #
  196. elif ('fak' in rA and 'reg' in aState) or ('reg' in rA and 'fak' in aState):
  197. #print('change stance')
  198. if getattr(ac, 'opposite') != None:
  199. rv = getattr(ac, 'opposite')
  200. else:
  201. rv = aState
  202. if force != None and fe >= timer:
  203. print('doing exit timer')
  204. rv = force
  205. return rv
  206. def state_timer(own):
  207. if own['aState'] == own['l_aState']:
  208. own['stateTimer'] += 1
  209. else:
  210. own['stateTimer'] = 0
  211. def check_land(rA, aState, own):
  212. #check if manualling
  213. if rA in actionsFSMlist.reg_manuallist or rA in actionsFSMlist.reg_grindlist or rA in actionsFSMlist.fak_grindlist:
  214. #if rA in actionsFSMlist.reg_manuallist or rA in actionsFSMlist.fak_grindlist:
  215. aState = rA
  216. #own['stateTimer'] = 0
  217. own['aState'] = rA
  218. #otherwise, force land, offboard or fliptrick
  219. elif 'land' in rA or 'onboard' in rA or 'offboard' in rA or rA in actionsFSMlist.reg_fliplist or rA in actionsFSMlist.fak_fliplist or rA in actionsFSMlist.revertlist:
  220. #print('landing________________________', rA)
  221. aState = rA
  222. own['stateTimer'] = 0
  223. own['aState'] = rA
  224. #print(own['stance'], '-----stance', rA)
  225. return aState
  226. def main(cont):
  227. own = cont.owner
  228. dict = bge.logic.globalDict
  229. #initial state
  230. if 'aState' not in own:
  231. own['aState'] = 'reg_idle'
  232. own['l_aState'] = None
  233. own['stateTimer'] = 0
  234. aState = own['aState']
  235. rA = own['requestAction']
  236. timer = own['stateTimer']
  237. newState = own['aState']
  238. aState = check_land(rA, aState, own)
  239. newState = aState
  240. og_state = own['aState']
  241. if aState in state_a:
  242. action = getattr(actionsFSMlist, aState)
  243. if own['stateTimer'] < getattr(action, 'intro_frames'):
  244. intro = getattr(action, 'intro')
  245. actionPlayer(getattr(actionsFSMlist, intro))
  246. else:
  247. actionPlayer(action)
  248. newState = check_exit(aState, rA, timer, action)
  249. if aState in state_b:
  250. action = getattr(actionsFSMlist, aState)
  251. actionPlayer(action)
  252. if own['stateTimer'] > getattr(action, 'fef'):
  253. newState = check_exit(aState, rA, timer, action)
  254. ###################################
  255. check_state = 'reg_sit'
  256. if aState == check_state:
  257. action = getattr(actionsFSMlist, check_state)
  258. #if own['stateTimer'] < 19:
  259. if own['stateTimer'] < getattr(action, 'intro_frames'):
  260. actionPlayer(getattr(actionsFSMlist, 'intro'))
  261. else:
  262. actionPlayer(action)
  263. newState = check_exit(aState, rA, timer, actionsFSMlist.reg_sit)
  264. #-----------------------
  265. check_state = 'reg_walk'
  266. if aState == check_state:
  267. action = getattr(actionsFSMlist, check_state)
  268. if own['l_aState'] == 'reg_walkFast':
  269. frame = get_frame(actionsFSMlist.reg_walkFast)
  270. actionPlayer(action)
  271. set_frame(actionsFSMlist.reg_walk, frame)
  272. else:
  273. frame = actionPlayer(action)
  274. newState = check_exit(aState, rA, timer, action)
  275. #-----------------------
  276. check_state = 'reg_walkFast'
  277. if aState == check_state:
  278. action = getattr(actionsFSMlist, check_state)
  279. newState = check_exit(aState, rA, timer, actionsFSMlist.reg_walkFast)
  280. if own['l_aState'] == 'reg_walk':
  281. frame = get_frame(actionsFSMlist.reg_walk)
  282. actionPlayer(action)
  283. set_frame(actionsFSMlist.reg_walkFast, frame)
  284. else:
  285. actionPlayer(action)
  286. check_state = 'reg_push'
  287. if aState == check_state:
  288. action = getattr(actionsFSMlist, check_state)
  289. actionPlayer(action)
  290. if own['stateTimer'] > 70:
  291. newState = 'reg_roll'
  292. check_state = 'reg_push_goof'
  293. if aState == check_state:
  294. action = getattr(actionsFSMlist, check_state)
  295. actionPlayer(action)
  296. if own['stateTimer'] > 70:
  297. newState = 'reg_roll'
  298. check_state = 'reg_powerslide'
  299. if aState == check_state:
  300. action = getattr(actionsFSMlist, check_state)
  301. # if own['stateTimer'] < 20:
  302. # actionPlayer(actionsFSMlist.reg_powerslide_in)
  303. if own['stateTimer'] < getattr(action, 'intro_frames'):
  304. intro = getattr(action, 'intro')
  305. actionPlayer(getattr(actionsFSMlist, intro))
  306. else:
  307. actionPlayer(action)
  308. newState = check_exit(aState, rA, timer, actionsFSMlist.reg_powerslide)
  309. check_state = 'reg_fs_powerslide'
  310. if aState == check_state:
  311. action = getattr(actionsFSMlist, check_state)
  312. # if own['stateTimer'] < 20:
  313. # actionPlayer(actionsFSMlist.reg_fs_powerslide_in)
  314. if own['stateTimer'] < getattr(action, 'intro_frames'):
  315. intro = getattr(action, 'intro')
  316. actionPlayer(getattr(actionsFSMlist, intro))
  317. else:
  318. actionPlayer(action)
  319. newState = check_exit(aState, rA, timer, actionsFSMlist.reg_fs_powerslide)
  320. #-----------
  321. #grinds-----
  322. #-----------
  323. #-----------
  324. #grabs------
  325. #-----------
  326. check_state = 'frontside_grab'
  327. if aState == check_state:
  328. action = getattr(actionsFSMlist, check_state)
  329. if own['stateTimer'] < getattr(action, 'intro_frames'):
  330. intro = getattr(action, 'intro')
  331. actionPlayer(getattr(actionsFSMlist, intro))
  332. else:
  333. actionPlayer(action)
  334. newState = check_exit(aState, rA, timer, action)
  335. check_state = 'backside_grab'
  336. if aState == check_state:
  337. action = getattr(actionsFSMlist, check_state)
  338. if own['stateTimer'] < getattr(action, 'intro_frames'):
  339. intro = getattr(action, 'intro')
  340. actionPlayer(getattr(actionsFSMlist, intro))
  341. else:
  342. actionPlayer(action)
  343. newState = check_exit(aState, rA, timer, action)
  344. check_state = 'frontside_nose_grab'
  345. if aState == check_state:
  346. action = getattr(actionsFSMlist, check_state)
  347. if own['stateTimer'] < getattr(action, 'intro_frames'):
  348. intro = getattr(action, 'intro')
  349. actionPlayer(getattr(actionsFSMlist, intro))
  350. else:
  351. actionPlayer(action)
  352. newState = check_exit(aState, rA, timer, action)
  353. check_state = 'backside_nose_grab'
  354. if aState == check_state:
  355. action = getattr(actionsFSMlist, check_state)
  356. if own['stateTimer'] < getattr(action, 'intro_frames'):
  357. intro = getattr(action, 'intro')
  358. actionPlayer(getattr(actionsFSMlist, intro))
  359. else:
  360. actionPlayer(action)
  361. newState = check_exit(aState, rA, timer, action)
  362. check_state = 'frontside_tail_grab'
  363. if aState == check_state:
  364. action = getattr(actionsFSMlist, check_state)
  365. if own['stateTimer'] < getattr(action, 'intro_frames'):
  366. intro = getattr(action, 'intro')
  367. actionPlayer(getattr(actionsFSMlist, intro))
  368. else:
  369. actionPlayer(action)
  370. newState = check_exit(aState, rA, timer, action)
  371. check_state = 'backside_tail_grab'
  372. if aState == check_state:
  373. action = getattr(actionsFSMlist, check_state)
  374. if own['stateTimer'] < getattr(action, 'intro_frames'):
  375. intro = getattr(action, 'intro')
  376. actionPlayer(getattr(actionsFSMlist, intro))
  377. else:
  378. actionPlayer(action)
  379. newState = check_exit(aState, rA, timer, action)
  380. check_state = 'reg_ollie_north'
  381. if aState == check_state:
  382. action = getattr(actionsFSMlist, check_state)
  383. if own['stateTimer'] < getattr(action, 'intro_frames'):
  384. intro = getattr(action, 'intro')
  385. actionPlayer(getattr(actionsFSMlist, intro))
  386. else:
  387. actionPlayer(action)
  388. newState = check_exit(aState, rA, timer, action)
  389. check_state = 'reg_ollie_south'
  390. if aState == check_state:
  391. action = getattr(actionsFSMlist, check_state)
  392. if own['stateTimer'] < getattr(action, 'intro_frames'):
  393. intro = getattr(action, 'intro')
  394. actionPlayer(getattr(actionsFSMlist, intro))
  395. else:
  396. actionPlayer(action)
  397. newState = check_exit(aState, rA, timer, action)
  398. check_state = 'reg_judo'
  399. if aState == check_state:
  400. action = getattr(actionsFSMlist, check_state)
  401. if own['stateTimer'] < getattr(action, 'intro_frames'):
  402. intro = getattr(action, 'intro')
  403. actionPlayer(getattr(actionsFSMlist, intro))
  404. else:
  405. actionPlayer(action)
  406. newState = check_exit(aState, rA, timer, action)
  407. check_state = 'reg_frigid'
  408. if aState == check_state:
  409. action = getattr(actionsFSMlist, check_state)
  410. if own['stateTimer'] < getattr(action, 'intro_frames'):
  411. intro = getattr(action, 'intro')
  412. actionPlayer(getattr(actionsFSMlist, intro))
  413. else:
  414. actionPlayer(action)
  415. newState = check_exit(aState, rA, timer, action)
  416. check_state = 'reg_fsonefoot'
  417. if aState == check_state:
  418. action = getattr(actionsFSMlist, check_state)
  419. if own['stateTimer'] < getattr(action, 'intro_frames'):
  420. intro = getattr(action, 'intro')
  421. actionPlayer(getattr(actionsFSMlist, intro))
  422. else:
  423. actionPlayer(action)
  424. newState = check_exit(aState, rA, timer, action)
  425. check_state = 'reg_onefoot'
  426. if aState == check_state:
  427. action = getattr(actionsFSMlist, check_state)
  428. if own['stateTimer'] < getattr(action, 'intro_frames'):
  429. intro = getattr(action, 'intro')
  430. actionPlayer(getattr(actionsFSMlist, intro))
  431. else:
  432. actionPlayer(action)
  433. newState = check_exit(aState, rA, timer, action)
  434. check_state = 'reg_airwalk'
  435. if aState == check_state:
  436. action = getattr(actionsFSMlist, check_state)
  437. if own['stateTimer'] < getattr(action, 'intro_frames'):
  438. intro = getattr(action, 'intro')
  439. actionPlayer(getattr(actionsFSMlist, intro))
  440. else:
  441. actionPlayer(action)
  442. newState = check_exit(aState, rA, timer, action)
  443. check_state = 'reg_wall_r'
  444. if aState == check_state:
  445. action = getattr(actionsFSMlist, check_state)
  446. if own['stateTimer'] < getattr(action, 'intro_frames'):
  447. intro = getattr(action, 'intro')
  448. actionPlayer(getattr(actionsFSMlist, intro))
  449. else:
  450. actionPlayer(action)
  451. newState = check_exit(aState, rA, timer, action)
  452. check_state = 'reg_wall_l'
  453. if aState == check_state:
  454. action = getattr(actionsFSMlist, check_state)
  455. if own['stateTimer'] < getattr(action, 'intro_frames'):
  456. intro = getattr(action, 'intro')
  457. actionPlayer(getattr(actionsFSMlist, intro))
  458. else:
  459. actionPlayer(action)
  460. newState = check_exit(aState, rA, timer, action)
  461. check_state = 'fak_sit'
  462. if aState == check_state:
  463. action = getattr(actionsFSMlist, check_state)
  464. #if own['stateTimer'] < 19:
  465. if own['stateTimer'] < getattr(action, 'intro_frames'):
  466. actionPlayer(getattr(actionsFSMlist, 'intro'))
  467. else:
  468. actionPlayer(action)
  469. newState = check_exit(aState, rA, timer, actionsFSMlist.fak_sit)
  470. #-----------------------
  471. check_state = 'fak_walk'
  472. if aState == check_state:
  473. action = getattr(actionsFSMlist, check_state)
  474. if own['l_aState'] == 'fak_walkFast':
  475. frame = get_frame(actionsFSMlist.fak_walkFast)
  476. actionPlayer(action)
  477. set_frame(actionsFSMlist.fak_walk, frame)
  478. else:
  479. frame = actionPlayer(action)
  480. newState = check_exit(aState, rA, timer, action)
  481. #-----------------------
  482. check_state = 'fak_walkFast'
  483. if aState == check_state:
  484. action = getattr(actionsFSMlist, check_state)
  485. newState = check_exit(aState, rA, timer, actionsFSMlist.fak_walkFast)
  486. if own['l_aState'] == 'fak_walk':
  487. frame = get_frame(actionsFSMlist.fak_walk)
  488. actionPlayer(action)
  489. set_frame(actionsFSMlist.fak_walkFast, frame)
  490. else:
  491. actionPlayer(action)
  492. check_state = 'fak_push'
  493. if aState == check_state:
  494. action = getattr(actionsFSMlist, check_state)
  495. actionPlayer(action)
  496. if own['stateTimer'] > 70:
  497. newState = 'fak_roll'
  498. check_state = 'fak_push_goof'
  499. if aState == check_state:
  500. action = getattr(actionsFSMlist, check_state)
  501. actionPlayer(action)
  502. if own['stateTimer'] > 70:
  503. newState = 'fak_roll'
  504. check_state = 'fak_powerslide'
  505. if aState == check_state:
  506. action = getattr(actionsFSMlist, check_state)
  507. # if own['stateTimer'] < 20:
  508. # actionPlayer(actionsFSMlist.fak_powerslide_in)
  509. if own['stateTimer'] < getattr(action, 'intro_frames'):
  510. intro = getattr(action, 'intro')
  511. actionPlayer(getattr(actionsFSMlist, intro))
  512. else:
  513. actionPlayer(action)
  514. newState = check_exit(aState, rA, timer, actionsFSMlist.fak_powerslide)
  515. check_state = 'fak_fs_powerslide'
  516. if aState == check_state:
  517. action = getattr(actionsFSMlist, check_state)
  518. # if own['stateTimer'] < 20:
  519. # actionPlayer(actionsFSMlist.fak_fs_powerslide_in)
  520. if own['stateTimer'] < getattr(action, 'intro_frames'):
  521. intro = getattr(action, 'intro')
  522. actionPlayer(getattr(actionsFSMlist, intro))
  523. else:
  524. actionPlayer(action)
  525. newState = check_exit(aState, rA, timer, actionsFSMlist.fak_fs_powerslide)
  526. #-----------
  527. #grabs------
  528. #-----------
  529. check_state = 'fak_frontside_grab'
  530. if aState == check_state:
  531. action = getattr(actionsFSMlist, check_state)
  532. if own['stateTimer'] < getattr(action, 'intro_frames'):
  533. intro = getattr(action, 'intro')
  534. actionPlayer(getattr(actionsFSMlist, intro))
  535. else:
  536. actionPlayer(action)
  537. newState = check_exit(aState, rA, timer, action)
  538. check_state = 'fak_backside_grab'
  539. if aState == check_state:
  540. action = getattr(actionsFSMlist, check_state)
  541. if own['stateTimer'] < getattr(action, 'intro_frames'):
  542. intro = getattr(action, 'intro')
  543. actionPlayer(getattr(actionsFSMlist, intro))
  544. else:
  545. actionPlayer(action)
  546. newState = check_exit(aState, rA, timer, action)
  547. check_state = 'fak_frontside_nose_grab'
  548. if aState == check_state:
  549. action = getattr(actionsFSMlist, check_state)
  550. if own['stateTimer'] < getattr(action, 'intro_frames'):
  551. intro = getattr(action, 'intro')
  552. actionPlayer(getattr(actionsFSMlist, intro))
  553. else:
  554. actionPlayer(action)
  555. newState = check_exit(aState, rA, timer, action)
  556. check_state = 'fak_backside_nose_grab'
  557. if aState == check_state:
  558. action = getattr(actionsFSMlist, check_state)
  559. if own['stateTimer'] < getattr(action, 'intro_frames'):
  560. intro = getattr(action, 'intro')
  561. actionPlayer(getattr(actionsFSMlist, intro))
  562. else:
  563. actionPlayer(action)
  564. newState = check_exit(aState, rA, timer, action)
  565. check_state = 'fak_frontside_tail_grab'
  566. if aState == check_state:
  567. action = getattr(actionsFSMlist, check_state)
  568. if own['stateTimer'] < getattr(action, 'intro_frames'):
  569. intro = getattr(action, 'intro')
  570. actionPlayer(getattr(actionsFSMlist, intro))
  571. else:
  572. actionPlayer(action)
  573. newState = check_exit(aState, rA, timer, action)
  574. check_state = 'fak_backside_tail_grab'
  575. if aState == check_state:
  576. action = getattr(actionsFSMlist, check_state)
  577. if own['stateTimer'] < getattr(action, 'intro_frames'):
  578. intro = getattr(action, 'intro')
  579. actionPlayer(getattr(actionsFSMlist, intro))
  580. else:
  581. actionPlayer(action)
  582. newState = check_exit(aState, rA, timer, action)
  583. check_state = 'fak_ollie_north'
  584. if aState == check_state:
  585. action = getattr(actionsFSMlist, check_state)
  586. if own['stateTimer'] < getattr(action, 'intro_frames'):
  587. intro = getattr(action, 'intro')
  588. actionPlayer(getattr(actionsFSMlist, intro))
  589. else:
  590. actionPlayer(action)
  591. newState = check_exit(aState, rA, timer, action)
  592. check_state = 'fak_ollie_south'
  593. if aState == check_state:
  594. action = getattr(actionsFSMlist, check_state)
  595. if own['stateTimer'] < getattr(action, 'intro_frames'):
  596. intro = getattr(action, 'intro')
  597. actionPlayer(getattr(actionsFSMlist, intro))
  598. else:
  599. actionPlayer(action)
  600. newState = check_exit(aState, rA, timer, action)
  601. check_state = 'fak_judo'
  602. if aState == check_state:
  603. action = getattr(actionsFSMlist, check_state)
  604. if own['stateTimer'] < getattr(action, 'intro_frames'):
  605. intro = getattr(action, 'intro')
  606. actionPlayer(getattr(actionsFSMlist, intro))
  607. else:
  608. actionPlayer(action)
  609. newState = check_exit(aState, rA, timer, action)
  610. check_state = 'fak_frigid'
  611. if aState == check_state:
  612. action = getattr(actionsFSMlist, check_state)
  613. if own['stateTimer'] < getattr(action, 'intro_frames'):
  614. intro = getattr(action, 'intro')
  615. actionPlayer(getattr(actionsFSMlist, intro))
  616. else:
  617. actionPlayer(action)
  618. newState = check_exit(aState, rA, timer, action)
  619. check_state = 'fak_fsonefoot'
  620. if aState == check_state:
  621. action = getattr(actionsFSMlist, check_state)
  622. if own['stateTimer'] < getattr(action, 'intro_frames'):
  623. intro = getattr(action, 'intro')
  624. actionPlayer(getattr(actionsFSMlist, intro))
  625. else:
  626. actionPlayer(action)
  627. newState = check_exit(aState, rA, timer, action)
  628. check_state = 'fak_onefoot'
  629. if aState == check_state:
  630. action = getattr(actionsFSMlist, check_state)
  631. if own['stateTimer'] < getattr(action, 'intro_frames'):
  632. intro = getattr(action, 'intro')
  633. actionPlayer(getattr(actionsFSMlist, intro))
  634. else:
  635. actionPlayer(action)
  636. newState = check_exit(aState, rA, timer, action)
  637. #-----------------------
  638. if newState != '':
  639. own['aState'] = newState
  640. own['l_aState'] = og_state
  641. own['l_actionState'] = og_state
  642. state_timer(own)
  643. skater = dict['p1']
  644. if own['requestAction'] == 'reg_roll' and own['rotz'] < .985:
  645. frame = int(own['rotz'] * 70)
  646. else:
  647. skater.stopAction(5)