Ejemplo n.º 1
0
        public static void Write(this NetOutgoingMessage msg, ArmyScheme scheme)
        {
            byte[] objSerialized = new byte[0];

            // Verification and correction
            if (scheme.subs == null)
            {
                scheme.subs = new ArmyScheme[0];
            }

            // Start by group name
            msg.Write($"armystart:{scheme.groupName}");
            {
                // Write the leaders
                objSerialized = scheme.leaderEntities.Serialize();
                msg.Write(objSerialized.Length);
                msg.Write(objSerialized);

                // Write the army entities
                objSerialized = scheme.armyEntities.Serialize();
                msg.Write(objSerialized.Length);
                msg.Write(objSerialized);

                // Now write the subs
                msg.Write(scheme.subs.Length);
                for (int i = 0; i < scheme.subs.Length; i++)
                {
                    msg.Write(scheme.subs[i]);
                }
            }
        }
Ejemplo n.º 2
0
        public static ArmyScheme ReadArmyScheme(this NetIncomingMessage msg)
        {
            ArmyScheme current     = new ArmyScheme();
            string     startString = msg.ReadString();
            int        dotIndex    = startString.IndexOf(':');

            // Start by getting group name
            current.groupName = startString.Substring(dotIndex + 1, startString.Length - dotIndex - 1);
            {
                // Get the leaders
                current.leaderEntities = msg.ReadBytes(msg.ReadInt32()).Deserialize <EntityTypeScheme?[]>();

                // Get the army entities
                current.armyEntities = msg.ReadBytes(msg.ReadInt32()).Deserialize <EntityTypeScheme?[]>();

                // Now get the subs
                current.subs = new ArmyScheme[msg.ReadInt32()];
                for (int i = 0; i < current.subs.Length; i++)
                {
                    current.subs[i] = msg.ReadArmyScheme();
                }
            }

            return(current);
        }
Ejemplo n.º 3
0
        void GameStateLoop()
        {
            switch (currentGameState)
            {
            case EGameState.Basement:
            {
                WantedScheme = PatapolisArmyScheme;
                break;
            }
            }

            ActorSystem.AllActors.ForEach(actor => actor.Update());

            SendCurrentStatus();
        }