damage handler wip
This commit is contained in:
parent
ed2249bdce
commit
b90e0369bf
@ -1,6 +1,6 @@
|
||||
[gd_resource type="Resource" script_class="Character" load_steps=3 format=3 uid="uid://bd1ugbnlm08vv"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/resources/Character/CharacterResource.gd" id="1_8yb2m"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/Entity/EntityResource.gd" id="1_8yb2m"]
|
||||
[ext_resource type="Resource" uid="uid://qcjre5wwbrs3" path="res://resources/PlayerStats.tres" id="2_rc7x1"]
|
||||
|
||||
[resource]
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="CharacterStats" load_steps=12 format=3 uid="uid://qcjre5wwbrs3"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/resources/Stats/Armor.gd" id="1_c7135"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/Character/CharacterStats.gd" id="1_xti0a"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/Entity/EntityStats.gd" id="1_xti0a"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/Stats/Health.gd" id="2_hsnpy"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/Stats/MaxHealth.gd" id="3_26tso"]
|
||||
[ext_resource type="Script" path="res://scripts/resources/Stats/MovementSpeed.gd" id="4_goc2a"]
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
class_name Character extends Node3D
|
||||
|
||||
|
||||
var stats: CharacterStats
|
||||
var equipments: Array[Equipment]
|
||||
|
||||
func init_character(stats: CharacterStats):
|
||||
self.stats = stats;
|
||||
|
||||
func equip(newEquipment: Equipment)-> void:
|
||||
equipments.append(newEquipment)
|
||||
1
scripts/Enemie.gd
Normal file
1
scripts/Enemie.gd
Normal file
@ -0,0 +1 @@
|
||||
class_name Enemie extends Entity
|
||||
44
scripts/Entity.gd
Normal file
44
scripts/Entity.gd
Normal file
@ -0,0 +1,44 @@
|
||||
class_name Entity extends Node3D
|
||||
|
||||
|
||||
var stats: EntityStats
|
||||
var equipments: Array[Equipment]
|
||||
|
||||
func init_entity(stats: EntityStats):
|
||||
self.stats = stats;
|
||||
|
||||
func equip(newEquipment: Equipment)-> void:
|
||||
equipments.append(newEquipment)
|
||||
|
||||
func unequip(equipmentToRemove: Equipment)-> void:
|
||||
equipments.erase(equipmentToRemove)
|
||||
|
||||
func get_max_health()->int:
|
||||
var max_health = stats.max_health
|
||||
for equipment in equipments:
|
||||
max_health += equipment
|
||||
|
||||
return max_health
|
||||
|
||||
func get_health()->int:
|
||||
return stats.health.value
|
||||
|
||||
func get_armor()->int:
|
||||
var armor = stats.armor
|
||||
for equipment in equipments:
|
||||
armor += equipment.stats.armor
|
||||
return armor
|
||||
|
||||
func get_Shield()->int:
|
||||
var shield = stats.shield
|
||||
for equipment in equipments:
|
||||
shield += equipment.stats.shield
|
||||
return shield
|
||||
|
||||
|
||||
func get_movement_speed()->int:
|
||||
var movement_speed = stats.movement_speed
|
||||
for equipment in equipments:
|
||||
movement_speed += equipment.stats.movement_speed
|
||||
return movement_speed
|
||||
|
||||
28
scripts/Mech.gd
Normal file
28
scripts/Mech.gd
Normal file
@ -0,0 +1,28 @@
|
||||
extends Node3D
|
||||
|
||||
class_name Mech
|
||||
|
||||
var boots: Boots
|
||||
var arms: Arms
|
||||
var hydraulics: Hydraulics
|
||||
|
||||
|
||||
func init_mech(boots: Boots, arms: Arms, hydraulics: Hydraulics):
|
||||
self.boots = boots
|
||||
self.arms = arms
|
||||
self.hydraulics= hydraulics
|
||||
|
||||
func get_max_health()-> int:
|
||||
return boots.equipment_stats.max_health.value+arms.equipment_stats.max_health.value+hydraulics.equipment_stats.max_health.value
|
||||
|
||||
func get_armor()-> int:
|
||||
return boots.equipment_stats.armor.value+arms.equipment_stats.armor.value+hydraulics.equipment_stats.armor.value
|
||||
|
||||
func get_shield()-> int:
|
||||
return boots.equipment_stats.shield.value+arms.equipment_stats.shield.value+hydraulics.equipment_stats.shield.value
|
||||
|
||||
func get_damage()-> int:
|
||||
return boots.equipment_stats.damage.value+arms.equipment_stats.damage.value+hydraulics.equipment_stats.damage.value
|
||||
|
||||
func get_movement_speed()-> int:
|
||||
return boots.equipment_stats.movementSpeed.value+arms.equipment_stats.movementSpeed.value+hydraulics.equipment_stats.movementSpeed.value
|
||||
@ -1 +1,32 @@
|
||||
class_name PlayerCharacter extends Character
|
||||
class_name PlayerCharacter extends Entity
|
||||
|
||||
var mech: Mech
|
||||
|
||||
func init_player_character(stats: EntityStats, mech: Mech):
|
||||
init_entity(stats)
|
||||
self.mech = mech;
|
||||
|
||||
func get_max_health() -> int:
|
||||
var max_health = base.get_max_health()
|
||||
max_health += mech.get_max_health()
|
||||
return max_health
|
||||
|
||||
func get_armor() -> int:
|
||||
var armor = stats.armor
|
||||
armor += mech.get_armor()
|
||||
for equipment in equipments:
|
||||
armor += equipment.stats.armor
|
||||
return armor
|
||||
|
||||
func get_Shield() -> int:
|
||||
var shield = stats.shield
|
||||
for equipment in equipments:
|
||||
shield += equipment.stats.shield
|
||||
return shield
|
||||
|
||||
|
||||
func get_movement_speed() -> int:
|
||||
var movement_speed = stats.movement_speed
|
||||
for equipment in equipments:
|
||||
movement_speed += equipment.stats.movement_speed
|
||||
return movement_speed
|
||||
|
||||
@ -6,6 +6,20 @@ var attachments: Array[Attachment]
|
||||
func init_weapon(stats: WeaponStats):
|
||||
self.stats = stats;
|
||||
|
||||
|
||||
func attach(newAttachment: Attachment)-> void:
|
||||
attachments.append(newAttachment)
|
||||
|
||||
func unattach(attachmentToRemove: Attachment)-> void:
|
||||
attachments.erase(attachmentToRemove)
|
||||
|
||||
func get_damage()->int:
|
||||
var damage = stats.damage
|
||||
for attachment in attachments:
|
||||
damage += attachment.stats.damage
|
||||
return damage
|
||||
|
||||
func get_fire_rate()->int:
|
||||
var fire_rate = stats.fire_rate
|
||||
for attachment in attachments:
|
||||
fire_rate += attachment.stats.fire_rate
|
||||
return fire_rate
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
extends Resource
|
||||
|
||||
class_name CharacterResource
|
||||
|
||||
@export var character_stats: CharacterStats
|
||||
@export var character_scene: PackedScene
|
||||
|
||||
|
||||
func instantiate(parent: Node3D)->Character:
|
||||
var character_instance = character_scene.instantiate() as Character
|
||||
character_instance.init_character(character_stats)
|
||||
parent.add_child(character_instance)
|
||||
return character_instance
|
||||
@ -1,10 +0,0 @@
|
||||
extends MechPartResource
|
||||
|
||||
class_name MechBase
|
||||
|
||||
@export var boots: Boots
|
||||
@export var arms: Arms
|
||||
@export var hydraulics: Hydraulics
|
||||
|
||||
func get_stats()-> EquipmentStats:
|
||||
return boots.equipment_stats.combine(arms.equipment_stats).combine(hydraulics.equipment_stats)
|
||||
13
scripts/resources/Entity/EntityResource.gd
Normal file
13
scripts/resources/Entity/EntityResource.gd
Normal file
@ -0,0 +1,13 @@
|
||||
extends Resource
|
||||
|
||||
class_name EntityResource
|
||||
|
||||
@export var entity_stats: entityStats
|
||||
@export var entity_scene: PackedScene
|
||||
|
||||
|
||||
func instantiate(parent: Node3D)->Entity:
|
||||
var entity_instance = entity_scene.instantiate() as Entity
|
||||
entity_instance.init_entity(entity_stats)
|
||||
parent.add_child(entity_instance)
|
||||
return entity_instance
|
||||
@ -1,6 +1,6 @@
|
||||
extends Resource
|
||||
|
||||
class_name CharacterStats
|
||||
class_name EntityStats
|
||||
|
||||
@export var max_health: MaxHealth
|
||||
@export var health: Health
|
||||
@ -12,6 +12,3 @@ func instantiate(parent: Node3D)->Equipment:
|
||||
equipment_instance.init_Equipment(equipment_stats)
|
||||
parent.add_child(equipment_instance)
|
||||
return equipment_instance
|
||||
|
||||
func get_stats()-> EquipmentStats:
|
||||
return equipment_stats
|
||||
@ -7,6 +7,3 @@ class_name EquipmentStats
|
||||
@export var shield: Shield
|
||||
@export var movementSpeed: MovementSpeed
|
||||
@export var damage: Damage
|
||||
|
||||
func combine (other: EquipmentStats)->EquipmentStats:
|
||||
return null
|
||||
9
singeltons/DamageHandler.gd
Normal file
9
singeltons/DamageHandler.gd
Normal file
@ -0,0 +1,9 @@
|
||||
extends Node
|
||||
|
||||
class_name DamageHandler
|
||||
|
||||
|
||||
func apply_damage(damage_dealer: Entity, damage_receiver: Entity, weapon: Weapon ):
|
||||
damage_receiver.get_armor()
|
||||
damage_receiver.get
|
||||
pass
|
||||
Loading…
Reference in New Issue
Block a user