protected override void OnExecute(BattleSystem battleSystem) { // Evaluate pre attack conditions. ConditionResult result = null; foreach (var condition in Source.GetComponents <Condition>()) { result = condition.Evaluate(); if (result.Type == ConditionResultType.Removed) { //Source.Status.RemoveCondition(result.Condition.Type); result.Condition.Remove(); // TODO: Do this later? Destroy(result.Condition); } else { // Show OnEvaluate message. if (result.Parameters.OnEvaluateMessage != string.Empty) { battleSystem.Log(BattleLogger.Format(result.Parameters.OnEvaluateMessage, Source, Source)); } if (result.Type == ConditionResultType.Failed) { break; } } } if (result != null && result.Type == ConditionResultType.Failed) { // Show OnFail message. if (result.Parameters.OnFailMessage != string.Empty) { battleSystem.Log(BattleLogger.Format(result.Parameters.OnFailMessage, Source, Source)); } // Instantiate OnFailAction and register action. if (result.Parameters.OnFailAction != null) { var action = Instantiate(result.Parameters.OnFailAction); action.SetReciever(Source); battleSystem.RegisterAction(action); } } else { battleSystem.Log(Source.name + " used {0}!", name.Replace("(Clone)", "")); // Relay to other attached components. Relay(battleSystem); } TriggerCompletion(); }
public BattleManager(Creature a, Creature b) { string bda; string bdb; if (a.Ability > b.Ability) { bda = "easy"; bdb = "hard"; } else if (a.Ability < b.Ability) { bda = "hard"; bdb = "easy"; } else { bda = "normal"; bdb = "normal"; } this.b1 = new Battling(a, bda, true); this.b2 = new Battling(b, bdb, false); list = new List <Battling>(); if (RollIniciative(a) > RollIniciative(b)) { list.Add(b1); list.Add(b2); } else { list.Add(b2); list.Add(b1); } this.turn = 0; this.Ended = false; this._RunEnded = false; this.BL = new BattleLogger(); }