80% Thessal's Code
How the title say's i will release the 80% complete thessal code ( Why 80%? Because the "It lives and reings and conquers the world" isn't complete and because she's aiming you.
Code:
Credits: just me , not anybody else involved in this code
Maybe just the minnions @ossimc82 ( not Coral Bombs )
Code:
Code:
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;
namespace wServer.logic
{
partial class BehaviorDb
{
static _ Trench = Behav()
.Init(0x1706, Behaves("Thessal the Mermaid Goddess",
new RunBehaviors(
Cooldown.Instance(2500, RingAttack.Instance(8,45,45,0)),
Cooldown.Instance(5000, TossEnemy.Instance(90,5,0x1702)),
Cooldown.Instance(6000, TossEnemy.Instance(270,5,0x1702))
),
SmoothWandering.Instance(.1f, .1f),
If.Instance(HpGreaterEqual.Instance(40000, NullBehavior.Instance),
new QueuedBehavior(
Cooldown.Instance(500),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 90 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 180 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 360 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 270 * (float)Math.PI / 180, projectileIndex: 2)
),
If.Instance(HpLesser.Instance(40000, NullBehavior.Instance),
And.Instance(
new QueuedBehavior(
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
Timed.Instance(2500, False.Instance(Flashing.Instance(200, 0xff00ff00))),
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 90 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 180 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 360 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 270 * (float)Math.PI / 180, projectileIndex: 2),
CooldownExact.Instance(1000),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 90 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 180 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 360 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 270 * (float)Math.PI / 180, projectileIndex: 2),
CooldownExact.Instance(1000),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 90 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 180 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 360 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 270 * (float)Math.PI / 180, projectileIndex: 2),
CooldownExact.Instance(1000),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 90 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 180 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 360 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 270 * (float)Math.PI / 180, projectileIndex: 2),
CooldownExact.Instance(1000),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 90 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 180 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 360 * (float)Math.PI / 180, projectileIndex: 2),
MultiAttack.Instance(15, 10 * (float)Math.PI / 180, 2, 270 * (float)Math.PI / 180, projectileIndex: 2),
CooldownExact.Instance(1000),
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
Timed.Instance(2500, False.Instance(Flashing.Instance(200, 0xff00ff00))),
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
RingAttack.Instance(30, 75, 75, projectileIndex: 3),
CooldownExact.Instance(500),
RingAttack.Instance(30, 75, 75, projectileIndex: 3),
CooldownExact.Instance(500),
RingAttack.Instance(30, 75, 75, projectileIndex: 3),
CooldownExact.Instance(500)
),
new RunBehaviors(
Cooldown.Instance(2500, RingAttack.Instance(8,45,45,0)),
Cooldown.Instance(5000, TossEnemy.Instance(90,5,0x1702)),
Cooldown.Instance(4600, TossEnemy.Instance(270,5,0x1702))
)))),
loot: new LootBehavior(LootDef.Empty,
Tuple.Create(360, new LootDef(0, 2, 0, 2,
Tuple.Create(0.05, (ILoot)new ItemLoot("Coral Bow")),
Tuple.Create(0.08, (ILoot)new ItemLoot("Coral Silk Armor")),
Tuple.Create(0.08, (ILoot)new ItemLoot("Coral Venom Trap")),
Tuple.Create(0.08, (ILoot)new ItemLoot("Coral Ring")),
Tuple.Create(0.5, (ILoot)new ItemLoot("Potion of Mana")),
Tuple.Create(0.05, (ILoot)new ItemLoot("Wine Cellar Incantation")),
)))
))
.Init(0x1708, Behaves("Fishman",
IfNot.Instance(
Chasing.Instance(12, 9, 6, 0x1700),
IfNot.Instance(
Circling.Instance(3, 10, 6, null),
SimpleWandering.Instance(4)
)
),
Cooldown.Instance(800, MultiAttack.Instance(10, 1 * (float)Math.PI / 30, 3, 0, projectileIndex: 0)),
Cooldown.Instance(1000, SimpleAttack.Instance(10, projectileIndex: 1))
))
.Init(0x1700, Behaves("Fishman Warrior",
IfNot.Instance(
Chasing.Instance(5, 9, 3, null),
IfNot.Instance(
Circling.Instance(3, 10, 6, null),
SimpleWandering.Instance(4)
)
),
new RunBehaviors(
Cooldown.Instance(800, MultiAttack.Instance(10, 1 * (float)Math.PI / 30, 3, 0, projectileIndex: 0)),
Cooldown.Instance(1000, SimpleAttack.Instance(3, projectileIndex: 1)),
Cooldown.Instance(2000, RingAttack.Instance(5, 10, 0, projectileIndex: 2))
)
))
.Init(0x170a, Behaves("Sea Mare",
IfNot.Instance(
Charge.Instance(5, 5, null),
SimpleWandering.Instance(4)
),
Cooldown.Instance(500, MultiAttack.Instance(10, 10 * (float)Math.PI / 180, 5, 0, projectileIndex: 0)),
Cooldown.Instance(1500, SimpleAttack.Instance(3, projectileIndex: 1))
))
.Init(0x170c, Behaves("Giant Squid",
IfNot.Instance(
Chasing.Instance(4, 5, 6, null),
IfNot.Instance(
Cooldown.Instance(500, TossEnemy.Instance(0, 0, 0x170b)),
SimpleWandering.Instance(4)
)
),
Cooldown.Instance(100, SimpleAttack.Instance(10, projectileIndex: 0)),
Cooldown.Instance(500, MultiAttack.Instance(25, 10 * (float)Math.PI / 180, 5, 0, projectileIndex: 1))
))
.Init(0x170b, Behaves("Ink Bubble",
new QueuedBehavior(
RingAttack.Instance(1, 1, 0, projectileIndex: 0)),
CooldownExact.Instance(500),
Despawn.Instance
))
.Init(0x1707, Behaves("Deep Sea Beast",
new QueuedBehavior(
Cooldown.Instance(50, SimpleAttack.Instance(3, projectileIndex: 0)),
Cooldown.Instance(100, SimpleAttack.Instance(3, projectileIndex: 1)),
Cooldown.Instance(150, SimpleAttack.Instance(3, projectileIndex: 2)),
Cooldown.Instance(200, SimpleAttack.Instance(3, projectileIndex: 3)),
CooldownExact.Instance(300)
)
))
.Init(0x1709, Behaves("Sea Horse",
IfNot.Instance(
Chasing.Instance(5, 5, 1, 0x170a),
SimpleWandering.Instance(4)
),
Cooldown.Instance(1400, MultiAttack.Instance(10, 10 * (float)Math.PI / 180, 5, 0, projectileIndex: 0))
))
.Init(0x170e, Behaves("Grey Sea Slurp",
IfNot.Instance(
Chasing.Instance(5, 5, 2, 0x170d),
SimpleWandering.Instance(4)
),
Cooldown.Instance(500, SimpleAttack.Instance(8, projectileIndex: 0)),
Cooldown.Instance(500, RingAttack.Instance(8, 4, 0, projectileIndex: 1))
))
.Init(0x170d, Behaves("Sea Slurp Home",
new QueuedBehavior(
Cooldown.Instance(500, RingAttack.Instance(8, 4, 0, projectileIndex: 0)),
Cooldown.Instance(500, RingAttack.Instance(8, 2, 0, projectileIndex: 1))
)))
.Init(0x1702, Behaves("Coral Bomb Big",
new QueuedBehavior(
RingAttack.Instance(10, 50, 50, 0),
CooldownExact.Instance(100),
TossEnemy.Instance(0 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(45 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(90 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(135 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(180 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(225 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(270 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
TossEnemy.Instance(315 * (float)Math.PI / 180, 2, 0x1703),
CooldownExact.Instance(100),
RingAttack.Instance(10, 50, 50, 0),
CooldownExact.Instance(500),
Despawn.Instance
)))
.Init(0x1703, Behaves("Coral Bomb Small",
new QueuedBehavior(
RingAttack.Instance(8, 50, 50, 0),
CooldownExact.Instance(500),
RingAttack.Instance(8, 50, 50, 0),
CooldownExact.Instance(1500),
Despawn.Instance
)));
}
}
Maybe just the minnions @ossimc82 ( not Coral Bombs )
TY It works great.

