예제 #1
0
        private static ExecutionResult SendMessage(Kingdom k, Dictionary <string, object> dict)
        {
            if (!dict.ContainsKey("kingdom"))
            {
                return(new ExecutionResult(false, new MessageCallback(Locale.Get("commands.build.no_kingdom", k.Language), ECharacter.Knight)));
            }

            Guid   hid  = (dict.Get("human") as Human ?? k.FindBySkill("dyplomacy")).HumanId;
            string dest = dict["kingdom"] as string;

            int index;

            for (index = 0; index < k.Humans.Count && k.Humans[index].HumanId != hid; ++index)
            {
                ;
            }

            if (k.Humans[index].AddTask(new HumanTask(k.Humans[index])
            {
                Destination = dest, TaskType = ETask.ListeningKing
            }))
            {
                k.Humans[index].TasksToDo.Last().CalculateTaskTime(k.Humans[index], 1, "dyplomacy");
                k.Temp = k.Humans[index].HumanId.ToString();

                return(new ExecutionResult(new MessageCallback(Locale.Get("answers.write_message", k.Language)))
                {
                    NewState = EState.Dictates
                });
            }
            else
            {
                return(new ExecutionResult(false, new MessageCallback(
                                               Locale.Get(string.Format("problems.dont_work", k.Humans[index].GetName(k.Language)), k.Language),
                                               ECharacter.Knight
                                               )));
            }
        }