public override int OnChooseInformation(InformationInstance[] informations) { string[] texts = informations.Select(info => info.Description).ToArray(); TextTopBottomButton view = new TextTopBottomButton(null, this, "Choose an information...", texts, null, notificator); main.LaunchView(view); return view.SelectedIndex; }
public override int OnChooseOption(EventOption[] options, int[] willpowerCost, EventContext context, Event e) { string[] texts = new string[options.Length]; for(int i = 0; i < options.Length; ++i) { if (willpowerCost[i] > 0) { texts[i] = EventHelper.ReplaceStrings(options[i].Label, context) + " (Cost: " + willpowerCost[i] + " WP)"; } else texts[i] = EventHelper.ReplaceStrings(options[i].Label, context); } bool[] enabled = willpowerCost.Select(cost => cost <= WillPower).ToArray(); TextTopBottomButton view = new TextTopBottomButton(context.GetCharacters(), this, e.CreateActionDescription(context), texts, enabled, notificator); main.LaunchView(view); return view.SelectedIndex; }
public override ActionDescriptor OnTick(Action[] soloActions, Dictionary<Character, Action[]> characterActions) { Character[] allCharacters = CurrentRoom.GetCharacters(this).ToArray(); bool[] characterEnables = allCharacters.Select(c => characterActions.ContainsKey(c)).ToArray(); Character[] characters = characterActions.Keys.ToArray(); BothButton view = new BothButton(this, allCharacters, characterEnables, soloActions.Select(a => a.Label).ToArray(), null, notificator); main.LaunchView(view); if (!view.SelectedTop) return new ActionDescriptor(soloActions[view.SelectedIndex], this, null); Character selectedCharacter = allCharacters[view.SelectedIndex]; //Player selected a character. TextTopBottomButton secondView = new TextTopBottomButton(new Character[] { selectedCharacter }, this, "What would you like to do with " + selectedCharacter.Fullname, characterActions[selectedCharacter].Select(a => a.Label).ToArray(), null, notificator); main.LaunchView(secondView); return new ActionDescriptor(characterActions[selectedCharacter][secondView.SelectedIndex], this, selectedCharacter); }
public override int OnBeginDay(Room[] rooms) { TextTopBottomButton view = new TextTopBottomButton(null, this, "A new day greets you!\nWhere would you like to go?", rooms.Select(r => r.Name).ToArray(), null, notificator); main.LaunchView(view); return view.SelectedIndex; }