private List <Name> NoDialoguesLeft(RolePlayCharacter.RolePlayCharacterAsset rpc) { var decisions = rpc.Decide(); var hasFloor = _EventTriggerVariables[(Name)"Has(Floor)"]; var dialogueStates = rpc.GetAllBeliefs().ToList().FindAll(x => x.Name.ToString().Contains(_EventTriggerVariables[(Name)"DialogueState"])); List <string> dialogueStateTargets = new List <string>(); List <string> dialogueStateValues = new List <string>(); List <Name> noDialogueEvents = new List <Name>(); foreach (var d in dialogueStates) { var belief = d.Name.ToString().Split('(', ')'); dialogueStateTargets.Add(belief[1]); dialogueStateValues.Add(d.Value); } if (rpc.GetBeliefValue(hasFloor) != rpc.CharacterName.ToString()) { return(null); } if (!decisions.Any()) { int i = 0; foreach (var target in dialogueStateTargets) { noDialogueEvents.Add(EventHelper.ActionEnd(target, "NoDialoguesLeft(" + target + "," + dialogueStateValues[i] + ")", rpc.CharacterName.ToString())); i++; } return(noDialogueEvents); } /* var speakDecisions = decisions.Select(x => x.Key.ToString() == "Speak"); * * if (speakDecisions.IsEmpty()) * * return noDialoguesEvent; */ return(null); }
public RolePlayCharacterForm() { _rpc = new RolePlayCharacter.RolePlayCharacterAsset(); InitializeComponent(); }
public RolePlayCharacterForm() { _rpc = new RolePlayCharacter.RolePlayCharacterAsset(); InitializeComponent(); }