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"]
|
[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"]
|
[ext_resource type="Resource" uid="uid://qcjre5wwbrs3" path="res://resources/PlayerStats.tres" id="2_rc7x1"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
[gd_resource type="Resource" script_class="CharacterStats" load_steps=12 format=3 uid="uid://qcjre5wwbrs3"]
|
[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/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/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/MaxHealth.gd" id="3_26tso"]
|
||||||
[ext_resource type="Script" path="res://scripts/resources/Stats/MovementSpeed.gd" id="4_goc2a"]
|
[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):
|
func init_weapon(stats: WeaponStats):
|
||||||
self.stats = stats;
|
self.stats = stats;
|
||||||
|
|
||||||
|
|
||||||
func attach(newAttachment: Attachment)-> void:
|
func attach(newAttachment: Attachment)-> void:
|
||||||
attachments.append(newAttachment)
|
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
|
extends Resource
|
||||||
|
|
||||||
class_name CharacterStats
|
class_name EntityStats
|
||||||
|
|
||||||
@export var max_health: MaxHealth
|
@export var max_health: MaxHealth
|
||||||
@export var health: Health
|
@export var health: Health
|
||||||
@ -12,6 +12,3 @@ func instantiate(parent: Node3D)->Equipment:
|
|||||||
equipment_instance.init_Equipment(equipment_stats)
|
equipment_instance.init_Equipment(equipment_stats)
|
||||||
parent.add_child(equipment_instance)
|
parent.add_child(equipment_instance)
|
||||||
return 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 shield: Shield
|
||||||
@export var movementSpeed: MovementSpeed
|
@export var movementSpeed: MovementSpeed
|
||||||
@export var damage: Damage
|
@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