public virtual float rankThreat(ChessPieceBehaviour threat) { if (threat.containsModifier(Modifier.ModifierType.MUMMIES_CURSE)) { return(.1f); } if (threat._name == "Medusa" && threat.suseptableToEffect(this.gameObject)) { return(threat._attackMultiplier * 3f); } if (threat.suseptableToEffect(this.gameObject)) { return(threat._attackMultiplier * 1.5f); } return(threat._attackMultiplier); }
public virtual void takeDamage(int damage, ChessPieceBehaviour attacker) { Cursor.SetCursor(GameState.Instance.GUI.GetComponent <GameplayGUI> ()._pickTexture, Vector2.zero, CursorMode.Auto); _currentHP -= damage; if (_currentHP < 1) { //AIs piece was killed in an attack if (_owner == GameState.Instance.AIPlayer && GameState.Instance.CurrentPlayer == GameState.Instance.AIPlayer) { _AI_impaled = true; } death(); if (!attacker._name.Equals("Hydra")) //hydra makes multiple attacks and calls a victory check only once after all of them { GameState.Instance.checkForVictory(); //if an AIs attacking piece is killed it should still do a second action if available. if (GameState.Instance.GUI.GetComponent <GameplayGUI>().CurrentState == GameplayGUI.PickingStates.PICK_MODE && _AI_impaled == true) { _AI_impaled = false; GameState.Instance.AIPlayer.doSecondAction(); } } } else { anim.Play("Damaged"); _soundEffect.PlayOneShot(_DamagedSound, .75f); _currentBehavior = behaviorStates.THREATENED; anim.SetBool(_threatHash, true); //hydra makes multiple attacks and the calls a victory check which sets the gui state, and kings in duel mode should stay in that mode if (!attacker._name.Equals("Hydra") && GameState.Instance.GUI.GetComponent <GameplayGUI>().CurrentState != GameplayGUI.PickingStates.DUEL_MODE) { GameState.Instance.GUI.GetComponent <GameplayGUI>().CurrentState = GameplayGUI.PickingStates.PICK_MODE; } } }