FighterAi.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using UnityEngine;
  2. using System.Collections;
  3. //using StateMachine;
  4. using System.IO;
  5. public class FighterAi
  6. {
  7. readonly Fighter mFighter;
  8. float mNextActionTime;
  9. int mNextSelectAttack;
  10. int mNormalAttackCnt = 0;
  11. int maxCnt = 0;
  12. public int NextSelectAttack
  13. {
  14. get { return mNextSelectAttack; }
  15. }
  16. public FighterAi (Fighter fighter)
  17. {
  18. mFighter = fighter;
  19. Enabled = false;
  20. mNextSelectAttack = SkillType.Attack1;
  21. maxCnt = GlobalConfig.Instance.GetConfigIntValue(124);
  22. }
  23. public void Reset()
  24. {
  25. mNextSelectAttack = SkillType.Attack1;
  26. mNormalAttackCnt = 0;
  27. }
  28. public bool Enabled { get; set; }
  29. public void Update (float deltaTime)
  30. {
  31. if (!Enabled)
  32. return;
  33. bool playRecord = mFighter.Battle.IsPlayRecord;
  34. if (playRecord)
  35. {
  36. mFighter.Battle.Recorder.ProcessFrameRecord(BattleRecorder.RecordType.FighterMove, mFighter);
  37. mFighter.Battle.Recorder.ProcessFrameRecord(BattleRecorder.RecordType.FighterSkill, mFighter);
  38. return;
  39. }
  40. BaseSkill skill = null;
  41. if (mNormalAttackCnt >= maxCnt &&
  42. !mFighter.FuncMgr.HaveForbidSkillFunc() &&
  43. mFighter.CheckDoSkill(mNextSelectAttack,out skill))
  44. {
  45. mFighter.Sp -= skill.SpCost;
  46. mFighter.CheckSkillEnhance(skill);
  47. mNextSelectAttack++;
  48. if (mNextSelectAttack > mFighter.SkillCnt)
  49. mNextSelectAttack = SkillType.Attack1;
  50. mFighter.RefreshSp();
  51. mFighter.Actor.SkillMgr.ResetRandomSkill();
  52. return;
  53. }
  54. if (!mFighter.FuncMgr.HaveForbidNormalAttackFunc() && mFighter.CheckDoSkill(SkillType.NormalAttack,out skill))
  55. {
  56. mNormalAttackCnt++;
  57. mFighter.ResetNormalSkillCd();
  58. mFighter.Actor.SkillMgr.AddNormalAttackIndex();
  59. }
  60. }
  61. }