Code:
#region
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using wServer.realm;
using wServer.logic.attack;
using wServer.logic.movement;
using wServer.logic.loot;
using wServer.logic.taunt;
using wServer.logic.cond;
#endregion
namespace wServer.logic
{
partial class BehaviorDb
{
private static _ Sentinel = Behav()
.Init(0x75c4, Behaves("Sentinel",
Once.Instance(SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable)),
Cooldown.Instance(2500, RingAttack.Instance(20, 0, 90 * (float)Math.PI / 180, 1)),// blue circle of boomarang bullets at start
If.Instance(EntityLesserThan.Instance(30, 1, 0x75c5), // if titanums are killed sentinel starts shooting
new RunBehaviors(
Once.Instance(IsEntityPresent.Instance(1, null)),
//Once.Instance(new SimpleTaunt("Who has woken me…? Leave this place.")),
new QueuedBehavior(
#region Circle Attack 1
//clock wise
Cooldown.Instance(50),
new RunBehaviors(
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
Once.Instance(new SimpleTaunt("Go.")),
RingAttack.Instance(1, offset: 0 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 10 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 20 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 30 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 40 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(1, offset: 50 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 60 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 70 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 80 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 90 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 100 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 110 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 120 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 130 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 140 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 150 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 160 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 170 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(1, offset: 180 * (float)Math.PI / 180)
),
//counter clock wise
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 170 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 160 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 150 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 140 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 130 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(1, offset: 120 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 110 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 100 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 90 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 80 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 70 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 60 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 50 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 40 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 30 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
RingAttack.Instance(1, offset: 20 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(1, offset: 10 * (float)Math.PI / 180)
),
Cooldown.Instance(50)
#endregion
))
),
condBehaviors: new ConditionalBehavior[]
{
new DeathTransmute(0x75c6)
}
));
static _ sentinel2 = Behav()
.Init(0x75c6, Behaves("sentinel2",
new RunBehaviors(
Once.Instance(new SimpleTaunt("You live still? DO NOT TEMPT FATE!")),
Reproduce.Instance(0x75c7, 8, 500, 30)//spawns blobombs
),
condBehaviors: new ConditionalBehavior[]
{
new DeathTransmute(0x75c8)
}
));
private static _ Sentinel3 = Behav()
.Init(0x75c8, Behaves("Sentinel3",
Once.Instance(SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable)),
Cooldown.Instance(2500, RingAttack.Instance(20, 0, 90 * (float)Math.PI / 180, 1)),// blue circle of boomarang bullets at start
If.Instance(EntityLesserThan.Instance(30, 1, 0x75c5), // if titanums are killed sentinel starts shooting
new RunBehaviors(
Once.Instance(IsEntityPresent.Instance(1, null)),
new QueuedBehavior(
#region Circle Attack 1
//clock wise
Cooldown.Instance(50),
new RunBehaviors(
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
Once.Instance(new SimpleTaunt("FOOLS! YOU DO NOT UNDERSTAND!")),
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 0 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 10 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 20 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 30 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 40 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 50 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 60 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 70 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 80 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 90 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 100 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 110 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 120 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 130 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 140 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 150 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 160 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 170 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(1, offset: 180 * (float)Math.PI / 180)
),
//counter clock wise
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 170 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 160 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 150 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 140 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 130 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 120 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
//AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 110 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 100 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 90 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 80 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 70 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 60 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 50 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 40 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 30 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
RingAttack.Instance(1, offset: 20 * (float)Math.PI / 180)
),
Cooldown.Instance(50),
new RunBehaviors(
// AngleMultiAttack.Instance((3 * 30) * (float)Math.PI / 180, 10 * (float)Math.PI / 180, 16, 0),
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(1, offset: 10 * (float)Math.PI / 180)
),
Cooldown.Instance(50)
#endregion
))
),
loot: new LootBehavior(LootDef.Empty,
Tuple.Create(800, new LootDef(0, 5, 1, 2,
Tuple.Create(1.0, (ILoot)new StatPotionLoot(StatPotion.Att)),
Tuple.Create(1.0, (ILoot)new StatPotionLoot(StatPotion.Def)),
Tuple.Create(0.07, (ILoot) new TierLoot(5, ItemType.Ability)),
Tuple.Create(0.05, (ILoot) new TierLoot(6, ItemType.Ability)),
Tuple.Create(0.07, (ILoot) new TierLoot(11, ItemType.Armor)),
Tuple.Create(0.06, (ILoot) new TierLoot(12, ItemType.Armor)),
Tuple.Create(0.05, (ILoot) new TierLoot(13, ItemType.Armor)),
Tuple.Create(0.07, (ILoot) new TierLoot(10, ItemType.Weapon)),
Tuple.Create(0.06, (ILoot) new TierLoot(11, ItemType.Weapon)),
Tuple.Create(0.05, (ILoot) new TierLoot(12, ItemType.Weapon))
// Tuple.Create(0.05, (ILoot) new TierLoot(6, ItemType.Ring)),
//Tuple.Create(0.005, (ILoot)new ItemLoot("Bracer of the Guardian")),
))
)));
static _ Titanum = Behav()
.Init(0x75c5, Behaves("Titanum",
new RunBehaviors(
Cooldown.Instance(100, RingAttack.Instance(4, 0, 90 * (float)Math.PI / 180, 0))
//Once.Instance(SpawnMinionImmediate.Instance(0x5005, 1, 2, 3)
)
));
static _ Blobomb = Behav()
.Init(0x75c7, Behaves("Blobomb",
new RunBehaviors(
Chasing.Instance(6, 50, 0, null),
CooldownExact.Instance(7500, new SetKey(-1, 1)),
HpLesser.Instance(1000, new SetKey(-1, 1)),
IfEqual.Instance(-1, 1,
new RunBehaviors(
Flashing.Instance(40, 0xFF0000),
Cooldown.Instance(2000, RingAttack.Instance(30, 0, 360 * (float)Math.PI / 180, 0)),
Cooldown.Instance(2200, Despawn.Instance)
))
)
));
}
}