コード例 #1
0
    public void TakeDamage(WeaponInfoObject weapon)
    {
        GameObject dmg = Instantiate(floatingDmg, damagePosition.position, Quaternion.Euler(transform.GetChild(0).localEulerAngles));

        Text[] dmgText = dmg.GetComponentsInChildren <Text>();
        //Check if miss
        CalculationManager.HitCheck(weapon, UnitConfig.accuracy);
        if (CalculationManager.hit == false)
        {
            dmgText[0].text = "Missed!";
            dmgText[1].text = "-";
            //Temporary lazy code preventing zombies from missing
            CalculationManager.hit = true;
        }
        else
        {
            dmgText[1].text    = CalculationManager.damage.ToString();
            currentUnitHealth -= CalculationManager.damage;
            Instantiate(unitConfig.unitClassStats.hitParticleSystem, transform.GetChild(0).position, transform.rotation);
            if (currentUnitHealth <= 0)
            {
                //unitConfig.isDead = true;
                if (!unitConfig.isFriendly)
                {
                    mapConfig.turnSystem.enemyUnits.Remove(unitConfig);
                }
                else
                {
                    mapConfig.turnSystem.playerUnits.Remove(unitConfig);
                }
                unitConfig.SetUnitState(UnitConfig.UnitState.Dead);
                mapConfig.turnSystem.AddKillCount(unitConfig.unitClassStats);
            }
            UpdateUnitHealth();
        }
        if (!unitConfig.isFriendly)// FOR TUTORIAL
        {
            TurnSystem.hasShot = true;
        }

        TurnSystem.selectedTarget = null;
    }