Ejemplo n.º 1
0
        public void AddPlayer(Characters.Character character)
        {
            Send(string.Concat("GM|+", character.PatternDisplayChar()));

            character.NClient.Send(string.Concat("fC", Fights.Count)); //Fight

            lock (Characters)
                Characters.Add(character);

            if (Characters.Count > 0)
            {
                character.NClient.Send(string.Concat("GM", CharactersPattern()));
            }

            if (Npcs.Count > 0)
            {
                character.NClient.Send(string.Concat("GM", NPCsPattern()));
            }

            if (MonstersGroups.Count > 0)
            {
                character.NClient.Send(string.Concat("GM", MonstersGroupsPattern()));
            }

            if (Collector != null && !Collector.IsInFight)
            {
                character.NClient.Send(string.Concat("GM", Collector.PatternMap()));
            }

            if (Fights.Count > 0)
            {
                character.NClient.Send(FormatFightCount());

                foreach (Fight fight in Fights)
                {
                    if (fight.State == FightState.STARTING)
                    {
                        character.NClient.Send(fight.FormatFlagShow());
                        character.NClient.Send(fight.FormatFlagFighter(fight.Team1.GetFighters()));
                        character.NClient.Send(fight.FormatFlagFighter(fight.Team2.GetFighters()));

                        if (fight.Team1.IsToggle(ToggleType.LOCK))
                        {
                            character.NClient.Send("Go+A" + fight.Team1.ID);
                        }
                        if (fight.Team1.IsToggle(ToggleType.HELP))
                        {
                            character.NClient.Send("Go+H" + fight.Team1.ID);
                        }
                        if (fight.Team1.IsToggle(ToggleType.PARTY))
                        {
                            character.NClient.Send("Go+P" + fight.Team1.ID);
                        }
                        if (fight.Team1.IsToggle(ToggleType.SPECTATOR))
                        {
                            character.NClient.Send("Go+S" + fight.Team1.ID);
                        }

                        if (fight.Team2.IsToggle(ToggleType.LOCK))
                        {
                            character.NClient.Send("Go+A" + fight.Team2.ID);
                        }
                        if (fight.Team2.IsToggle(ToggleType.HELP))
                        {
                            character.NClient.Send("Go+H" + fight.Team2.ID);
                        }
                        if (fight.Team2.IsToggle(ToggleType.PARTY))
                        {
                            character.NClient.Send("Go+P" + fight.Team2.ID);
                        }
                        if (fight.Team2.IsToggle(ToggleType.SPECTATOR))
                        {
                            character.NClient.Send("Go+S" + fight.Team2.ID);
                        }
                    }
                }
            }
        }