Party stuff
This commit is contained in:
1
battle/BattleFighter.gd.uid
Normal file
1
battle/BattleFighter.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://djaqtgkgjfgfu
|
||||||
@@ -1 +1,23 @@
|
|||||||
class_name BattleScene extends Node3D
|
class_name BattleScene extends Node3D
|
||||||
|
|
||||||
|
enum BattlePosition {
|
||||||
|
LEFT_TOP_BACK,
|
||||||
|
LEFT_TOP_FRONT,
|
||||||
|
LEFT_MIDDLE_BACK,
|
||||||
|
LEFT_MIDDLE_FRONT,
|
||||||
|
LEFT_BOTTOM_BACK,
|
||||||
|
LEFT_BOTTOM_FRONT,
|
||||||
|
|
||||||
|
RIGHT_TOP_BACK,
|
||||||
|
RIGHT_TOP_FRONT,
|
||||||
|
RIGHT_MIDDLE_BACK,
|
||||||
|
RIGHT_MIDDLE_FRONT,
|
||||||
|
RIGHT_BOTTOM_BACK,
|
||||||
|
RIGHT_BOTTOM_FRONT,
|
||||||
|
|
||||||
|
# Should have pinned positions for enemies as well?
|
||||||
|
}
|
||||||
|
|
||||||
|
# @export var fighters:Node3D = null
|
||||||
|
|
||||||
|
# func start(
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
[gd_scene format=3 uid="uid://dy54m7dvjgqta"]
|
[gd_scene load_steps=2 format=3 uid="uid://dy54m7dvjgqta"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cf4c61ij6elir" path="res://battle/fighter/BattleFighter.tscn" id="1_abr1f"]
|
||||||
|
|
||||||
[node name="BattleScene" type="Node3D"]
|
[node name="BattleScene" type="Node3D"]
|
||||||
|
|
||||||
@@ -13,3 +15,7 @@ layout_mode = 0
|
|||||||
offset_right = 40.0
|
offset_right = 40.0
|
||||||
offset_bottom = 12.0
|
offset_bottom = 12.0
|
||||||
text = "Battle"
|
text = "Battle"
|
||||||
|
|
||||||
|
[node name="Fighters" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="BattleFighter" parent="Fighters" instance=ExtResource("1_abr1f")]
|
||||||
|
|||||||
49
battle/BattleStats.gd
Normal file
49
battle/BattleStats.gd
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
class_name BattleStats
|
||||||
|
|
||||||
|
# enum Type {
|
||||||
|
# NEUTRAL,
|
||||||
|
# FIRE,
|
||||||
|
# ICE,
|
||||||
|
# }
|
||||||
|
|
||||||
|
enum Status {
|
||||||
|
NORMAL,
|
||||||
|
DEAD,
|
||||||
|
}
|
||||||
|
|
||||||
|
var health:int = 100
|
||||||
|
var maxHealth:int = 100
|
||||||
|
var mp:int = 50
|
||||||
|
var maxMp:int = 50
|
||||||
|
# var type:Type = Type.NEUTRAL
|
||||||
|
var status:Status = Status.NORMAL
|
||||||
|
|
||||||
|
func damage(amount:int) -> void:
|
||||||
|
assert(amount > 0)
|
||||||
|
if status == Status.DEAD:
|
||||||
|
return
|
||||||
|
health = max(health - amount, 0)
|
||||||
|
if health == 0:
|
||||||
|
status = Status.DEAD
|
||||||
|
|
||||||
|
func heal(amount:int) -> void:
|
||||||
|
assert(amount > 0)
|
||||||
|
if status == Status.DEAD:
|
||||||
|
return
|
||||||
|
health = min(health + amount, maxHealth)
|
||||||
|
|
||||||
|
func revive(health:int) -> void:
|
||||||
|
assert(health > 0)
|
||||||
|
if status != Status.DEAD:
|
||||||
|
return
|
||||||
|
health = min(health, maxHealth)
|
||||||
|
status = Status.NORMAL
|
||||||
|
self.health = health
|
||||||
|
|
||||||
|
func mpConsume(amount:int) -> void:
|
||||||
|
assert(amount > 0)
|
||||||
|
mp = max(mp - amount, 0)
|
||||||
|
|
||||||
|
func mpRestore(amount:int) -> void:
|
||||||
|
assert(amount > 0)
|
||||||
|
mp = min(mp + amount, maxMp)
|
||||||
1
battle/BattleStats.gd.uid
Normal file
1
battle/BattleStats.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bskbtmuep61e1
|
||||||
7
battle/fighter/BattleFighter.gd
Normal file
7
battle/fighter/BattleFighter.gd
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
class_name BattleFighter extends Node3D
|
||||||
|
|
||||||
|
var stats:BattleStats = null
|
||||||
|
|
||||||
|
func setup(stats:BattleStats) -> void:
|
||||||
|
assert(stats != null)
|
||||||
|
self.stats = stats
|
||||||
1
battle/fighter/BattleFighter.gd.uid
Normal file
1
battle/fighter/BattleFighter.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://ck7wheiv8wptn
|
||||||
7
battle/fighter/BattleFighter.tscn
Normal file
7
battle/fighter/BattleFighter.tscn
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://cf4c61ij6elir"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://ck7wheiv8wptn" path="res://battle/fighter/BattleFighter.gd" id="1_xm54w"]
|
||||||
|
|
||||||
|
[node name="BattleFighter" type="Node3D"]
|
||||||
|
script = ExtResource("1_xm54w")
|
||||||
|
metadata/_custom_type_script = "uid://ck7wheiv8wptn"
|
||||||
@@ -1 +1,3 @@
|
|||||||
class_name PartySingleton extends Node
|
class_name PartySingleton extends Node
|
||||||
|
|
||||||
|
static var PARTY_JOHN = PartyMember.new()
|
||||||
6
party/PartyMember.gd
Normal file
6
party/PartyMember.gd
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
class_name PartyMember
|
||||||
|
|
||||||
|
var stats:BattleStats
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
stats = BattleStats.new()
|
||||||
1
party/PartyMember.gd.uid
Normal file
1
party/PartyMember.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://drrxgcii1pf1n
|
||||||
@@ -55,4 +55,4 @@ func onSceneChange(newScene:SceneSingleton.SceneType) -> void:
|
|||||||
removeAndHide(initial)
|
removeAndHide(initial)
|
||||||
removeAndHide(overworld)
|
removeAndHide(overworld)
|
||||||
removeAndHide(battle)
|
removeAndHide(battle)
|
||||||
removeAndHide(cooking)
|
removeAndHide(cooking)
|
||||||
Reference in New Issue
Block a user