public bool ExtractData(GetDataEventArgs args, MemoryStream data, PvPPlayer attacker, out ProjectileNewArgs arg)
        {
            arg = null;
            if (PresetData.ProjectileDummy.Contains(Type))
            {
                return(false);
            }

            arg = new ProjectileNewArgs {
                Args     = args,
                Attacker = attacker,

                Identity  = data.ReadInt16(),
                Position  = new Vector2(data.ReadSingle(), data.ReadSingle()),
                Velocity  = new Vector2(data.ReadSingle(), data.ReadSingle()),
                Knockback = data.ReadSingle(),
                Damage    = data.ReadInt16(),
                Owner     = data.ReadByte(),
                Type      = data.ReadInt16(),
                AiFlags   = (BitsByte)data.ReadByte(),
                Ai0       = AiFlags[0] ? Ai0 = data.ReadSingle() : 0,
                Ai1       = AiFlags[1] ? data.ReadSingle() : 0,

                Ai = new float[Projectile.maxAI],

                Proj   = new PvPProjectile(Type, Identity),
                Weapon = ProjectileUtils.GetProjectileWeapon(attacker, Type)
            };

            return(true);
        }
Esempio n. 2
0
        public ProjectileNewArgs(GetDataEventArgs args, MemoryStream data, PvPPlayer attacker)
        {
            Args     = args;
            Attacker = attacker;

            Identity  = data.ReadInt16();
            Position  = new Vector2(data.ReadSingle(), data.ReadSingle());
            Velocity  = new Vector2(data.ReadSingle(), data.ReadSingle());
            Knockback = data.ReadSingle();
            Damage    = data.ReadInt16();
            Owner     = data.ReadByte();
            Type      = data.ReadInt16();
            AiFlags   = (BitsByte)data.ReadByte();
            Ai0       = 0;
            Ai1       = 0;
            if (AiFlags[0])
            {
                Ai0 = data.ReadSingle();
            }
            if (AiFlags[1])
            {
                Ai1 = data.ReadSingle();
            }
            Ai = new float[Projectile.maxAI];

            Weapon = ProjectileUtils.GetProjectileWeapon(attacker, Type);
        }