|
|
|
|
extends Node3D
|
|
|
|
|
class_name Status
|
|
|
|
|
|
|
|
|
|
@export_category("实体属性")
|
|
|
|
|
@export var id : int #id
|
|
|
|
|
@export var owner_id : int #所有者id
|
|
|
|
|
@export var team : Enum.ETeam #队伍
|
|
|
|
|
|
|
|
|
|
@export_category("静态属性")
|
|
|
|
|
@export var cfg : CharacterCfg #配置表
|
|
|
|
|
@export var height : float # 受击框高度
|
|
|
|
|
@export var radius : float # 受击框半径
|
|
|
|
|
|
|
|
|
|
@export_category("战斗状态")
|
|
|
|
|
@export var hp : float #当前血量
|
|
|
|
|
@export var hp_max : float #血量最大值
|
|
|
|
|
@export var shield : float #当前护盾
|
|
|
|
|
@export var shield_max : float #护盾最大值
|
|
|
|
|
@export var stun : float #当前眩晕值
|
|
|
|
|
@export var stun_max : float #眩晕值最大值
|
|
|
|
|
@export var mp : int #mp最大值
|
|
|
|
|
@export var mp_max : int #mp最大值
|
|
|
|
|
@export var mp_sub : float #次级mp
|
|
|
|
|
@export var mp_sub_max : float #次级mp最大值
|
|
|
|
|
@export var is_dead : bool #是否死亡
|
|
|
|
|
@export var target : int #目标角色
|
|
|
|
|
|
|
|
|
|
@export_category("表现状态")
|
|
|
|
|
@export var basic_offset : Vector3 #基本偏移值
|
|
|
|
|
@export var shake_offset : Vector3 #抖动偏移值
|
|
|
|
|
@export var ui_offset : Vector3 #ui挂点偏移值
|
|
|
|
|
@export var ui_center_offset : Vector3 #ui中心挂点偏移值
|
|
|
|
|
@export var is_pause : bool #是否暂停
|
|
|
|
|
@export var flash_white_rate : float #闪白比例
|
|
|
|
|
@export var deformation_dir : Vector2 #形变方向
|
|
|
|
|
@export var deformation_rate : float #形变比例
|
|
|
|
|
|
|
|
|
|
@export_category("移动状态")
|
|
|
|
|
@export var move_dir : Vector2 #移动方向
|
|
|
|
|
@export var velocity_change : Vector3 #一帧内速度变化值
|
|
|
|
|
@export var speed_up_rate : float #移动速度比率
|
|
|
|
|
@export var speed_xz : float #水平移动速度
|
|
|
|
|
@export var speed_y : float #竖直移动速度
|
|
|
|
|
@export var is_free_control : bool = true #是否可以自由控制
|
|
|
|
|
@export var is_on_floor : bool #是否在地面
|
|
|
|
|
@export var is_free_turn : bool = true #是否允许转向
|
|
|
|
|
@export var is_right : bool = true #是否向右
|
|
|
|
|
@export var is_jumping : bool #是否正在跳跃
|
|
|
|
|
@export var is_jumped : bool #是否已跳跃
|
|
|
|
|
|
|
|
|
|
@export_category("buff状态")
|
|
|
|
|
@export var is_stagger : bool #是否硬直
|
|
|
|
|
@export var is_stun : bool #是否眩晕
|
|
|
|
|
@export var is_floating : bool #是否正在浮空
|
|
|
|
|
@export var is_rising : bool #是否正在开始浮空
|
|
|
|
|
@export var hit_back_dir : Vector2 #击退方向
|
|
|
|
|
@export var hit_back_speed : float #击退速度
|
|
|
|
|
@export var hit_up_speed : float #击飞速度
|
|
|
|
|
|
|
|
|
|
@export_category("技能状态")
|
|
|
|
|
@export var skill_cfg : SkillCfg #当前技能
|
|
|
|
|
@export var is_skill_running : bool #技能是否正在释放
|
|
|
|
|
@export var skill_dir : Vector2 #技能释放方向
|
|
|
|
|
@export var skill_move_speed : float #技能位移速度
|
|
|
|
|
@export var skill_float_speed : float #技能y位移速度
|
|
|
|
|
@export var skill_attack_index : int #技能攻击段数
|
|
|
|
|
@export var skill_attack_effect_index : int #技能特效段数
|
|
|
|
|
|
|
|
|
|
@export_category("玩家技能状态")
|
|
|
|
|
@export var input_dir : Vector2 #指令方向
|
|
|
|
|
@export var stance : Enum.EStance #技能姿态
|
|
|
|
|
@export var break_level : Enum.EBreakLevel #打断等级
|
|
|
|
|
@export var weapon_list = [] #武器列表
|
|
|
|
|
@export var weapon_index : int #当前武器下标
|
|
|
|
|
@export var weapon_index_change_dir : int #武器下标操作变化方向
|
|
|
|
|
@export var weapon_index_change_rate : float #武器下标操作变化进度
|
|
|
|
|
|
|
|
|
|
@export_category("动画触发器")
|
|
|
|
|
@export var trigger_jump : bool #跳跃
|
|
|
|
|
@export var trigger_hit : bool #受击-地面-轻
|
|
|
|
|
@export var trigger_mhit : bool #受击-地面-中
|
|
|
|
|
@export var trigger_lhit : bool #受击-地面-重
|
|
|
|
|
@export var trigger_air_hit_up : bool #受击-空中受击-向上
|
|
|
|
|
@export var trigger_air_hit_down : bool #受击-空中受击-向上
|
|
|
|
|
@export var trigger_rebound : bool #受击-反弹
|
|
|
|
|
@export var trigger_stun_hit : bool #受击-眩晕
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func get_status(status_name:String):return get(status_name)
|
|
|
|
|
func set_status(status_name:String,value):
|
|
|
|
|
set(status_name,value)
|
|
|
|
|
SignalManager.character_status_changed.emit(id,status_name,value)
|
|
|
|
|
func emit_status(status_name:String):
|
|
|
|
|
SignalManager.character_status_changed.emit(id,status_name,get_status(status_name))
|
|
|
|
|
|