Custom Lava Boss behavior...
Hey guys! ^^
So i decided to make a boss fight dungeon boss. Idk what to call it so i named it epic shaitan... :/
Well just to explain the codes. The epic shaitan is having 2 guards cicling on it. I've made spawners thats supposed to be in the cornors of the boss room (works best in a small room) The lava spawners, spawns things like blobombs thats gonna explode at you every 30rd second. But no worries might sound a bit OP so i turned demage down for them. Else than that. When you kill the 2 circling guards the boss starts shooting. And you can't kill the spawners
A remind from last time: I put all codes in the same file this time ;D
(please note: Get some sprites yourself...)XML:
Add that in addition.xml! 
Now make a file called: BehaviorDb.EpicShaitan.cs and copy paste this code:
Thats it, if you have any questions quote this!
-Thanks
Enjoy!
So i decided to make a boss fight dungeon boss. Idk what to call it so i named it epic shaitan... :/
Well just to explain the codes. The epic shaitan is having 2 guards cicling on it. I've made spawners thats supposed to be in the cornors of the boss room (works best in a small room) The lava spawners, spawns things like blobombs thats gonna explode at you every 30rd second. But no worries might sound a bit OP so i turned demage down for them. Else than that. When you kill the 2 circling guards the boss starts shooting. And you can't kill the spawners

A remind from last time: I put all codes in the same file this time ;D
(please note: Get some sprites yourself...)XML:
Code:
<Object type="0x5034" id="Epic shaitan">
<Enemy/>
<Class>Character</Class>
<Level>20</Level>
<NoArticle/>
<StasisImmune/>
<StunImmune/>
<ParalyzeImmune/>
<DazedImmune/>
<AnimatedTexture>
<File>chars16x16dEncounters2</File>
<Index>108</Index>
</AnimatedTexture>
<HitSound>monster/skeletons_hit</HitSound>
<DeathSound>monster/skeletons_death</DeathSound>
<Projectile id="0">
<ObjectId>Red Fire</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="1">
<ObjectId>Illumination Fire</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="2">
<ObjectId>White Bullet</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="3">
<ObjectId>Red Fire</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="4">
<ObjectId>Illumination Fire</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="5">
<ObjectId>White Bullet</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="6">
<ObjectId>Red Fire</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="7">
<ObjectId>White Bullet</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<Projectile id="8">
<ObjectId>Illumination Fire</ObjectId>
<Speed>60</Speed>
<Damage>170</Damage>
<Size>160</Size>
<LifetimeMS>4000</LifetimeMS>
<ArmorPiercing/>
<MultiHit/>
</Projectile>
<MaxHitPoints>150000</MaxHitPoints>
<Size>0</Size>
<Defense>60</Defense>
</Object>
<Object type="0xf79" id="The Devils Hand">
<Group>Shaitan</Group>
<Enemy/>
<Class>Character</Class>
<Level>20</Level>
<NoArticle/>
<AnimatedTexture>
<File>chars16x16dEncounters2</File>
<Index>95</Index>
</AnimatedTexture>
<HitSound>monster/skeletons_hit</HitSound>
<DeathSound>monster/skeletons_death</DeathSound>
<Projectile id="0">
<ObjectId>White Bullet</ObjectId>
<Speed>5</Speed>
<Damage>60</Damage>
<Size>80</Size>
<LifetimeMS>200</LifetimeMS>
<MultiHit/>
<ArmorPiercing/>
</Projectile>
<MaxHitPoints>10000</MaxHitPoints>
<Size>60</Size>
<Defense>60</Defense>
</Object>
<Object type="0x1973" id="Epic Shaitan Minion Spawner">
<Class>Character</Class>
<Enemy/>
<NoMiniMap/>
<StasisImmune/>
<Texture>
<File>invisible</File>
<Index>0</Index>
</Texture>
<MaxHitPoints>9999</MaxHitPoints>
<Defense>0</Defense>
<XpMult>0</XpMult>
<Size>100</Size>
<ShadowSize>0</ShadowSize>
<HitSound>monster/chicken_hit</HitSound>
<DeathSound>monster/chicken_death</DeathSound>
<Projectile id="0">
<ObjectId>Pink Dot</ObjectId>
<Damage>100</Damage>
<Speed>65</Speed>
<Size>120</Size>
<LifetimeMS>2000</LifetimeMS>
<MultiHit />
</Projectile>
</Object>
<Object type="0x1974" id="Epic Flame Trigger">
<Enemy />
<Class>Character</Class>
<Texture><File>lofiObjBig</File><Index>0x0a</Index></Texture>
<HitSound>monster/medusa_hit</HitSound>
<DeathSound>monster/trees_death</DeathSound>
<Size>100</Size>
<MaxHitPoints>50000</MaxHitPoints>
<Defense>30</Defense>
<XpMult>0.75</XpMult>
<Projectile id="0">
<ObjectId>Directed Explosion</ObjectId>
<Speed>150</Speed>
<Damage>100</Damage>
<Size>200</Size>
<LifetimeMS>400</LifetimeMS>
</Projectile>
</Object>

