| | |
| | | long curHp = battleObject.teamHero.curHp; |
| | | long maxHp = battleObject.teamHero.maxHp; |
| | | |
| | | // 记录设置前的护盾值 |
| | | float oldShield1Value = sliderShield1.value; |
| | | float oldShield2Value = sliderShield2.value; |
| | | |
| | | // 护盾1的值 = min(当前血量 + 护盾值, maxHp) / maxHp |
| | | float shield1Value = maxHp > 0 ? Mathf.Min((float)(curHp + shieldValue), (float)maxHp) / (float)maxHp : 0; |
| | | // 护盾2的值 = max(当前血量 + 护盾值 - maxHp, 0) / maxHp |
| | | float shield2Value = maxHp > 0 ? Mathf.Max((float)(curHp + shieldValue - maxHp), 0f) / (float)maxHp : 0; |
| | | |
| | | sliderShield1.value = shield1Value; |
| | | sliderShield2.value = shield2Value; |
| | | sliderShield1.value = shieldValue > 0 ? shield1Value : 0; |
| | | sliderShield2.value = shieldValue > maxHp ? shield2Value : 0; |
| | | |
| | | // 打印设置护盾时的状态 |
| | | // Debug.LogError($"[BattleHeroInfoBar.SetBattleObject] 设置护盾 - curHp: {curHp}, shieldValue: {shieldValue}, maxHp: {maxHp}, shield1前: {oldShield1Value}, shield1后: {shield1Value}, shield2前: {oldShield2Value}, shield2后: {shield2Value}"); |
| | | } |
| | | |
| | | public void SetActive(bool active) |
| | |
| | | long curHp = battleObject.teamHero.curHp; |
| | | long maxHp = battleObject.teamHero.maxHp; |
| | | |
| | | // 记录设置前的护盾值 |
| | | float oldShield1Value = sliderShield1.value; |
| | | float oldShield2Value = sliderShield2.value; |
| | | |
| | | // 护盾1的值 = min(当前血量 + 护盾值, maxHp) / maxHp |
| | | float shield1Value = maxHp > 0 ? Mathf.Min((float)(curHp + shieldValue), (float)maxHp) / (float)maxHp : 0; |
| | | // 护盾2的值 = max(当前血量 + 护盾值 - maxHp, 0) / maxHp |
| | | float shield2Value = maxHp > 0 ? Mathf.Max((float)(curHp + shieldValue - maxHp), 0f) / (float)maxHp : 0; |
| | | |
| | | sliderShield1.value = shield1Value; |
| | | sliderShield2.value = shield2Value; |
| | | sliderShield1.value = shieldValue > 0 ? shield1Value : 0; |
| | | sliderShield2.value = shieldValue > maxHp ? shield2Value : 0; |
| | | |
| | | UpdateHP(curHp, curHp, maxHp, false); |
| | | |
| | | |
| | | // 打印刷新护盾时的状态 |
| | | // Debug.LogError($"[BattleHeroInfoBar.RefreshBuff] 设置护盾 - curHp: {curHp}, shieldValue: {shieldValue}, maxHp: {maxHp}, shield1前: {oldShield1Value}, shield1后: {shield1Value}, shield2前: {oldShield2Value}, shield2后: {shield2Value}"); |
| | | } |
| | | |
| | | /// <summary> |