public void Confirm() { //技能逻辑 var currentHp = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").value; var currentHPMax = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").valueMax; //“修养”接口预留(通过控制factor) RoundManager.GetInstance().Invoke(() => { var restValue = (int)(currentHPMax * factor); restValue = currentHp + restValue > currentHPMax ? currentHPMax - currentHp : restValue; var hp = currentHp + restValue; UIManager.GetInstance().FlyNum(character.GetComponent <CharacterStatus>().arrowPosition / 2 + character.position + Vector3.down * 0.2f, restValue.ToString(), UIManager.hpColor); ChangeData.ChangeValue(character, "hp", hp); //持续到回合结束的防御力debuff var buff = new DataBuff(1, "def", -5); buff.Apply(character); character.GetComponent <CharacterStatus>().Buffs.Add(buff); //回合直接结束 UnityEngine.Object.Destroy(restUI); skillState = SkillState.confirm; character.GetComponent <Unit>().OnUnitEnd(); RoundManager.GetInstance().EndTurn(); }, 0.5f); }
private void Confirm() { var animator = character.GetComponent <Animator>(); animator.SetInteger("Skill", 2); UnityEngine.Object.Destroy(restoreChakraUI); RoundManager.GetInstance().Invoke(() => { animator.speed = 0; FXManager.GetInstance().Spawn("Chakra", animator.GetBoneTransform(HumanBodyBones.Chest).position, 3f); }, 0.5f); RoundManager.GetInstance().Invoke(() => { animator.speed = 1; animator.SetInteger("Skill", 0); var currentHp = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").value; var mud = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "mud").value; var restoreValue = slider.value - character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "mp").value; var hp = currentHp - mud * restoreValue; ChangeData.ChangeValue(character, "hp", (int)hp); ChangeData.ChangeValue(character, "mp", (int)slider.value); UIManager.GetInstance().FlyNum(character.GetComponent <CharacterStatus>().arrowPosition / 2 + character.position + Vector3.down * 0.2f, restoreValue.ToString(), UIManager.mpColor); var buff = new DataBuff(1, "def", -5); buff.Apply(character); character.GetComponent <CharacterStatus>().Buffs.Add(buff); character.GetComponent <Unit>().OnUnitEnd(); //真正的回合结束所应执行的逻辑。 RoundManager.GetInstance().EndTurn(); skillState = SkillState.confirm; }, 0.5f + 3.4f); }
public void Confirm(int value) //此value为改变后的结果 { var currentHp = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").value; //获取当前HP var mud = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "mud").value; //获取mud属性 var restoreValue = (float)value - character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "mp").value; //计算恢复的值 var hp = currentHp - mud * restoreValue; //计算损失的HP ChangeData.ChangeValue(character, "hp", (int)hp); //执行改变 ChangeData.ChangeValue(character, "mp", value); var buff = new DataBuff(1, "def", -5); buff.Apply(character); character.GetComponent <CharacterStatus>().Buffs.Add(buff); skillState = SkillState.confirm; character.GetComponent <Unit>().OnUnitEnd(); //真正的回合结束所应执行的逻辑。 RoundManager.GetInstance().EndTurn(character); }
public void Confirm() { //技能逻辑 var currentHp = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").value; var currentHPMax = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").valueMax; //“修养”接口预留(通过控制factor) var restValue = (int)(currentHPMax * factor); var hp = currentHp + restValue > currentHPMax ? currentHPMax : currentHp + restValue; ChangeData.ChangeValue(character, "hp", hp); //持续到回合结束的防御力debuff var buff = new DataBuff(1, "def", -5); buff.Apply(character); character.GetComponent <CharacterStatus>().Buffs.Add(buff); //回合直接结束 UnityEngine.Object.Destroy(restUI); skillState = SkillState.confirm; character.GetComponent <Unit>().OnUnitEnd(); RoundManager.GetInstance().EndTurn(); }
private void Confirm() { var currentHp = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "hp").value; var mud = character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "mud").value; var restoreValue = slider.value - character.GetComponent <CharacterStatus>().attributes.Find(d => d.eName == "mp").value; var hp = currentHp - mud * restoreValue; ChangeData.ChangeValue(character, "hp", (int)hp); ChangeData.ChangeValue(character, "mp", (int)slider.value); var buff = new DataBuff(1, "def", -5); buff.Apply(character); character.GetComponent <CharacterStatus>().Buffs.Add(buff); UnityEngine.Object.Destroy(restoreChakraUI); character.GetComponent <Unit>().OnUnitEnd(); //真正的回合结束所应执行的逻辑。 RoundManager.GetInstance().EndTurn(character); skillState = SkillState.confirm; }