private void ExecuteCase(Case Case, Character Character) { //check each condition foreach (Condition condition in Case.Conditions) { if (!condition.Check(Character)) { return; } } //execute each action foreach (Quests.Action action in Case.Actions) { action.Execute(Character); } }
public static Case LoadCase(KmlNode CaseNode) { Case newCase = new Case(); newCase.Actions = new List<Quests.Action>(); newCase.Conditions = new List<Condition>(); //load conditions //KmlNode conditions = CaseNode.SelectSingleNode("if"); //foreach (KmlNode conditionNode in conditions.ChildNodes) //{ // newCase.Conditions.Add(LoadCondition(conditionNode)); //} //load actions KmlNode actions = CaseNode.SelectSingleNode("then"); foreach (KmlNode actionNode in actions.ChildNodes) { newCase.Actions.Add(LoadAction(actionNode)); } return newCase; }