Now make a file called: BehaviorDb.EpicShaitan.cs and copy paste this 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 _ EpicShaitan = Behav()
.Init(0xf79, Behaves("The Devil's Hand",
new RunBehaviors(
Circling.Instance(2.0f, 25, 7, 0x5034),
CooldownExact.Instance(500, RingAttack.Instance(15, projectileIndex: 0))
))
)
.Init(0x5034, Behaves("The Devil Shaitan",
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, 0xf79), // kill hands to start
new RunBehaviors(
Once.Instance(IsEntityPresent.Instance(1, null)),
new RunBehaviors(
UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
Cooldown.Instance(3000, RingAttack.Instance(8, 0, 0, 0)),
HpLesserPercent.Instance(0.2f, new SetKey(-1, 3)),
Once.Instance(new SetKey(-1, 1)),
Cooldown.Instance(10000, (RingAttack.Instance(6, 0, 2, projectileIndex: 5))),
#region Awake
IfEqual.Instance(-1, 1,
new RunBehaviors(
Cooldown.Instance(15000, (new SimpleTaunt("You dont know who your up against!"))),
new QueuedBehavior(
Cooldown.Instance(100, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 9, 0, projectileIndex: 0)),
Cooldown.Instance(110, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 9, 0, projectileIndex: 1)),
Cooldown.Instance(2000)
),
new QueuedBehavior(
Cooldown.Instance(3000, (SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable))),
Cooldown.Instance(5000, (UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable)))
),
new QueuedBehavior(
Cooldown.Instance(15000),
new SetKey(-1, 2))
)
),
#endregion
#region Pissed
IfEqual.Instance(-1, 2,
new RunBehaviors(
Cooldown.Instance(15000, (new SimpleTaunt("Let flames consume you minion!!"))),
new QueuedBehavior(
Cooldown.Instance(100, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 2)),
Cooldown.Instance(140, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 3)),
Cooldown.Instance(180, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 4)),
Cooldown.Instance(220, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 5)),
Cooldown.Instance(260, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 1, 0, projectileIndex: 6)),
Cooldown.Instance(800)
),
new QueuedBehavior(
Cooldown.Instance(3000, (SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable))),
Cooldown.Instance(5000, (UnsetConditionEffect.Instance(ConditionEffectIndex.Invulnerable)))
),
new QueuedBehavior(
Cooldown.Instance(15000),
new SetKey(-1, 1))
)
),
#endregion
#region Extremely Pissed
IfEqual.Instance(-1, 3,
new RunBehaviors(
SimpleWandering.Instance(2, 3f),
Cooldown.Instance(860, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 1, 0, projectileIndex: 6)),
Cooldown.Instance(15000, (new SimpleTaunt("DIE DIE DIE!!"))),
new QueuedBehavior(
Cooldown.Instance(100, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 2)),
Cooldown.Instance(140, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 3)),
Cooldown.Instance(180, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 4)),
Cooldown.Instance(220, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 3, 0, projectileIndex: 5)),
Cooldown.Instance(260, MultiAttack.Instance(10, 5 * (float)Math.PI / 100, 1, 0, projectileIndex: 6)),
Cooldown.Instance(600)
)))))
)));
static _ EpicSSpawner = Behav()
.Init(0x1973, Behaves("Epic Shaitans Spawner",
new RunBehaviors(
Once.Instance(IsEntityPresent.Instance(1, null)),
new RunBehaviors(
SetConditionEffect.Instance(ConditionEffectIndex.Invulnerable),
Cooldown.Instance(2500, SpawnMinionImmediate.Instance(0x1974, 1, 1, 1))
))
))
.Init(0x1974, Behaves("Epic flame trigger",
new RunBehaviors(
new SetKey(-1, 1),
IfEqual.Instance(-1, 1,
new RunBehaviors(
Chasing.Instance(2.5f, 6, 1, null),
If.Instance(IsEntityPresent.Instance(2, null), Flashing.Instance(150, 0xEB6CC2), new SetKey(-1, 2))
)),
IfEqual.Instance(-1, 2,
new QueuedBehavior(
CooldownExact.Instance(2000),
RingAttack.Instance(30, projectileIndex: 0),
Die.Instance
)))
));
}
#endregion
}
Thats it, if you have any questions quote this!

-Thanks
Enjoy!
