BattleAction.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #define VCMI_DLL
  2. #include "BattleAction.h"
  3. #include "BattleState.h"
  4. /*
  5. * BattleAction.h, part of VCMI engine
  6. *
  7. * Authors: listed in file AUTHORS in main folder
  8. *
  9. * License: GNU General Public License v2.0 or later
  10. * Full text of license available in license.txt file, in main folder
  11. *
  12. */
  13. BattleAction::BattleAction()
  14. {
  15. side = -1;
  16. stackNumber = -1;
  17. actionType = INVALID;
  18. destinationTile = -1;
  19. additionalInfo = -1;
  20. }
  21. BattleAction BattleAction::makeDefend(const CStack *stack)
  22. {
  23. BattleAction ba;
  24. ba.side = !stack->attackerOwned;
  25. ba.actionType = DEFEND;
  26. ba.stackNumber = stack->ID;
  27. return ba;
  28. }
  29. BattleAction BattleAction::makeMeleeAttack(const CStack *stack, const CStack * attacked, THex attackFrom /*= THex::INVALID*/)
  30. {
  31. BattleAction ba;
  32. ba.side = !stack->attackerOwned;
  33. ba.actionType = WALK_AND_ATTACK;
  34. ba.stackNumber = stack->ID;
  35. ba.destinationTile = attackFrom;
  36. ba.additionalInfo = attacked->position;
  37. return ba;
  38. }
  39. BattleAction BattleAction::makeWait(const CStack *stack)
  40. {
  41. BattleAction ba;
  42. ba.side = !stack->attackerOwned;
  43. ba.actionType = WAIT;
  44. ba.stackNumber = stack->ID;
  45. return ba;
  46. }
  47. BattleAction BattleAction::makeShotAttack(const CStack *shooter, const CStack *target)
  48. {
  49. BattleAction ba;
  50. ba.side = !shooter->attackerOwned;
  51. ba.actionType = SHOOT;
  52. ba.stackNumber = shooter->ID;
  53. ba.destinationTile = target->position;
  54. return ba;
  55. }
  56. BattleAction BattleAction::makeMove(const CStack *stack, THex dest)
  57. {
  58. BattleAction ba;
  59. ba.side = !stack->attackerOwned;
  60. ba.actionType = WALK;
  61. ba.stackNumber = stack->ID;
  62. ba.destinationTile = dest;
  63. return ba;
  64. }