private BattleMapPlayer InitPlayer()
        {
            ByteReader BR = new ByteReader(PlayerInfo);

            PlayerManager.OnlinePlayerName  = BR.ReadString();
            PlayerManager.OnlinePlayerLevel = BR.ReadInt32();

            BR.Clear();

            Unit      NewUnit      = Unit.FromFullName("Normal/Original/Voltaire", Owner.Content, PlayerManager.DicUnitType, PlayerManager.DicRequirement, PlayerManager.DicEffect, PlayerManager.DicAutomaticSkillTarget);
            Character NewCharacter = new Character("Original/Greg", Owner.Content, PlayerManager.DicRequirement, PlayerManager.DicEffect, PlayerManager.DicAutomaticSkillTarget, PlayerManager.DicManualSkillTarget);

            NewCharacter.Level           = 1;
            NewUnit.ArrayCharacterActive = new Character[] { NewCharacter };

            Squad NewSquad = new Squad("Squad", NewUnit);

            NewSquad.IsPlayerControlled = true;

            BattleMapPlayer NewPlayer = new BattleMapPlayer(PlayerManager.OnlinePlayerID, PlayerManager.OnlinePlayerName, BattleMapPlayer.PlayerTypes.Online, false, 0, true, Color.Blue);

            NewPlayer.Inventory.ActiveLoadout.ListSquad.Add(NewSquad);

            return(NewPlayer);
        }
예제 #2
0
 public Player(BattleMapPlayer Clone)
     : base(Clone)
 {
     this.ListSquad = new List <Squad>();
     ListSpawnPoint = new List <EventPoint>();
     this.IsAlive   = false;
 }
예제 #3
0
        public override void AddLocalPlayer(BattleMapPlayer NewPlayer)
        {
            Player NewDeahtmatchPlayer = new Player(NewPlayer);

            ListPlayer.Add(NewDeahtmatchPlayer);
            ListLocalPlayerInfo.Add(NewDeahtmatchPlayer);
        }
예제 #4
0
        protected override void Read(OnlineReader Sender)
        {
            int ListJoiningPlayerInfoCount = Sender.ReadInt32();

            for (int P = 0; P < ListJoiningPlayerInfoCount; P++)
            {
                BattleMapPlayer JoiningPlayer = new BattleMapPlayer(Sender.ReadString(), Sender.ReadString(), BattleMapPlayer.PlayerTypes.Player, true, 0, true, Color.Blue);

                ListJoiningPlayer.Add(JoiningPlayer);
            }
        }
        protected override void Execute(IOnlineConnection Host)
        {
            PlayerManager.OnlinePlayerID = PlayerID;

            BattleMapPlayer NewPlayer = InitPlayer();

            PlayerManager.ListLocalPlayer.Add(NewPlayer);

            Owner.IdentifyToCommunicationServer(PlayerManager.OnlinePlayerID, PlayerManager.OnlinePlayerName, PlayerInfo);
            Owner.AskForPlayerList();
        }
        protected override void Read(OnlineReader Sender)
        {
            int ListPlayerNameCount = Sender.ReadInt32();

            ArrayLobbyPlayer = new BattleMapPlayer[ListPlayerNameCount];
            for (int P = 0; P < ListPlayerNameCount; ++P)
            {
                string     PlayerID        = Sender.ReadString();
                byte[]     ArrayPlayerInfo = Sender.ReadByteArray();
                ByteReader BR = new ByteReader(ArrayPlayerInfo);

                ArrayLobbyPlayer[P]       = new BattleMapPlayer(PlayerID, BR.ReadString(), BattleMapPlayer.PlayerTypes.Online, true, 0, true, Color.Blue);
                ArrayLobbyPlayer[P].Level = BR.ReadInt32();

                BR.Clear();
            }
        }
        protected override void Execute(IOnlineConnection Sender)
        {
            Dictionary <string, List <Squad> > DicSpawnSquadByPlayer = new Dictionary <string, List <Squad> >();

            for (int P = 0; P < Owner.ListRoomPlayer.Count; ++P)
            {
                DicSpawnSquadByPlayer.Add(Owner.ListRoomPlayer[P].Name, Owner.ListRoomPlayer[P].Inventory.ActiveLoadout.ListSquad);
            }

            BattleMap NewMap;

            if (CreatedGroup.Room.MapPath == "Random")
            {
                NewMap = BattleMap.DicBattmeMapType[Owner.MapType].GetNewMap(Owner.RoomType);
            }
            else
            {
                NewMap = BattleMap.DicBattmeMapType[Owner.MapType].GetNewMap(Owner.RoomType);
            }

            NewMap.ListGameScreen        = new List <GameScreen>();
            NewMap.BattleMapPath         = Owner.MapPath;
            NewMap.DicSpawnSquadByPlayer = DicSpawnSquadByPlayer;
            NewMap.InitOnlineServer(OnlineServer, CreatedGroup);
            CreatedGroup.SetGame(NewMap);

            for (int P = 0; P < CreatedGroup.Room.ListOnlinePlayer.Count; P++)
            {
                IOnlineConnection ActiveOnlinePlayer = CreatedGroup.Room.ListOnlinePlayer[P];
                BattleMapPlayer   ActivePlayer       = Owner.ListRoomPlayer[P];
                ActivePlayer.OnlineClient = ActiveOnlinePlayer;

                NewMap.AddLocalPlayer(ActivePlayer);

                //Add Game Specific scripts
                Dictionary <string, OnlineScript> DicNewScript = OnlineHelper.GetBattleMapScriptsServer(CreatedGroup, ActivePlayer);
                ActiveOnlinePlayer.AddOrReplaceScripts(DicNewScript);
            }

            for (int P = 0; P < CreatedGroup.Room.ListOnlinePlayer.Count; P++)
            {
                IOnlineConnection ActiveOnlinePlayer = CreatedGroup.Room.ListOnlinePlayer[P];
                ActiveOnlinePlayer.Send(new CreateGameScriptServer());
            }
        }
예제 #8
0
 public ChangeLoadoutScriptServer(BattleMapPlayer ActivePlayer)
     : base(ScriptName)
 {
     this.ActivePlayer = ActivePlayer;
 }
예제 #9
0
        public static Dictionary <string, OnlineScript> GetBattleMapScriptsServer(BattleMapClientGroup ActiveGroup, BattleMapPlayer ActivePlayer)
        {
            Dictionary <string, OnlineScript> DicNewScript = new Dictionary <string, OnlineScript>();

            DicNewScript.Add(MoveCursorScriptServer.ScriptName, new MoveCursorScriptServer(ActiveGroup));
            DicNewScript.Add(OpenMenuScriptServer.ScriptName, new OpenMenuScriptServer(ActiveGroup, ActiveGroup.BattleMapGame.GetOnlineActionPanel()));
            DicNewScript.Add(AskTripleThunderGameDataScriptServer.ScriptName, new AskTripleThunderGameDataScriptServer(ActiveGroup));

            return(DicNewScript);
        }
예제 #10
0
 public AskChangeLoadoutScriptClient(BattleMapPlayer ActivePlayer)
     : base("Ask Change Loadout")
 {
     this.ActivePlayer = ActivePlayer;
 }