public void Target( TrapableContainer item ) { if ( !Caster.CanSee( item ) ) { Caster.SendLocalizedMessage( 500237 ); // Target can not be seen. } else if ( item.Trapped && item.TrapType != TrapType.MagicTrap ) { base.DoFizzle(); } else if ( CheckSequence() ) { SpellHelper.Turn( Caster, item ); Point3D loc = item.GetWorldLocation(); Effects.SendLocationParticles( EffectItem.Create( loc, item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, 5015 ); Effects.PlaySound( loc, item.Map, 0x1F0 ); item.TrapType = TrapType.None; item.Trapped = false; item.TrapPower = 0; } FinishSequence(); }
public void Target( TrapableContainer item ) { if ( !Caster.CanSee( item ) ) { Caster.SendLocalizedMessage( 500237 ); // Target can not be seen. } else if ( item.TrapType != TrapType.None && item.TrapType != TrapType.MagicTrap ) { base.DoFizzle(); } else if ( CheckSequence() ) { SpellHelper.Turn( Caster, item ); Point3D loc = item.GetWorldLocation(); Effects.SendLocationParticles( EffectItem.Create( loc, item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 32, 5015 ); Effects.PlaySound( loc, item.Map, 0x1F0 ); TreasureMapChest chest = item as TreasureMapChest; double skill = Caster.Skills[SkillName.Magery].Value; if ( ( chest != null && skill >= 100.0 && chest.TrapLevel <= 2 ) || ( chest == null && ( ( item.TrapCreator == null && item.TrapLevel <= (int)(skill/33.3) ) || ( item.TrapCreator != null && item.TrapLevel <= (int)(skill/20.0) ) ) ) ) { //Treasure Chests: Must be GM, up to level 2 //Non Treasure Chests: Up to level 3, Player constructed, up to level 5. item.TrapType = TrapType.None; item.TrapPower = 0; item.TrapLevel = 0; } } FinishSequence(); }
public void Target(TrapableContainer item) { if (!Caster.CanSee(item)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (item.TrapType != TrapType.None && item.TrapType != TrapType.MagicTrap) { base.DoFizzle(); } else if (CheckSequence()) { SpellHelper.Turn(Caster, item); item.TrapType = TrapType.MagicTrap; item.TrapPower = Core.AOS ? Utility.RandomMinMax(10, 50) : 1; item.TrapLevel = 0; Point3D loc = item.GetWorldLocation(); Effects.SendLocationParticles( EffectItem.Create( new Point3D( loc.X + 1, loc.Y, loc.Z ), item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 10, 9502 ); Effects.SendLocationParticles( EffectItem.Create( new Point3D( loc.X, loc.Y - 1, loc.Z ), item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 10, 9502 ); Effects.SendLocationParticles( EffectItem.Create( new Point3D( loc.X - 1, loc.Y, loc.Z ), item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 10, 9502 ); Effects.SendLocationParticles( EffectItem.Create( new Point3D( loc.X, loc.Y + 1, loc.Z ), item.Map, EffectItem.DefaultDuration ), 0x376A, 9, 10, 9502 ); Effects.SendLocationParticles( EffectItem.Create( new Point3D( loc.X, loc.Y, loc.Z ), item.Map, EffectItem.DefaultDuration ), 0, 0, 0, 5014 ); Effects.PlaySound(loc, item.Map, 0x1EF); } FinishSequence(); }
public void Target(TrapableContainer item) { if (!Caster.CanSee(item)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (item.TrapType != TrapType.None && item.TrapType != TrapType.MagicTrap) { base.DoFizzle(); } else if (CheckSequence()) { SpellHelper.Turn(Caster, item); var pouch = item as ChargeableTrapPouch; if (pouch != null) { if (pouch.Charges == 0) { item.TrapType = TrapType.MagicTrap; item.TrapPower = Caster.EraAOS ? Utility.RandomMinMax(10, 50) : 4; //Change to depend on magery skill? item.TrapLevel = 0; pouch.Charges++; } else if (pouch.Charges < 30) { pouch.Charges++; } else { Caster.SendMessage(54, "This pouch can only hold 30 charges."); } } else { item.TrapType = TrapType.MagicTrap; item.TrapPower = Caster.EraAOS ? Utility.RandomMinMax(10, 50) : 4; //Change to depend on magery skill? item.TrapLevel = 0; } Point3D loc = item.GetWorldLocation(); Effects.SendLocationParticles( EffectItem.Create(new Point3D(loc.X + 1, loc.Y, loc.Z), item.Map, EffectItem.DefaultDuration), 0x376A, 9, 10, 9502); Effects.SendLocationParticles( EffectItem.Create(new Point3D(loc.X, loc.Y - 1, loc.Z), item.Map, EffectItem.DefaultDuration), 0x376A, 9, 10, 9502); Effects.SendLocationParticles( EffectItem.Create(new Point3D(loc.X - 1, loc.Y, loc.Z), item.Map, EffectItem.DefaultDuration), 0x376A, 9, 10, 9502); Effects.SendLocationParticles( EffectItem.Create(new Point3D(loc.X, loc.Y + 1, loc.Z), item.Map, EffectItem.DefaultDuration), 0x376A, 9, 10, 9502); Effects.SendLocationParticles( EffectItem.Create(new Point3D(loc.X, loc.Y, loc.Z), item.Map, EffectItem.DefaultDuration), 0, 0, 0, 5014); Effects.PlaySound(loc, item.Map, 0x1EF); } FinishSequence(); }