private bool HandleActivationConditions(Constants.AbilityActivationCondition[] conditions) { bool result = false; if (RecoveryManager.HasRecovery == false) { return(true); } bool freeActivation = conditions.Contains(Constants.AbilityActivationCondition.IgnoreCost) && conditions.Contains(Constants.AbilityActivationCondition.IgnoreRecovery); if (freeActivation) { return(true); } if (conditions.Contains(Constants.AbilityActivationCondition.Normal) || conditions.Length < 1) { //Check For Resource result = RecoveryManager.HasCharges; if (result == true) { RecoveryManager.SpendCharge(); //Spend Resource } return(result); } if (conditions.Contains(Constants.AbilityActivationCondition.IgnoreRecovery)) { //Check For Resource //Spend Resource } if (conditions.Contains(Constants.AbilityActivationCondition.IgnoreCost)) { result = RecoveryManager.HasCharges; if (result == true) { RecoveryManager.SpendCharge(); } return(result); } return(result); }
private bool HandleActivationConditions(Constants.AbilityActivationCondition[] conditions) { bool result = false; if (RecoveryManager.HasRecovery == false) { return(true); } bool freeActivation = conditions.Contains(Constants.AbilityActivationCondition.IgnoreCost) && conditions.Contains(Constants.AbilityActivationCondition.IgnoreRecovery); if (freeActivation) { return(true); } if (conditions.Contains(Constants.AbilityActivationCondition.Normal) || conditions.Length < 1) { //Check For Resource result = RecoveryManager.HasCharges; //Debug.Log(abilityName + " has charges to spend " + result); //Debug.Log(RecoveryManager.Charges + " charges left on " + abilityName); if (result == true) { RecoveryManager.SpendCharge(); //Spend Resource } BufferMe(result); return(result); } if (conditions.Contains(Constants.AbilityActivationCondition.IgnoreRecovery)) { //Check For Resource //Spend Resource } if (conditions.Contains(Constants.AbilityActivationCondition.IgnoreCost)) { result = RecoveryManager.HasCharges; if (result == true) { RecoveryManager.SpendCharge(); } BufferMe(result); return(result); } if (Source.Entity() is EntityEnemy) { EntityEnemy baddie = Source.Entity() as EntityEnemy; if (MeetsRequiredConditions(baddie.AISensor.ClosestTarget) == false) { result = false; } } else { if (MeetsRequiredConditions(null) == false) { //Debug.Log(abilityName + " failed to meet requirements"); result = false; } } BufferMe(result); return(result); }
private bool HandleActivationConditions(Constants.AbilityActivationCondition[] conditions) { //Debug.Log("handeling activation conditions"); bool result = false; if (RecoveryManager.HasRecovery == false) { result = true; } bool freeActivation = conditions.Contains(Constants.AbilityActivationCondition.IgnoreCost) && conditions.Contains(Constants.AbilityActivationCondition.IgnoreRecovery); if (freeActivation) { result = true; } if (conditions.Contains(Constants.AbilityActivationCondition.Normal) || conditions.Length < 1) { //Check For Resource result = RecoveryManager.HasCharges; //Debug.Log(abilityName + " has charges to spend " + result); //Debug.Log(RecoveryManager.Charges + " charges left on " + abilityName); if (result == true) { RecoveryManager.SpendCharge(); //Spend Resource } //BufferMe(result); //re result; } if (conditions.Contains(Constants.AbilityActivationCondition.IgnoreRecovery)) { //Check For Resource //Spend Resource } if (conditions.Contains(Constants.AbilityActivationCondition.IgnoreCost)) { result = RecoveryManager.HasCharges; if (result == true) { RecoveryManager.SpendCharge(); } BufferMe(result); return(result); } if (Source.Entity() is EntityEnemy) { EntityEnemy baddie = Source.Entity() as EntityEnemy; if (MeetsRequiredConditions(baddie.AISensor.ClosestTarget) == false) { result = false; } } else { //Debug.Log("Checking conditions for " + abilityName + " at the ability level"); if (MeetsRequiredConditions(null) == false) { //Debug.Log(abilityName + " failed to meet requirements"); result = false; } } if (ParentAbility != null) { result = IsSequenceRight(); } //Debug.Log("Result for handle activatons is " + result); BufferMe(result); return(result); }