Ejemplo n.º 1
0
        public override StateOperationResult OnSelectPosition(FDPosition position)
        {
            FDCreature creature = gameAction.GetCreatureAt(position);

            if (creature == null)
            {
                // Empty space, show system menu
                MenuSystemState state = new MenuSystemState(gameAction, position);
                return(new StateOperationResult(StateOperationResult.ResultType.Push, state));
            }
            else if (creature.IsActionable())
            {
                // Actionable friend
                ShowMoveRangeState nextState = new ShowMoveRangeState(gameAction, creature);
                return(new StateOperationResult(StateOperationResult.ResultType.Push, nextState));
            }
            else
            {
                // Show creature information
                CreatureShowInfoPack pack = new CreatureShowInfoPack(creature.Clone(), CreatureInfoType.View);
                var gameCallback          = gameAction.GetCallback();
                gameCallback.OnHandlePack(pack);

                return(new StateOperationResult(StateOperationResult.ResultType.None));
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="creatureId"></param>
 /// <param name="sequenceId"></param>
 /// <param name="startIndex"></param>
 /// <param name="endIndex"></param>
 public void ShowTalk(int sequenceId, int startIndex, int endIndex)
 {
     for (int i = startIndex; i <= endIndex; i++)
     {
         ConversationId conversationId = ConversationId.Create(this.ChapterId(), sequenceId, i);
         string         key            = conversationId.GetKeyForId();
         if (chapterDefinition.ConversationIds.ContainsKey(key))
         {
             int        creatureId = chapterDefinition.ConversationIds[key];
             FDCreature creature   = this.GetCreature(creatureId);
             TalkPack   pack       = new TalkPack(creature.Clone(), conversationId);
             gameCallback.OnHandlePack(pack);
         }
     }
 }
Ejemplo n.º 3
0
 public CreatureRefreshPack(FDCreature creature)
 {
     this.Type     = PackType.CreatureRefresh;
     this.Creature = creature.Clone();
 }