// TMW2 script
// Author: Jesusalva <admin@tmw2.org>
//
// Magic Script: TMW2_DEMURE
//
// Let yourself rage and go out of control destroy everything around you
// Doubles attack speed but nullifies evade complety for 30 seconds.
// Each level grants +30s and +1% evade and +5% attack speed.
// After level 1, evade penalty/cooldown raises in 1s per additional level
//
// Cooldown is cast duration
- script sk#demure 32767,{
end;
/*
SC_INCAGI: 190
SC_INCVIT: 191
SC_INCINT: 192
SC_INCDEX: 193
SC_INCLUK: 194
SC_INCHIT: 195
SC_INCHITRATE: 196
SC_INCFLEE: 197
SC_INCFLEERATE: 198
SC_INCMHPRATE: 199
SC_INCMSPRATE: 200
SC_INCATKRATE: 201
SC_INCMATKRATE: 202
SC_INCDEFRATE: 203
SC_WALKSPEED (?)
SC_INVINCIBLE (?)
SC_MANA_PLUS (?)
SC_INCMHP (?)
SC_INCMSP (?)
// The basic ones
SC_STONE: 0
SC_FREEZE: 1
SC_STUN: 2
SC_SLEEP: 3
SC_POISON: 4
SC_CURSE: 5
SC_SILENCE: 6
SC_CONFUSION: 7
SC_BLIND: 8
SC_BLOODING: 9
SC_DPOISON: 10
SC_FEAR: 11
SC_COLD: 12
SC_BURNING: 13
SC_DEEP_SLEEP: 14
SC_PROVOKE: 20
SC_ENDURE: 21
SC_ATTHASTE_POTION1: 55
SC_ATTHASTE_POTION2: 56
SC_ATTHASTE_POTION3: 57
SC_ATTHASTE_INFINITY: 58
SC_MOVHASTE_HORSE: 59
SC_MOVHASTE_INFINITY: 60
SC_PLUSATTACKPOWER: 61
SC_PLUSMAGICPOWER: 62
*/
OnCall:
// Check cooldown
if (@demure_at > gettimetick(2)) {
dispbottom l("Skill is in cooldown for @@.", FuzzyTime(@demure_at));
end;
}
// non-melee weapons not allowed
// TODO: Run this check on a loop in case player is switching weapons
if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_RANGE) > 3) {
dispbottom l("Only melee weapons are permitted for use with this skill.");
end;
}
// Check requisites
if (!MagicCheck(TMW2_DEMURE, 100, 100))
end;
// Determine length: 30s per skill level
.@length=getskilllv(TMW2_DEMURE)*30000;
.@effect=100+getskilllv(TMW2_DEMURE)*5;
.@penalty=getskilllv(TMW2_DEMURE)-101;
.@malus=(getskilllv(TMW2_DEMURE)-1)*1000;
// Add two SC_ effects: One to raise attack speed and other to drop evade
//sc_start(<effect type>, <ticks>, <value 1>{, <rate>, <flag>{, <GID>}})
sc_start SC_ATTHASTE_POTION2, .@length, .@effect;
sc_start SC_INCFLEERATE, (.@length+.@malus), .@penalty;
// set cooldown
@demure_at=gettimetick(2);
@demure_at=@demure_at+(.@length+.@malus)/1000;
// Get a few mana experience points (this is NOT used by Mana Stone)
GetManaExp(TMW2_DEMURE, rand(1,getskilllv(TMW2_DEMURE)));
end;
// If you switch to a bow, you lose the effect at once and loop dies
OnTMW2DemureCheck:
if (@demure_at < gettimetick(2))
end;
if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_RANGE) > 3)
sc_start SC_ATTHASTE_POTION2, 100, -50;
else
addtimer(rand(786,1346), "::OnTMW2DemureCheck");
end;
OnInit:
bindatcmd "sk-demure", "sk#demure::OnCall", 0, 100, 0;
end;
}