mirror of
http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite.git
synced 2025-11-20 06:07:12 +08:00
(client) feat:实现技能树界面,实现地图生成器,实现维度指定,实现规则瓦片定义,实现逃跑逻辑,实现消息定义,实现武器动画,实现受击动画 fix: 修复单攻击子弹击中多个目标,修复人物属性计算错误 (#56)
Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com> Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/56
This commit is contained in:
@@ -7,6 +7,24 @@ namespace Entity
|
||||
{
|
||||
public class Character : LivingEntity
|
||||
{
|
||||
public override Attributes defAttributes
|
||||
{
|
||||
get
|
||||
{
|
||||
var def = base.defAttributes;
|
||||
var weaponDef = GetCurrentWeapon()?.Attributes;
|
||||
if (weaponDef != null)
|
||||
{
|
||||
weaponDef.health = def.health;
|
||||
weaponDef.moveSpeed = def.moveSpeed;
|
||||
return weaponDef;
|
||||
}
|
||||
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private int _currentSelected; // 私有字段用于存储实际值
|
||||
|
||||
/// <summary>
|
||||
@@ -30,15 +48,10 @@ namespace Entity
|
||||
|
||||
public override void Init(EntityDef entityDef)
|
||||
{
|
||||
base.Init(entityDef);
|
||||
|
||||
Inventory = new Inventory(this, 3);
|
||||
|
||||
// 初始化 currentSelected。
|
||||
// 使用属性来设置,确保触发事件和范围检查。
|
||||
// 如果Inventory.Capacity为0,则currentSelected会被钳制到0。
|
||||
// 如果Inventory.Capacity为3,currentSelected=0是有效值。
|
||||
Inventory.OnInventoryChanged += InventoryChange;
|
||||
CurrentSelected = 0;
|
||||
base.Init(entityDef);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -59,6 +72,7 @@ namespace Entity
|
||||
Debug.LogError($"Character '{name}' inventory is not initialized. Cannot pickup item.");
|
||||
return quantity; // 如果背包未初始化,则视为未能添加任何物品
|
||||
}
|
||||
|
||||
|
||||
var remainingQuantity = Inventory.AddItem(itemResource, quantity);
|
||||
|
||||
@@ -68,7 +82,12 @@ namespace Entity
|
||||
public override WeaponResource GetCurrentWeapon()
|
||||
{
|
||||
var currentSelectItem = Inventory.GetSlot(CurrentSelected);
|
||||
return (WeaponResource)currentSelectItem?.Item;
|
||||
return currentSelectItem?.Item as WeaponResource;
|
||||
}
|
||||
|
||||
private void InventoryChange()
|
||||
{
|
||||
InitWeaponAnimator();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user