Example #1
0
    public static void HitCheck(WeaponInfoObject usedWeapon, int aim)
    {
        hitChance = aim;

        //hitChance= (coverIntervenience + weaponBaseAccuracy + WeaponProficiency + heightAdvantage + Bonuses - Penalties - (distance * weapontypeRange))
        hitRoll = RandomRange.RollDice(1, 100);
        if (hitRoll <= hitChance)
        {
            //Run damage script
            DamageDealt(usedWeapon.baseDamage, usedWeapon.numberOfDiceDamage, usedWeapon.numberOfSidesDamage, true);
        }
        else
        {
            //Run damage script
            DamageDealt(0, 0, 0, false);
        }

        //int tempCase = usedWeapon.weaponRange;
        //switch (tempCase)
        //{
        //    case 0:
        //        Debug.Log("case 1");
        //        break;
        //    case 2:
        //        Debug.Log("case 2");
        //        break;
        //    default:
        //        Debug.Log("default");
        //        break;
        //}
    }
Example #2
0
    public void Healing(int healAmount, WeaponInfoObject weapon)
    {
        GameObject heal = Instantiate(floatingDmg, damagePosition.position, Quaternion.Euler(transform.GetChild(0).localEulerAngles));

        Text[] healText = heal.GetComponentsInChildren <Text>();


        healText[1].text   = CalculationManager.damage.ToString();
        currentUnitHealth += CalculationManager.damage;

        UpdateUnitHealth();
    }
Example #3
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;
    }