コード例 #1
0
ファイル: TestAct.cs プロジェクト: csecong/Mud.Net
 private static void GenericAct(ActOptions option, ICharacter character, ICharacter victim, Func <ICharacter, string> createPhraseFunc)
 {
     if (option == ActOptions.ToAll || option == ActOptions.ToRoom || option == ActOptions.ToNotVictim)
     {
         foreach (ICharacter to in character.Room.People)
         {
             if (option == ActOptions.ToAll ||
                 (option == ActOptions.ToRoom && to != character) ||
                 (option == ActOptions.ToNotVictim && to != victim))
             {
                 string phrase = createPhraseFunc(character);
                 to.Send(phrase);
             }
         }
     }
     else if (option == ActOptions.ToCharacter)
     {
         string phrase = createPhraseFunc(character);
         character.Send(phrase);
     }
     else if (option == ActOptions.ToVictim)
     {
         string phrase = createPhraseFunc(character);
         victim.Send(phrase);
     }
 }
コード例 #2
0
ファイル: TestAct.cs プロジェクト: csecong/Mud.Net
        public static void Act(ActOptions options, string format, ICharacter character, object param1, object param2, params object[] parameters)
        {
            if (character?.Room == null)
            {
                Log.Default.WriteLine(LogLevels.Error, "Act with null ICharacter or null room");
                return;
            }

            // Firstly, apply .net formatting
            string rawPhrase = string.Format(format, parameters);

            // Secondly, apply Mud formatting
            if (options == ActOptions.ToAll || options == ActOptions.ToRoom || options == ActOptions.ToNotVictim)
            {
                foreach (ICharacter to in character.Room.People)
                {
                    if (options == ActOptions.ToAll ||
                        (options == ActOptions.ToRoom && to != character) ||
                        (options == ActOptions.ToNotVictim && to != (ICharacter)param1))
                    {
                        string phrase = Format(rawPhrase, to, character, param1, param2);
                        to.Send(phrase);
                    }
                }
            }
            else if (options == ActOptions.ToCharacter)
            {
                string phrase = Format(rawPhrase, character, character, param1, param2);
                character.Send(phrase);
            }
            else if (options == ActOptions.ToVictim)
            {
                string phrase = Format(rawPhrase, (ICharacter)param1, character, param1, param2);
                ((ICharacter)param1).Send(phrase);
            }
        }
コード例 #3
0
ファイル: TestAct.cs プロジェクト: csecong/Mud.Net
 public static void Act(string format, ICharacter character, ICharacter victim, ActOptions option)
 {
     GenericAct(option, character, victim, target => CreatePhrase(format, target, character, victim));
 }