class_name BattleMove extends BattleAction

enum MoveType {
  PHYSICAL,
  ABILITY,
  MAGICAL,
}

var name:String
var power:int
var mpCost:int
var accuracy:float
var moveType:MoveType
var fieldUse:bool

func _init(params:Dictionary) -> void:
  super(params)
  self.name = params.get("name", "Unknown Move")
  self.power = params.get("power", 0)
  self.mpCost = params.get("mpCost", 0)
  self.accuracy = params.get("accuracy", 1.0)
  self.moveType = params.get("moveType", MoveType.PHYSICAL)
  self.fieldUse = params.get("fieldUse", false)

# Moves
static var MOVE_PUNCH = BattleMove.new({
  "name": "Punch",
  "power": 15,
  "accuracy": 0.95,
  "moveType": MoveType.PHYSICAL
})

static var MOVE_FIRE1 = BattleMove.new({
  "name": "Fire",
  "power": 25,
  "mpCost": 5,
  "accuracy": 0.9,
  "moveType": MoveType.MAGICAL
})

static var MOVE_HEAL1 = BattleMove.new({
  "name": "Heal",
  "power": -20,
  "mpCost": 8,
  "accuracy": 1.0,
  "moveType": MoveType.ABILITY
})