Esempio n. 1
0
        public void ActivatePanel()
        {
            foreach (var modText in aimModifiers)
            {
                modText.text = "";
            }
            foreach (var modValue in aimModValues)
            {
                modValue.text = "";
            }

            var attackingUnit = Unit.ActiveUnit;
            var combatCalc    = CombatHitCalc.CalculateHitChance(attackingUnit, attackingUnit.targetUnit,
                                                                 attackingUnit.selectedAbility);

            toHitValue.text = combatCalc["HIT"] * 100 + "%";
            var textCount = 0;

            foreach (var kv in combatCalc)
            {
                if (kv.Key == "HIT")
                {
                    continue;
                }
                if (kv.Value == 0.0F)
                {
                    continue;
                }
                aimModifiers[textCount].text  = kv.Key;
                aimModValues[textCount].text  = kv.Value * 100 + "%";
                aimModValues[textCount].color = kv.Value > 0 ? Color.green : Color.red;
                textCount++;
            }
            gameObject.SetActive(true);
        }
Esempio n. 2
0
        public override void TileWatchTrigger(Unit triggeredUnit)
        {
            var selectedUnit = triggeredUnit;
            var targetUnit   = Unit.ActiveUnit;

            selectedUnit.LookAtGameObject(targetUnit.gameObject);
            var hitSuccess    = Random.Range(0.01F, 1.00F);
            var damageDone    = 0;
            var successfulHit = hitSuccess < CombatHitCalc.CalculateHitChance(selectedUnit, targetUnit, this)["HIT"];

            if (successfulHit)
            {
                damageDone = CombatDamageCalc.DamageCalculation(selectedUnit, targetUnit, this)["DAMAGE"];
            }
            selectedUnit.FireBullets(5);
            targetUnit.PopUpText(successfulHit ? damageDone.ToString() : "MISS");
            targetUnit.TakeDamage(damageDone);
        }
Esempio n. 3
0
 public void UpdateTargetPanel()
 {
     TargetButton.DestroyAll();
     foreach (var unit in Unit.ActiveUnit.EnemiesInLineOfSight())
     {
         var btn          = Instantiate(targetButtonPrefab, transform);
         var targetButton = btn.GetComponent <TargetButton>();
         targetButton.targetUnit = unit;
         if (Unit.ActiveUnit.targetUnit == unit)
         {
             targetButton.TargetSelected();
         }
         if (Unit.ActiveUnit.selectedAbility == null)
         {
             Unit.ActiveUnit.selectedAbility = Unit.ActiveUnit.abilities[0];
         }
         var hitChance = CombatHitCalc.CalculateHitChance(Unit.ActiveUnit, unit, Unit.ActiveUnit.selectedAbility)["HIT"];
         targetButton.SetHitChance(hitChance * 100);
         targetButton.OnTargetButtonClick += ChangeTarget;
         targetButton.OnTargetButtonClick += _abilityPanel.ChangedTarget;
     }
 }
Esempio n. 4
0
 protected static bool HitSuccess()
 {
     return(Random.Range(0.01F, 1.00F) < CombatHitCalc
            .CalculateHitChance(Unit.ActiveUnit, Unit.ActiveUnit.targetUnit, Unit.ActiveUnit.selectedAbility)["HIT"]);
 }