コード例 #1
0
 private void Start()
 {
     _combatController   = GetComponent <scr_CombatController>();
     _movementController = GetComponent <scr_Movement>();
     _affectedBy         = GetComponent <scr_AffectedBy>();
     foreach (var ab in abilities)
     {
         script_AbilityCaster.PrepareAbility(ab.name);
     }
     //parentScript = GetComponent<scr_Player>();
 }
コード例 #2
0
    //one attack for each damage type.
    public void Attack(scr_CombatController target)
    {
        print(name + "is attacking.");
        var set = new int[6] {
            0, 0, 1, 1, 2, 3
        };

        Enumerations.AttackDie[] dice;
        //Physical Attack
        if (physicalAttack > 0)
        {
            dice = new Enumerations.AttackDie[physicalAttack];
            for (var i = 0; i < physicalAttack; i++)
            {
                var j = set[Utilities.RollDice(1) - 1];
                dice[i] = (Enumerations.AttackDie)j;
                print("Attack die " + i + ":" + dice[i]);
            }

            target.Defend(dice, Enumerations.DamageType.Physical, this);
        }

        //Magical Attack
        if (magicalAttack > 0)
        {
            dice = new Enumerations.AttackDie[magicalAttack];
            for (var i = 0; i < physicalAttack; i++)
            {
                var j = set[Utilities.RollDice(1) - 1];
                dice[i] = (Enumerations.AttackDie)j;
                print("Attack die " + i + ":" + dice[i]);
            }

            target.Defend(dice, Enumerations.DamageType.Magical, this);
        }

        //Pure Attack
        if (pureAttack > 0)
        {
            dice = new Enumerations.AttackDie[pureAttack];
            for (var i = 0; i < physicalAttack; i++)
            {
                var j = set[Utilities.RollDice(1) - 1];
                dice[i] = (Enumerations.AttackDie)j;
                print("Attack die " + i + ":" + dice[i]);
            }

            target.Defend(dice, Enumerations.DamageType.Pure, this);
        }

        attackedThisTurn = true;
    }
コード例 #3
0
 public void AddEffect(Ability.BuffDebuff bd)
 {
     effects.Add(bd);
     _combatController = GetComponent <scr_CombatController>();
     _combatController.physicalAttack  += bd.physicalAttackMod;
     _combatController.physicalDefense += bd.physicalDefenseMod;
     _combatController.magicalAttack   += bd.magicalAttackMod;
     _combatController.magicalDefense  += bd.magicalDefenseMod;
     _combatController.pureAttack      += bd.pureAttackMod;
     _combatController.pureDefense     += bd.pureDefenseMod;
     UpdateActive();
     RpcUpdateMarkers();
 }
コード例 #4
0
 private void Start()
 {
     _stunMarker       = transform.Find("Canvas_Local/Marker_Stun").gameObject;
     _rootMarker       = transform.Find("Canvas_Local/Marker_Root").gameObject;
     _stasisMarker     = transform.Find("Canvas_Local/Marker_Stasis").gameObject;
     _silenceMarker    = transform.Find("Canvas_Local/Marker_Silence").gameObject;
     _blindMarker      = transform.Find("Canvas_Local/Marker_Blind").gameObject;
     _tauntMarker      = transform.Find("Canvas_Local/Marker_Taunt").gameObject;
     _slowMarker       = transform.Find("Canvas_Local/Marker_Slow").gameObject;
     _combatController = GetComponent <scr_CombatController>();
     _stunMarker.SetActive(false);
     _rootMarker.SetActive(false);
     _stasisMarker.SetActive(false);
     _silenceMarker.SetActive(false);
     _blindMarker.SetActive(false);
     _tauntMarker.SetActive(false);
     _slowMarker.SetActive(false);
 }
コード例 #5
0
 private void Start()
 {
     _combatController = GetComponent <scr_CombatController>();
 }
コード例 #6
0
    //Throws defense dice for the corresponding damageType. Pure is unblockable.
    public void Defend(Enumerations.AttackDie[] attackerDice, Enumerations.DamageType damageType, scr_CombatController attacker)
    {
        print(name + "is defending.");
        Enumerations.DefenseDie[] defenderDice;

        if (damageType == Enumerations.DamageType.Physical)
        {
            var set = new int[6] {
                0, 0, 1, 1, 2, 3
            };
            defenderDice = new Enumerations.DefenseDie[physicalDefense];
            for (var i = 0; i < physicalDefense; i++)
            {
                var j = set[Utilities.RollDice(1) - 1];
                defenderDice[i] = (Enumerations.DefenseDie)j;
                print("Defense die " + i + ":" + defenderDice[i]);
            }
        }
        else if (damageType == Enumerations.DamageType.Magical)
        {
            defenderDice = new Enumerations.DefenseDie[magicalDefense];
            for (var i = 0; i < magicalDefense; i++)
            {
                defenderDice[i] = (Enumerations.DefenseDie)Utilities.RollDice(1);
            }
        }
        else
        {
            defenderDice = new Enumerations.DefenseDie[0];
        }

        for (var i = 0; i < attackerDice.Length; i++)
        {
            if (attackerDice[i] == Enumerations.AttackDie.Hit)
            {
                if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Block)
                {
                }
                else if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Evade)
                {
                    //play miss sound
                }
                else if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Retaliate)
                {
                    if (attacker != null)
                    {
                        attacker.TakeDamage(1);
                    }
                }
                else
                {
                    TakeDamage(1);
                }
            }
            else if (attackerDice[i] == Enumerations.AttackDie.Critical)
            {
                if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Block)
                {
                }
                else if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Evade)
                {
                    //play miss sound
                }
                else if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Retaliate)
                {
                    if (attacker != null)
                    {
                        attacker.TakeDamage(2);
                    }
                }
                else
                {
                    TakeDamage(2);
                }
            }
            else if (attackerDice[i] == Enumerations.AttackDie.Pierce)
            {
                if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Block)
                {
                    TakeDamage(1);
                }
                else if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Evade)
                {
                    //play miss sound
                }
                else if (defenderDice.Length > i && defenderDice[i] == Enumerations.DefenseDie.Retaliate)
                {
                    if (attacker != null)
                    {
                        attacker.TakeDamage(1);
                    }
                }
                else
                {
                    TakeDamage(1);
                }
            }
        }
    }