public void calculateDamage(skillData skill, GameObject attacker) { int damage = skill.damage; characterStatusController atkrStatus = attacker.GetComponent <characterStatusController>(); damageText.color = healColor; // Debug.Log("chara: " + charaName + ", skill: " + skill.skillName + // ", base skill dmg: " + damage); if (damage > 0) { damage += atkrStatus.currentAtk - currentDef; damageText.color = damageColor; } // Debug.Log("skill dmg: " + damage + ", currHP: " + currentHP + // ", newHP: " + (currentHP - damage)); currentHP -= damage; damageText.text = Mathf.Abs(damage).ToString(); damageTextTimer = damageTextTimeout; // Debug.Log("dmgText: " + damageText + ", damageTextTimer: " // + damageTextTimer); if (currentHP > maxHP) { currentHP = maxHP; } if (currentHP < 0) { currentHP = 0; GameObject.Find("gameController").GetComponent <battleController>().killCharacter(this.gameObject); } HPSlider.value = currentHP; }
public void initSkillData() { string[][] arrAll = getData("data/skill", "\r\n"); for (int i = 0; i < arrAll.Length; i++) { string[] arr = arrAll [i]; int skillId = int.Parse(arr[0]); skillData skill = new skillData(); skill.skillId = skillId; skill.skillName = arr[1]; skill.skillIcon = arr[2]; skill.skillInfo = arr[5]; skill.skillEffectName = arr[6]; skill.attackType = int.Parse(arr[3]); skill.skillType = int.Parse(arr[4]); skill.attackNum = int.Parse(arr[7]); skill.attackInterval = float.Parse(arr[8]); skill.music = arr[9]; skill.attackRange = int.Parse(arr[10]); skill.effectPriotY = float.Parse(arr[11]); skill.stateDuration = int.Parse(arr[12]); //1000开头的是击晕,2000开头的是减速,3000开头的是逆行 skill.stateChance = float.Parse(arr[13]); skill.attackDamage = int.Parse(arr[14]); skill.startAttackIndex = int.Parse(arr[15]); skill.shakeScreenNum = float.Parse(arr[16]); //skill.converseTime = int.Parse (arr[19]); skillDic [skillId] = skill; } }
public void useSkill() { skillData skill = charaSkills[selectedSkill + 2]; GameObject target = targets[selectedTarget]; characterStatusController targetStatus = target.GetComponent <characterStatusController>(); battleSkillController skillController = skillItems[selectedSkill].GetComponent <battleSkillController>(); skillController.skillTimer = skillController.rechargeTime + skillController.castingTime; playerCharaStatuses[selectedCharacter].currentMP -= skill.MPCost; targetStatus.calculateDamage(skill, playerParty[selectedCharacter]); targetMenu.SetActive(false); skillsMenu.SetActive(false); selectedSkill = -1; selectedTarget = -1; }
public void useSkill(skillData skill) { }