示例#1
0
 public Poison(BinaryReader reader)
 {
     Owner     = null;
     PType     = (PoisonType)reader.ReadByte();
     Value     = reader.ReadInt32();
     Duration  = reader.ReadInt64();
     Time      = reader.ReadInt64();
     TickTime  = reader.ReadInt64();
     TickSpeed = reader.ReadInt64();
 }
示例#2
0
        protected override void CompleteRangeAttack(IList <object> data)
        {
            MapObject   target  = (MapObject)data[0];
            int         damage  = (int)data[1];
            DefenceType defence = (DefenceType)data[2];
            PoisonType  pType   = (PoisonType)data[3];

            if (target == null || !target.IsAttackTarget(this) || target.CurrentMap != CurrentMap || target.Node == null)
            {
                return;
            }

            if (target.Attacked(this, damage, defence) <= 0)
            {
                return;
            }

            PoisonTarget(target, 5, 5, pType, 1000);
        }
示例#3
0
        private int BuffImage(PoisonType type)
        {
            switch (type)
            {
            case PoisonType.Green:
                return(221);

            case PoisonType.Red:
                return(222);

            case PoisonType.Slow:
                return(225);

            case PoisonType.Frozen:
                return(223);

            case PoisonType.Stun:
                return(224);

            case PoisonType.Paralysis:
                return(233);

            case PoisonType.DelayedExplosion:
                return(229);

            case PoisonType.Bleeding:
                return(231);

            case PoisonType.LRParalysis:
                return(233);

            case PoisonType.Blindness:
                return(226);

            case PoisonType.Dazed:
                return(230);

            default:
                return(0);
            }
        }
示例#4
0
        protected override void CompleteRangeAttack(IList <object> data)
        {
            MapObject   target  = (MapObject)data[0];
            int         damage  = (int)data[1];
            DefenceType defence = (DefenceType)data[2];
            PoisonType  pType   = (PoisonType)data[3];

            if (target == null || !target.IsAttackTarget(this) || target.CurrentMap != CurrentMap || target.Node == null)
            {
                return;
            }

            target.Attacked(this, damage, defence);

            if (Envir.Random.Next(5) == 0)
            {
                target.ApplyPoison(new Poison {
                    Owner = this, Duration = 5, PType = pType, Value = GetAttackPower(Stats[Stat.MinSC], Stats[Stat.MaxSC]), TickSpeed = 1000
                }, this);
            }
        }
示例#5
0
        protected override void ReadPacket(BinaryReader reader)
        {
            ObjectID = reader.ReadUInt32();
            Name = reader.ReadString();
            GuildName = reader.ReadString();
            GuildRankName = reader.ReadString();
            NameColour = Color.FromArgb(reader.ReadInt32());
            Class = (MirClass)reader.ReadByte();
            Gender = (MirGender)reader.ReadByte();
            Level = reader.ReadByte();
            Location = new Point(reader.ReadInt32(), reader.ReadInt32());
            Direction = (MirDirection)reader.ReadByte();
            Hair = reader.ReadByte();
            Light = reader.ReadByte();
            Weapon = reader.ReadInt16();
            Armour = reader.ReadInt16();
            Poison = (PoisonType)reader.ReadByte();
            Dead = reader.ReadBoolean();
            Hidden = reader.ReadBoolean();
            Effect = (SpellEffect)reader.ReadByte();
            WingEffect = reader.ReadByte();
            Extra = reader.ReadBoolean();
            MountType = reader.ReadInt16();
            RidingMount = reader.ReadBoolean();
            Fishing = reader.ReadBoolean();

            TransformType = reader.ReadInt16();

            ElementOrbEffect = reader.ReadUInt32();
            ElementOrbLvl = reader.ReadUInt32();
            ElementOrbMax = reader.ReadUInt32();

            int count = reader.ReadInt32();
            for (int i = 0; i < count; i++)
            {
                Buffs.Add((BuffType)reader.ReadByte());
            }

            LevelEffects = (LevelEffects)reader.ReadByte();
        }
示例#6
0
 protected override void ReadPacket(BinaryReader reader)
 {
     ObjectID = reader.ReadUInt32();
     Poison = (PoisonType)reader.ReadByte();
 }
示例#7
0
 protected override void ReadPacket(BinaryReader reader)
 {
     Poison = (PoisonType)reader.ReadByte();
 }
示例#8
0
 protected override void ReadPacket(BinaryReader reader)
 {
     ObjectID = reader.ReadUInt32();
     Name = reader.ReadString();
     NameColour = Color.FromArgb(reader.ReadInt32());
     Location = new Point(reader.ReadInt32(), reader.ReadInt32());
     Image = (Monster)reader.ReadUInt16();
     Direction = (MirDirection)reader.ReadByte();
     Effect = reader.ReadByte();
     AI = reader.ReadByte();
     Light = reader.ReadByte();
     Dead = reader.ReadBoolean();
     Skeleton = reader.ReadBoolean();
     Poison = (PoisonType)reader.ReadByte();
     Hidden = reader.ReadBoolean();
     ShockTime = reader.ReadInt64();
     BindingShotCenter = reader.ReadBoolean();
     Extra = reader.ReadBoolean();
     ExtraByte = reader.ReadByte();
 }
示例#9
0
 protected override void ReadPacket(BinaryReader reader)
 {
     ObjectID = reader.ReadUInt32();
     Name = reader.ReadString();
     NameColour = Color.FromArgb(reader.ReadInt32());
     Class = (MirClass) reader.ReadByte();
     Gender = (MirGender) reader.ReadByte();
     Location = new Point(reader.ReadInt32(), reader.ReadInt32());
     Direction = (MirDirection) reader.ReadByte();
     Hair = reader.ReadByte();
     Light = reader.ReadByte();
     Weapon = reader.ReadSByte();
     Armour = reader.ReadSByte();
     Poison = (PoisonType) reader.ReadByte();
     Dead = reader.ReadBoolean();
     Hidden = reader.ReadBoolean();
     Effect = (SpellEffect) reader.ReadByte();
     WingEffect = reader.ReadByte();
 }
示例#10
0
 public static Effect Poison(PoisonType poisonType) => NWScript.EffectPoison((int)poisonType);
示例#11
0
 public Poison(BinaryReader reader)
 {
     Owner = null;
     PType = (PoisonType)reader.ReadByte();
     Value = reader.ReadInt32();
     Duration = reader.ReadInt64();
     Time = reader.ReadInt64();
     TickTime = reader.ReadInt64();
     TickSpeed = reader.ReadInt64();
 }
示例#12
0
 public static MonsterHitEffect Poison(PoisonType poisonType) => new MonsterHitEffect(IPOnMonsterHit.Poison, (int)poisonType);
示例#13
0
 public static MonsterHitEffect Poison(PoisonType poisonType)
 {
     return(new MonsterHitEffect(IPOnMonsterHit.Poison, (int)poisonType));
 }
示例#14
0
 public static Effect Poison(PoisonType poisonType)
 {
     return(NWScript.EffectPoison((int)poisonType) !);
 }