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>(); }
//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; }
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(); }
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); }
private void Start() { _combatController = GetComponent <scr_CombatController>(); }
//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); } } } }