public override void OnTriggeredBy(Sprite sprite, Sprite target)
        {
            var debuff = new Debuff_poison("Poison Trap", 5000, 35, 25, 0.35, true);

            if (!target.HasBuff(debuff.Name))
            {
                debuff.OnApplied(target, debuff);
                {
                    if (target is Monster || target is Mundane || target is Aisling)
                    {
                        target.Show(Scope.NearbyAislings,
                                    new ServerFormat29((uint)target.Serial, (uint)target.Serial,
                                                       Spell.Template.TargetAnimation, 0, 100));
                    }
                };
            }
        }
Esempio n. 2
0
        public override void OnSuccess(Sprite sprite, Sprite target)
        {
            if (sprite is Aisling)
            {
                var client = (sprite as Aisling).Client;

                client.TrainSpell(Spell);

                var debuff = new Debuff_poison("ard puinsein", 700, 35, 25, 0.02);
                var curses = target.Debuffs.Values.OfType <Debuff_poison>().ToList();

                if (curses.Count == 0)
                {
                    if (!target.HasDebuff(debuff.Name))
                    {
                        debuff.OnApplied(target, debuff);

                        SendCastSpellOrder(sprite, target, client);
                    }
                }
                else
                {
                    AlreadyCursed(client, curses);
                }
            }
            else
            {
                var debuff = new Debuff_poison("ard puinsein", 700, 35, 25, 0.02);
                var curses = target.Debuffs.Values.OfType <Debuff_poison>().ToList();

                if (curses.Count == 0)
                {
                    if (!target.HasDebuff(debuff.Name))
                    {
                        debuff.OnApplied(target, debuff);

                        SpriteSpellCastOrder(sprite, target);
                    }
                }
            }
        }
        public override void OnSuccess(Sprite sprite, Sprite target)
        {
            if (sprite is Aisling)
            {
                var client = (sprite as Aisling).Client;

                client.TrainSpell(Spell);

                var debuff = new Debuff_poison("beag puinsein", 100, 35, 25, 0.10);
                var curses = target.Debuffs.Values.OfType <Debuff_poison>().ToList();

                if (curses.Count == 0)
                {
                    if (!target.HasDebuff(debuff.Name))
                    {
                        debuff.OnApplied(target, debuff);

                        if (target is Aisling)
                        {
                            (target as Aisling).Client
                            .SendMessage(0x02,
                                         $"{client.Aisling.Username} Attacks you with {Spell.Template.Name}.");
                        }

                        client.SendMessage(0x02, $"you cast {Spell.Template.Name}");
                        client.SendAnimation(Spell.Template.Animation, target, sprite);

                        var action = new ServerFormat1A
                        {
                            Serial = sprite.Serial,
                            Number = (byte)(client.Aisling.Path == Class.Priest ? 0x80 :
                                            client.Aisling.Path == Class.Wizard ? 0x88 : 0x06),
                            Speed = 30
                        };

                        var hpbar = new ServerFormat13
                        {
                            Serial = sprite.Serial,
                            Health = 255,
                            Sound  = Spell.Template.Sound
                        };

                        client.Aisling.Show(Scope.NearbyAislings, action);
                        client.Aisling.Show(Scope.NearbyAislings, hpbar);
                    }
                }
                else
                {
                    var c = curses.FirstOrDefault();
                    if (c != null)
                    {
                        client.SendMessage(0x02, $"Another poison is already applied. [{c.Name}].");
                    }
                }
            }
            else
            {
                var debuff = new Debuff_poison("beag puinsein", 100, 35, 25, 0.10);
                var curses = target.Debuffs.Values.OfType <Debuff_poison>().ToList();

                if (curses.Count == 0)
                {
                    if (!target.HasDebuff(debuff.Name))
                    {
                        debuff.OnApplied(target, debuff);

                        if (target is Aisling)
                        {
                            (target as Aisling).Client
                            .SendMessage(0x02,
                                         $"{(sprite is Monster ? (sprite as Monster).Template.Name : (sprite as Mundane).Template.Name) ?? "Monster"} Attacks you with {Spell.Template.Name}.");
                        }

                        target.SendAnimation(Spell.Template.Animation, target, sprite);

                        var action = new ServerFormat1A
                        {
                            Serial = sprite.Serial,
                            Number = 1,
                            Speed  = 30
                        };

                        var hpbar = new ServerFormat13
                        {
                            Serial = target.Serial,
                            Health = 255,
                            Sound  = Spell.Template.Sound
                        };

                        sprite.Show(Scope.NearbyAislings, action);
                        target.Show(Scope.NearbyAislings, hpbar);
                    }
                }
            }
        }