begincreaturescript;
variables;
short target;
short pol, bow, mis, har, def, asn, mag, pri, luc, qui, par, bla, gym, mry, res, eff, rip, sha;
string text;
body;
beginstate INIT_STATE;
if (get_memory_cell(0) == 2)
set_mobility(ME,0);
break;
beginstate DEAD_STATE;
if ((get_memory_cell(1) != 0) || (get_memory_cell(2) != 0))
set_flag(get_memory_cell(1),get_memory_cell(2),1);
break;
beginstate START_STATE;
if (target_ok()) {
if (dist_to_char(get_target()) <= 16)
set_state(3);
else set_target(ME,-1);
}
if (select_target(ME,8,0)) {
target = -1;
set_state_continue(4);
}
if (who_hit_me() >= 0) {
set_target(ME,who_hit_me());
target = -1;
set_state_continue(4);
}
if ((my_dist_from_start() >= 6) || ((my_dist_from_start() > 0) && (get_memory_cell(0) > 0))) {
if (get_ran(1,1,100) < 40)
return_to_start(ME,1);
}
else if (get_memory_cell(0) == 0) {
fidget(ME,25);
}
if (am_i_doing_action() == FALSE)
end_combat_turn();
break;
beginstate 3;
if (target_ok() == FALSE)
set_state_continue(5);
do_attack();
break;
beginstate 4;
if(get_target() == target)
set_state_continue(3);
target = get_target();
set_memory_cell(5,get_stat(ME,0));
set_memory_cell(6,get_stat(ME,1));
set_memory_cell(7,get_stat(ME,2));
set_memory_cell(8,get_stat(ME,3));
set_memory_cell(9,get_stat(ME,4));
pol = get_stat(ME,5);
bow = get_stat(ME,6);
mis = get_stat(ME,7);
har = get_stat(ME,8);
def = get_stat(ME,9);
asn = get_stat(ME,10);
mag = get_stat(ME,11);
pri = get_stat(ME,12);
luc = get_stat(ME,18);
qui = get_stat(ME,19);
par = get_stat(ME,20);
bla = get_stat(ME,21);
gym = get_stat(ME,23);
mry = get_stat(ME,25);
res = get_stat(ME,26);
eff = get_stat(ME,27);
rip = get_stat(ME,29);
sha = get_stat(ME,30);
if(get_stat(target,0) > get_stat(ME,0))
alter_stat(ME,0,get_stat(target,0)-get_stat(ME,0));
if(get_stat(target,1) > get_stat(ME,1))
alter_stat(ME,1,get_stat(target,1)-get_stat(ME,1));
if(get_stat(target,2) > get_stat(ME,2))
alter_stat(ME,2,get_stat(target,2)-get_stat(ME,2));
if(get_stat(target,3) > get_stat(ME,3))
alter_stat(ME,3,get_stat(target,3)-get_stat(ME,3));
if((get_stat(target,4) > get_stat(ME,4)) && (get_memory_cell(4) != 1))
alter_stat(ME,4,get_stat(target,4)-get_stat(ME,4));
if((get_stat(target,5) > get_stat(ME,5)) && (get_memory_cell(4) != 1))
alter_stat(ME,5,get_stat(target,5)-get_stat(ME,5));
if((get_stat(target,6) > get_stat(ME,6)) && (get_memory_cell(4) != 1))
alter_stat(ME,6,get_stat(target,6)-get_stat(ME,6));
if((get_stat(target,7) > get_stat(ME,7)) && (get_memory_cell(4) != 1))
alter_stat(ME,7,get_stat(target,7)-get_stat(ME,7));
if((get_stat(target,8) > get_stat(ME,8)) && (get_memory_cell(4) != 1))
alter_stat(ME,8,get_stat(target,8)-get_stat(ME,8));
if((get_stat(target,9) > get_stat(ME,9)) && (get_memory_cell(4) != 1))
alter_stat(ME,9,get_stat(target,9)-get_stat(ME,9));
if((get_stat(target,10) > get_stat(ME,10)) && (get_memory_cell(4) != 1))
alter_stat(ME,10,get_stat(target,10)-get_stat(ME,10));
if((get_stat(target,11) > get_stat(ME,11)) && (get_memory_cell(4) != 0)){
alter_stat(ME,11,get_stat(target,11)-get_stat(ME,11));
if(get_stat(ME,11) >= 1){
change_spell_level(ME,0,0,get_spell_level(target,0,0)-get_spell_level(ME,0,0));
change_spell_level(ME,0,1,get_spell_level(target,0,1)-get_spell_level(ME,0,1));
}
if(get_stat(ME,11) >= 2){
change_spell_level(ME,0,2,get_spell_level(target,0,2)-get_spell_level(ME,0,2));
change_spell_level(ME,0,3,get_spell_level(target,0,3)-get_spell_level(ME,0,3));
}
if(get_stat(ME,11) >= 3){
change_spell_level(ME,0,4,get_spell_level(target,0,4)-get_spell_level(ME,0,4));
}
if(get_stat(ME,11) >= 4){
change_spell_level(ME,0,5,get_spell_level(target,0,5)-get_spell_level(ME,0,5));
}
if(get_stat(ME,11) >= 5){
change_spell_level(ME,0,6,get_spell_level(target,0,6)-get_spell_level(ME,0,6));
}
if(get_stat(ME,11) >= 6){
change_spell_level(ME,0,7,get_spell_level(target,0,7)-get_spell_level(ME,0,7));
change_spell_level(ME,0,8,get_spell_level(target,0,8)-get_spell_level(ME,0,8));
}
if(get_stat(ME,11) >= 7){
change_spell_level(ME,0,9,get_spell_level(target,0,9)-get_spell_level(ME,0,8));
}
if(get_stat(ME,11) >= 8){
change_spell_level(ME,0,10,get_spell_level(target,0,10)-get_spell_level(ME,0,10));
}
if(get_stat(ME,11) >= 9){
change_spell_level(ME,0,11,get_spell_level(target,0,11)-get_spell_level(ME,0,11));
}
if(get_stat(ME,11) >= 10){
change_spell_level(ME,0,12,get_spell_level(target,0,12)-get_spell_level(ME,0,12));
}
if(get_stat(ME,11) >= 11){
change_spell_level(ME,0,13,get_spell_level(target,0,13)-get_spell_level(ME,0,13));
}
if(get_stat(ME,11) >= 12){
change_spell_level(ME,0,14,get_spell_level(target,0,14)-get_spell_level(ME,0,14));
}
if(get_stat(ME,11) >= 13){
change_spell_level(ME,0,15,get_spell_level(target,0,15)-get_spell_level(ME,0,15));
}
if(get_stat(ME,11) >= 14){
change_spell_level(ME,0,16,get_spell_level(target,0,16)-get_spell_level(ME,0,16));
}
if(get_stat(ME,11) >= 15){
change_spell_level(ME,0,17,get_spell_level(target,0,17)-get_spell_level(ME,0,17));
}
if(get_stat(ME,11) >= 16){
change_spell_level(ME,0,18,get_spell_level(target,0,18)-get_spell_level(ME,0,18));
}
if(get_stat(ME,11) >= 17){
change_spell_level(ME,0,19,get_spell_level(target,0,19)-get_spell_level(ME,0,19));
}
}
if((get_stat(target,12) > get_stat(ME,12)) && (get_memory_cell(4) != 0)){
alter_stat(ME,12,get_stat(target,12)-get_stat(ME,12));
if(get_stat(ME,12) >= 1){
change_spell_level(ME,1,0,get_spell_level(target,1,0)-get_spell_level(ME,1,0));
change_spell_level(ME,1,1,get_spell_level(target,1,1)-get_spell_level(ME,1,1));
change_spell_level(ME,1,2,get_spell_level(target,1,2)-get_spell_level(ME,1,2));
}
if(get_stat(ME,12) >= 2){
change_spell_level(ME,1,3,get_spell_level(target,1,3)-get_spell_level(ME,1,3));
}
if(get_stat(ME,12) >= 3){
change_spell_level(ME,1,4,get_spell_level(target,1,4)-get_spell_level(ME,1,4));
}
if(get_stat(ME,12) >= 4){
change_spell_level(ME,1,5,get_spell_level(target,1,5)-get_spell_level(ME,1,5));
}
if(get_stat(ME,12) >= 5){
change_spell_level(ME,1,6,get_spell_level(target,1,6)-get_spell_level(ME,1,6));
change_spell_level(ME,1,7,get_spell_level(target,1,7)-get_spell_level(ME,1,7));
}
if(get_stat(ME,12) >= 6){
change_spell_level(ME,1,8,get_spell_level(target,1,8)-get_spell_level(ME,1,8));
}
if(get_stat(ME,12) >= 7){
change_spell_level(ME,1,9,get_spell_level(target,1,9)-get_spell_level(ME,1,9));
}
if(get_stat(ME,12) >= 8){
change_spell_level(ME,1,10,get_spell_level(target,1,10)-get_spell_level(ME,1,10));
change_spell_level(ME,1,11,get_spell_level(target,1,11)-get_spell_level(ME,1,11));
}
if(get_stat(ME,12) >= 9){
change_spell_level(ME,1,12,get_spell_level(target,1,12)-get_spell_level(ME,1,12));
}
if(get_stat(ME,12) >= 10){
change_spell_level(ME,1,13,get_spell_level(target,1,13)-get_spell_level(ME,1,13));
}
if(get_stat(ME,12) >= 11){
change_spell_level(ME,1,14,get_spell_level(target,1,14)-get_spell_level(ME,1,14));
}
if(get_stat(ME,12) >= 12){
change_spell_level(ME,1,15,get_spell_level(target,1,15)-get_spell_level(ME,1,15));
}
if(get_stat(ME,12) >= 13){
change_spell_level(ME,1,16,get_spell_level(target,1,16)-get_spell_level(ME,1,16));
}
if(get_stat(ME,12) >= 15){
change_spell_level(ME,1,17,get_spell_level(target,1,17)-get_spell_level(ME,1,17));
}
if(get_stat(ME,12) >= 16){
change_spell_level(ME,1,18,get_spell_level(target,1,18)-get_spell_level(ME,1,18));
}
if(get_stat(ME,12) >= 17){
change_spell_level(ME,1,19,get_spell_level(target,1,19)-get_spell_level(ME,1,19));
}
}
if(get_stat(target,18) > get_stat(ME,18))
alter_stat(ME,18,get_stat(target,18)-get_stat(ME,18));
if((get_stat(target,19) > get_stat(ME,19)) && (get_memory_cell(4) != 1))
alter_stat(ME,19,get_stat(target,19)-get_stat(ME,19));
if((get_stat(target,20) > get_stat(ME,20)) && (get_memory_cell(4) != 1))
alter_stat(ME,20,get_stat(target,20)-get_stat(ME,20));
if((get_stat(target,21) > get_stat(ME,21)) && (get_memory_cell(4) != 1))
alter_stat(ME,21,get_stat(target,21)-get_stat(ME,21));
if((get_stat(target,23) > get_stat(ME,23)) && (get_memory_cell(4) != 1))
alter_stat(ME,23,get_stat(target,23)-get_stat(ME,23));
if((get_stat(target,25) > get_stat(ME,25)) && (get_memory_cell(4) != 0))
alter_stat(ME,25,get_stat(target,25)-get_stat(ME,25));
if(get_stat(target,26) > get_stat(ME,26))
alter_stat(ME,26,get_stat(target,26)-get_stat(ME,26));
if((get_stat(target,27) > get_stat(ME,27)) && (get_memory_cell(4) != 0))
alter_stat(ME,27,get_stat(target,27)-get_stat(ME,27));
if((get_stat(target,29) > get_stat(ME,29)) && (get_memory_cell(4) != 1))
alter_stat(ME,29,get_stat(target,29)-get_stat(ME,29));
if((get_stat(target,30) > get_stat(ME,30)) && (get_memory_cell(4) != 1))
alter_stat(ME,30,get_stat(target,30)-get_stat(ME,30));
clear_buffer();
append_char_name(ME);
append_string(" steals ");
append_char_name(target);
append_string("'s skills!");
get_buffer_text(text);
play_sound(65);
print_str_color(text,3);
set_state_continue(3);
break;
beginstate 5;
if(get_stat(ME,0) > get_memory_cell(5))
alter_stat(ME,0,get_memory_cell(5) - get_stat(ME,0));
if(get_stat(ME,1) > get_memory_cell(6))
alter_stat(ME,1,get_memory_cell(6) - get_stat(ME,1));
if(get_stat(ME,2) > get_memory_cell(7))
alter_stat(ME,2,get_memory_cell(7) - get_stat(ME,2));
if(get_stat(ME,3) > get_memory_cell(8))
alter_stat(ME,3,get_memory_cell(8) - get_stat(ME,3));
if(get_stat(ME,4) > get_memory_cell(9))
alter_stat(ME,4,get_memory_cell(9) - get_stat(ME,4));
if(get_stat(ME,5) > pol)
alter_stat(ME,5,pol - get_stat(ME,5));
if(get_stat(ME,6) > bow)
alter_stat(ME,6,bow - get_stat(ME,6));
if(get_stat(ME,7) > mis)
alter_stat(ME,7,mis - get_stat(ME,7));
if(get_stat(ME,8) > har)
alter_stat(ME,8,har - get_stat(ME,8));
if(get_stat(ME,9) > def)
alter_stat(ME,9,def - get_stat(ME,9));
if(get_stat(ME,10) > asn)
alter_stat(ME,10,asn - get_stat(ME,10));
if(get_stat(ME,11) > mag)
alter_stat(ME,11,mag - get_stat(ME,11));
if(get_stat(ME,12) > pri)
alter_stat(ME,12,pri - get_stat(ME,12));
if(get_stat(ME,18) > luc)
alter_stat(ME,18,luc - get_stat(ME,18));
if(get_stat(ME,19) > qui)
alter_stat(ME,19,qui - get_stat(ME,19));
if(get_stat(ME,20) > par)
alter_stat(ME,20,par - get_stat(ME,20));
if(get_stat(ME,21) > bla)
alter_stat(ME,21,bla - get_stat(ME,21));
if(get_stat(ME,23) > gym)
alter_stat(ME,23,gym - get_stat(ME,23));
if(get_stat(ME,25) > mry)
alter_stat(ME,25,mry - get_stat(ME,25));
if(get_stat(ME,26) > res)
alter_stat(ME,26,res - get_stat(ME,26));
if(get_stat(ME,27) > eff)
alter_stat(ME,27,eff - get_stat(ME,27));
if(get_stat(ME,29) > rip)
alter_stat(ME,29,rip - get_stat(ME,29));
if(get_stat(ME,30) > sha)
alter_stat(ME,30,sha - get_stat(ME,30));
set_state(START_STATE);
break;
beginstate TALKING_STATE;
if (get_memory_cell(3) == 0) {
print_str("Talking: It doesn't respond.");
end();
}
begin_talk_mode(get_memory_cell(3));
break;