コード例 #1
0
    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;
    }
コード例 #2
0
ファイル: DataManager.cs プロジェクト: PenpenLi/sanguotafang
 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;
     }
 }
コード例 #3
0
    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;
    }
コード例 #4
0
 public void useSkill(skillData skill)
 {
 }