Example #1
0
        protected FlagInstance CreateFlag(FlagUpdateData data)
        {
            FlagInstance inst = new FlagInstance();

            inst.ID   = data.FlagID;
            inst.Flag = FlagTypeList.GetFromAbriv(data.Abreviation);

            WorldFlags.Add(inst);
            return(inst);
        }
Example #2
0
        public override void Unpack(byte[] data)
        {
            Reset(data);

            if (IsServer())
            {
                FlagData.FlagID = ReadUInt16();
            }
            else
            {
                PlayerID = ReadByte();
                FlagData = ReadFlagUpdateData();
            }
        }
Example #3
0
        protected FlagInstance GetFlag(FlagUpdateData data)
        {
            FlagInstance inst = FindFlagByID(data.FlagID);

            if (inst != null)
            {
                return(inst);
            }

            inst      = new FlagInstance();
            inst.ID   = data.FlagID;
            inst.Flag = FlagTypeList.GetFromAbriv(data.Abreviation);

            WorldFlags.Add(inst);
            return(inst);
        }
Example #4
0
        protected FlagUpdateData ReadFlagUpdateData()
        {
            FlagUpdateData flag = new FlagUpdateData();

            flag.FlagID         = ReadUInt16();
            flag.Abreviation    = ReadFixedSizeString(2);
            flag.Status         = (FlagStatuses)ReadUInt16();
            flag.Endurance      = (FlagEndurances)ReadUInt16();
            flag.OwnerID        = ReadByte();
            flag.Position       = ReadVector3F();
            flag.LaunchPosition = ReadVector3F();
            flag.LandingPostion = ReadVector3F();
            flag.FlightTime     = ReadFloat();
            flag.FlightEnd      = ReadFloat();
            flag.InitalVelocity = ReadFloat();

            return(flag);
        }
Example #5
0
        protected FlagInstance SetFlagUpdateData(FlagUpdateData u)
        {
            bool created = false;

            FlagInstance flag = FindFlagByID(u.FlagID);

            if (flag == null)
            {
                created = true;
                flag    = CreateFlag(u);
            }

            flag.Status    = u.Status;
            flag.Endurance = u.Endurance;

            var owner = PlayerList.GetPlayerByID(u.Owner);

            flag.Owner = owner;
            if (owner != null)
            {
                owner.SetFlag(flag);
            }

            flag.CurrentPosition = u.Postion;

            flag.LastUpdatePostion = u.Postion;
            flag.LaunchPosition    = u.LaunchPosition;
            flag.LandingPostion    = u.LandingPostion;

            flag.FlightTime      = u.FlightTime;
            flag.FlightEnd       = u.FlightEnd;
            flag.InitialVelocity = u.InitalVelocity;

            if (created && FlagCreated != null)
            {
                FlagCreated.Invoke(this, flag);
            }
            else if (!created && FlagUpdated != null)
            {
                FlagUpdated.Invoke(this, flag);
            }

            return(flag);
        }
Example #6
0
        public void WriteFlagUpdateData(FlagUpdateData flag, bool useFakeFlag)
        {
            WriteInt16(flag.FlagID);
            if (useFakeFlag)
            {
                WriteFixedSizeString("PZ", 2);
            }
            else
            {
                WriteFixedSizeString(flag.Abreviation, 2);
            }

            WriteUInt16((UInt16)flag.Status);
            WriteUInt16((UInt16)flag.Endurance);
            WriteByte(flag.OwnerID);
            WriteVector3F(flag.Position);
            WriteVector3F(flag.LaunchPosition);
            WriteVector3F(flag.LandingPostion);
            WriteFloat(flag.FlightTime);
            WriteFloat(flag.FlightEnd);
            WriteFloat(flag.InitalVelocity);
        }