52 lines
1.1 KiB
GDScript
52 lines
1.1 KiB
GDScript
class_name BattleMove
|
|
|
|
enum MoveType {
|
|
PHYSICAL,
|
|
ABILITY,
|
|
MAGICAL,
|
|
}
|
|
|
|
var name:String
|
|
var power:int
|
|
var mpCost:int
|
|
var speedModifier:float
|
|
var accuracy:float
|
|
var moveType:MoveType
|
|
var fieldUse:bool
|
|
|
|
func _init(params:Dictionary) -> void:
|
|
self.name = params.get("name", "Unknown Move")
|
|
self.power = params.get("power", 0)
|
|
self.mpCost = params.get("mpCost", 0)
|
|
self.speedModifier = params.get("speedModifier", 1.0)
|
|
self.accuracy = params.get("accuracy", 1.0)
|
|
self.moveType = params.get("moveType", MoveType.PHYSICAL)
|
|
self.fieldUse = params.get("fieldUse", false)
|
|
|
|
func start(_params:Dictionary) -> void:
|
|
# Implement move execution logic here
|
|
await UI.TEXTBOX.setTextAndWait("Action")
|
|
|
|
# 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
|
|
}) |