Esempio n. 1
0
        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();
 }