Esempio n. 1
0
        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("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,
                                         string.Format("{0} Attacks you with {1}.", client.Aisling.Username,
                                                       Spell.Template.Name));
                        }

                        client.SendMessage(0x02, string.Format("you cast {0}", 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, string.Format("Another poison is already applied. [{0}].", 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,
                                         string.Format("{0} Attacks you with {1}.",
                                                       (sprite is Monster
                                            ? (sprite as Monster).Template.Name
                                            : (sprite as Mundane).Template.Name) ?? "Monster",
                                                       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);
                    }
                }
            }
        }