Index: src/map/skill.c
===================================================================
--- src/map/skill.c (revision 24)
+++ src/map/skill.c (revision 1)
@@ -42,5 +42,5 @@
 #define GD_SKILLRANGEMIN 900
 #define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL
-#define HM_SKILLRANGEMIN 1100 //I know for a fact this will cause authok problems where it is, but perhaps it's changed now.
+#define HM_SKILLRANGEMIN 800
 #define HM_SKILLRANGEMAX HM_SKILLRANGEMIN+MAX_HOMUNSKILL
 
@@ -610,6 +610,5 @@
 	case CR_GRANDCROSS:
 	case NPC_GRANDDARKNESS:
-		//Chance to cause blind status vs demon and undead element, but not against players
-		if(!dstsd && (battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON))
+		if(tstatus->race == RC_UNDEAD || tstatus->race == RC_DEMON)
 			sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv));
 		break;
@@ -822,28 +821,4 @@
 		sc_start(bl,SC_CRITICALWOUND,100,skilllv,skill_get_time2(skillid,skilllv));
 		break;
-//This has weird Structure compared to the other stuff here.
-	case NC_GHOULTOUCH:	//Necro Ghoul Touch [Brain]
-		if (battle_check_living(tstatus->race, tstatus->def_ele)) //Check if target is a living creature before proceed
-			sc_start(bl,SC_POISON,10000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case NC_PWSUFFER:	//Necro Power Word: Suffer [Brain]
-	case WL_PWAGONY:	//Warlock Power Word: Agony [Brain]
-		if (battle_check_living(tstatus->race, tstatus->def_ele)) //Check if target is a living creature before proceed
-			sc_start(bl,skillid==NC_PWSUFFER?SC_SUFFER:SC_AGONY,1000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case WL_SEARING:	//Warlock Searing Pain [Brain]
-		//The DoT is only initiated if target isnt burning already.
-		if(!tsc->data[SC_SEARING] && !tsc->data[SC_IMMOLATE])
-			sc_start(bl,SC_SEARING,10000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case WL_IMMOLATE:	//Warlock Immolate [Brain]
-		//The DoT is only initiated if target isnt in immolate, but must be in searing pain status
-		if(tsc->data[SC_SEARING] && !tsc->data[SC_IMMOLATE])
-			sc_start(bl,SC_IMMOLATE,10000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case WL_SHADOWBURN:	//Warlock Shadow Burn [Brain]
-		sc_start(bl,SC_STUN,10000,skilllv,skill_get_time(skillid,skilllv));
-		break;
-
 	}
 
@@ -1042,15 +1017,4 @@
 		clif_skill_nodamage(src,bl,HW_SOULDRAIN,rate,1);
 		status_heal(src, 0, status_get_lv(bl)*(95+15*rate)/100, 2);
-	}
-//was hard to pinpoint this place.
-	// Warlock Soul Steal [Brain]
-	if(sd && skillid && attack_type&BF_MAGIC && status_isdead(bl) 
-		&& !(skill_get_inf(skillid)&(INF_GROUND_SKILL|INF_SELF_SKILL))
-		&& (rate=pc_checkskill(sd,WL_SOULSTEAL))>0){// Wont work with area/ground spells (hellfire)
-		if (pc_issit(sd)) pc_setstand(sd);
-		clif_skill_nodamage(src,bl,WL_SOULSTEAL,rate,1);
-		clif_specialeffect(src, 253, AREA); // Absorb Mana effect on caster
-		status_heal(src, 0, status_get_lv(bl)*(90+10*rate)/100, 2);
-		if(rand()%100 < rate) skill_additem(src,src,15020,1); //Chance to "steal" the target soul
 	}
 
@@ -1510,6 +1474,7 @@
 	damage = dmg.damage + dmg.damage2;
 	
-	if( (skillid == AL_INCAGI || skillid == AL_BLESSING) && tsd->sc.data[SC_CHANGEUNDEAD] )
-		damage = 1;
+	if (skillid == AL_INCAGI || skillid == AL_BLESSING)
+		if (tsd->sc.data[SC_CHANGEUNDEAD])
+			damage = 1;
 
 	if (damage > 0 && dmg.flag&BF_WEAPON && src != bl && src == dsrc &&
@@ -1800,11 +1765,9 @@
 	if(battle_check_target(src,bl,flag) > 0)
 	{
-		// several splash skills need this initial dummy packet to display correctly
-		if (flag&SD_PREAMBLE && skill_area_temp[2] == 0)
-			clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
-
-		if (flag&(SD_SPLASH|SD_PREAMBLE))
+		if (flag&(SD_SPLASH|SD_PREAMBLE)) {
+			if (flag&SD_PREAMBLE && !skill_area_temp[2])
+				clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
 			skill_area_temp[2]++;
-
+		}
 		return func(src,bl,skill_id,skill_lv,tick,flag);
 	}
@@ -2145,37 +2108,4 @@
 								sc->data[SC_SPIRIT]->val3 = 0; //Clear bounced spell check.
 						}
-					}
-					break;
-//Could be confusing to find the right place.
-				case NC_PWSUFFER: //Necro Power Word: Suffer [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_SUFFER]){
-						skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 180, AREA); //Shadow Hit Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
-					}
-					break;
-				case WL_SEARING: //Warlock Searing Pain [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_SEARING]){
-						skill_attack(BF_MAGIC,src,target,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 49, AREA); //Fire Hit Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
-					}
-					break;
-				case WL_IMMOLATE: //Warlock Immolate [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_IMMOLATE]){
-						skill_attack(BF_MAGIC,src,target,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 97, AREA); //Firepillar Hit Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
-					}
-					break;
-				case WL_PWAGONY: //Warlock Power Word: Agony [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_AGONY]){
-						skill_attack(BF_MAGIC,src,target,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 587, AREA); //Big Purple Flame Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
 					}
 					break;
@@ -2394,23 +2324,4 @@
 		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
 		break;
-		
-//... something doesn't fit about this. Seriously.
-	case NC_GHOULTOUCH:	//Necro Ghoul Touch [Brain]
-		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
-		clif_specialeffect(bl, 124, AREA); //Venom Dust Effect on target
-		break;
-	case NC_DEATHHAND: 	//Necro Death Hand [Brain]
-		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag|SD_LEVEL);//Hide skill yell
-		clif_specialeffect(bl, 65, AREA); //Power absorb Effect on target
-		if (battle_check_living(tstatus->race, tstatus->def_ele)){ //Check if target is a living creature before proceed
-			int chance = (10+(skilllv*2)+(status_get_luk(src)-status_get_luk(bl))/5); 
-			//10% chance + 2% per skilllv + (caster luk - target luk)/5 %
-				if (rand()%100 < chance) {
-					clif_skill_nodamage(src,bl,skillid,-1,flag|SD_LEVEL);//Hide skill yell
-					status_percent_damage(src, bl, 100, 0, true); //Instant kill our target
-				} else clif_skill_fail(sd,skillid,0,0);
-		}
-		break;
-
 
 	case LK_JOINTBEAT: // decide the ailment first (affects attack damage and effect)
@@ -2748,81 +2659,4 @@
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		break;
-//another thing in a weird place.
-	case AD_DARKHEAL: // Adept Dark Heal [Brain]
-		clif_specialeffect(bl, 656, AREA); //Blinking Green Sprite Effect on target
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); //Exception because we must add the effect manually =/
-		break;
-	case NC_PWSUFFER: //Necro Power Word: Suffer [Brain]
-		if(battle_check_living(tstatus->race,tstatus->def_ele)){
-			skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-			clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-			clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-			//If target is on suffering status already, just cause damage, no extra DoT
-			if(!status_get_sc(bl)->data[SC_SUFFER])
-				skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,skilllv,flag);
-		}
-		else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case NC_DRAINLIFE: // Necromancer Drain Life [Brain]
-		{
-			int heal = skill_attack(BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag)/2;
-			if (heal > 0 && (battle_check_living(tstatus->race,tstatus->def_ele))){
-				clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1);
-				status_heal(src, heal, 0, 0);
-			}
-		}
-		clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-		clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-		break;
-	case WL_SHADOWBOLT: // Warlock Shadowbolt [Brain]
-		clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-		clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); //Again, the effect...cursed effects...
-		break;
-	case WL_SHADOWBURN: // Warlock Shadow Burn [Brain]
-		clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-		clif_specialeffect(bl, 32, AREA); //Flame Engulf Effect on target
-		clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-		break;
-	case WL_SEARING: // Warlock Searing Pain [Brain]
-		clif_specialeffect(bl, 406, AREA); //Fire on Head Effect on target
-		clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-		//if target is on searing status already, just cause damage, no extra DoT
-		if(!status_get_sc(bl)->data[SC_SEARING])
-			skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,4,flag);
-		break;
-	case WL_CONFLAGRATE: // Warlock Conflagrate [Brain]
-		if(status_get_sc(bl)->data[SC_IMMOLATE]) { // Can only be casted if target is immolating status
-			clif_specialeffect(bl, 183, AREA); //Explosion Effect on target
-			clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-			skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-			status_change_end(bl,SC_IMMOLATE,-1); //End Immolating status
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_IMMOLATE: // Warlock Immolate [Brain]
-		clif_specialeffect(bl, 635, AREA); //Dragon Fire Effect on target
-		clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-		//If Target is on searing pain status, will change immolating status instead
-		if(!status_get_sc(bl)->data[SC_IMMOLATE])
-			skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,5,flag);
-		break;
-	case WL_CURSEDOOM: // Warlock Curse of Doom [Brain]
-		clif_specialeffect(bl, 183, AREA); //Explosion Effect on target
-		skill_attack(BF_MAGIC,src,bl,bl,skillid,skilllv,tick,flag|SD_ANIMATION);
-		break;
-	case WL_PWAGONY: // Warlock Power Word: Agony [Brain]
-		if(battle_check_living(tstatus->race,tstatus->def_ele)){
-			skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-			clif_specialeffect(bl, 587, AREA); //Big Purple Flame Effect on target
-			clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-			//If target is on Agonizing status already, just cause damage, no extra DoT
-			if(!status_get_sc(bl)->data[SC_AGONY])
-				skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,skilllv,flag);
-		}
-		else clif_skill_fail(sd,skillid,0,0);
-		break;
 
 	case NPC_MAGICALATTACK:
@@ -3031,7 +2865,5 @@
 		return 1;
 
-	// Added DEATHPACT [Brain]
-	//if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO)
-	if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO && skillid != NC_DEATHPACT)
+	if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO)
 		return 1;
 
@@ -3059,19 +2891,4 @@
 			}
 			break;
-//right place?
-		case AD_DARKHEAL:	// Adept Dark Heal [Brain]
-			// Only player casted spells can be offensive (copyed from AL_HEAL code above)
-			if (sd && (battle_check_living(tstatus->race,tstatus->def_ele)) //Check if target is a living creature
-				&& !pc_checkskill(dstsd,NC_PHYLACTERY) //Or he doesnt have Phylactery (non-perma undead)
-				&& !status_get_sc(bl)->data[SC_OVERWHELMING]) { //Or Overwhelming Evil is off (most cases)
-				if (battle_check_target(src, bl, BCT_ENEMY) < 1) {
-				  	//Offensive heal does not works on non-enemies.
-					clif_skill_fail(sd,skillid,0,0);
-					return 0;
-				}
-				return skill_castend_damage_id(src, bl, skillid, skilllv, tick, flag);
-			}
-			break;
-
 		case NPC_SMOKING: //Since it is a self skill, this one ends here rather than in damage_id. [Skotlex]
 			return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
@@ -3103,11 +2920,4 @@
 			if (status_isimmune(bl) || (dstmd && dstmd->class_ == MOBID_EMPERIUM))
 				heal=0;
-//To not allow heal for joo
-			// Profane Soul reduces the healed recieved by 3% per skilllv [Brain]
-			if(dstsd) {
-				heal = heal * (100 - pc_checkskill(dstsd,AD_PROFANE)*3)/100;
-				//Wont heal even if he got elemental armors [Brain]
-				if(pc_checkskill(dstsd,NC_PHYLACTERY)) heal = skilllv;
-			}
 			if (sd) {
 				if ((i = pc_skillheal_bonus(sd, skillid)))
@@ -3145,22 +2955,4 @@
 		}
 		break;
-	case AD_DARKHEAL: // Adept Dark Heal [Brain]
-		{
-			int heal = skill_calc_heal(src, bl, skilllv);
-			if (status_isimmune(bl) || (dstmd && dstmd->class_ == MOBID_EMPERIUM))
-				heal=0;
-			if(battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race==RC_UNDEAD // Check if our target is undead or demon
-				|| tstatus->race==RC_DEMON || pc_checkskill(dstsd,NC_PHYLACTERY)//Or has a phylactery
-				|| status_get_sc(bl)->data[SC_OVERWHELMING]) { //Or is on OverWhelm status, checking again...
-				clif_skill_nodamage(src, bl, skillid, heal, 1);
-				clif_skill_nodamage(NULL, bl, AL_HEAL, heal, 1); //Subtle way to show heal numbers AND effect =D
-				status_heal(bl, heal, 0, 0);
-			} else {
-				clif_skill_nodamage(src, bl, skillid, 0, 1);
-				clif_skill_nodamage(NULL, bl, AL_HEAL, 0, 1);
-			}
-		clif_specialeffect(bl, 656, AREA); //Blinking Green Sprite Effect on target
-		}
-		break;
 
 	case PR_REDEMPTIO:
@@ -3196,5 +2988,4 @@
 		
 	case ALL_RESURRECTION:
- 	case NC_DEATHPACT: // Necro Death Pact [Brain] (Seems fine)
 		if(sd && map_flag_gvg(bl->m))
 		{	//No reviving in WoE grounds!
@@ -3214,6 +3005,4 @@
 			case 3: per=50; break;
 			case 4: per=80; break;
-			case 5: per=100; break; //Added a 5th level because NC_DEATHPACT got 5 lvs [Brain]
-//above seems ok
 			}
 			if(dstsd && dstsd->special_state.restart_full_recover) 
@@ -3222,11 +3011,4 @@
 			{
 				clif_skill_nodamage(src,bl,ALL_RESURRECTION,skilllv,1); //Both Redemptio and Res show this skill-animation.
-//Seriously, how is this right? It just doesnt look right but i may be ignoring something.
-				if(skillid==NC_DEATHPACT) { // Necro Death Pact [Brain]
-					clif_skill_nodamage(src, bl, skillid, skilllv, 
-						sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-					break;
-				}
-
 				if(sd && dstsd && battle_config.resurrection_exp > 0) 
 				{
@@ -3247,94 +3029,4 @@
 		}
 		break;
-//Huge lump of code here.
-	case AD_PWBLIND: // Adept Power Word: Blind [Brain]
-		if(!tsc->data[type]) {
-			clif_skill_nodamage(src, bl, skillid, skilllv,1);
-			if(sc_start(bl, type,(30 + skilllv * 10 + (status_get_lv(src) - sstatus->int_)/5),
-				skilllv, skill_get_time(skillid,skilllv))) 
-			{
-				if(dstmd) mob_unlocktarget(dstmd,tick);  //Removes current target
-				clif_specialeffect(bl, 379, AREA); //379.Soul Drain (2nd Part)
-				break;
-			}
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case AD_PWFEAR: // Adept Power Word: Fear [Brain]
-		if(!tsc->data[type]) {
-			clif_skill_nodamage(src, bl, skillid, skilllv,1);
-			if(dstsd)
-				type = SC_CONFUSION; //Players cant be affected by SC_FEAR
-			if(sc_start(bl, type, (30 + skilllv * 10), skilllv, skill_get_time(skillid,skilllv)))
-			{
-				clif_specialeffect(bl, 372, AREA); //372.Death
-				unit_escape(bl, bl, 30);
-			}
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_HOWLOFPAIN: // Warlock Howl of Pain [Brain]
-		//These must be here first or else the code wont execute them.
-		clif_specialeffect(src, 670, AREA); // Monster skill SCREAM effect on caster (no sound)
-		clif_soundeffectall(bl, "wraith_die.wav", 0, AREA); //Wraith Laugh Sound
-		if (flag & 1) {
-			//Check if target is a living creature AND a valid enemy
-			if (battle_check_target(src, bl, BCT_ENEMY) && battle_check_living(tstatus->race,tstatus->def_ele))
-			{
-				if(sc_start(bl,type,10+skilllv*10,skilllv,skill_get_time(skillid,skilllv)))
-				{
-					if(dstmd) //PROVOKE Effect on mobs
-						mob_target(dstmd,src,skill_get_range2(src,skillid,skilllv));
-					// Breaks Frozen and Sleep status
-					if(tsc && tsc->count){
-						if(tsc->data[SC_FREEZE])
-							status_change_end(bl,SC_FREEZE,-1);
-						if(tsc->data[SC_SLEEP])
-							status_change_end(bl,SC_SLEEP,-1);
-					}
-					clif_emotion(bl,6); //anger emote on target
-					break;
-				} else { //What will happen if the status fail:
-					{
-						if (sd) //If is a player
-							clif_skill_fail(sd,skillid,0,0);
-						map_freeblock_unlock(); //Else is a mob
-						return 0;
-					}
-					unit_skillcastcancel(bl, 2); //In any case, will cancel casting
-				}
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src,
-				skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ENEMY|1,
-				skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-			map_freeblock_unlock();
-			return 1;
-		}
-		break;
-	case WL_HOWLOFTERROR: // Warlock Howl of Terror [Brain]
-		if (flag & 1) {
-			int rate;
-			//Check if target is a living creature AND a valid enemy
-			if (battle_check_target(src, bl, BCT_ENEMY)
-				&& battle_check_living(tstatus->race,tstatus->def_ele)) {
-				rate = 10 + skilllv*5 + pc_checkskill(sd,AD_PWFEAR)*3;
-				if(dstsd) { 
-					rate -= 10; // 10% less chance on players
-					type = SC_CONFUSION; //Players cant be affected by SC_FEAR
-				}
-				if(sc_start(bl,type,rate,skilllv,skill_get_time(skillid,skilllv)))
-					clif_specialeffect(bl, 372, AREA); //Same as PW: Fear
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src,
-				skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ENEMY|1,
-				skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		clif_specialeffect(src, 668, AREA); // Monster skill SCREAM effect on caster (with sound)
-		break;
-// Would be easy to screw up in that.
 
 	case AL_DECAGI:
@@ -3352,69 +3044,4 @@
 				src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
 			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		break;
-//another huge lump
-	case NC_DARKMOON: //Necro Dark Moon [Brain]
-		if (flag&1) {
-			//Check my enemies
-			if (battle_check_target(src, bl, BCT_ENEMY) &&
-				battle_check_living(tstatus->race,tstatus->def_ele))
-			{
-				if(sc_start(bl,SC_BLIND,50,skilllv,skill_get_time(skillid,skilllv)))
-					clif_specialeffect(bl, 580, AREA); //Box of Rain effect on target
-			}
-			else { //Now my Party members
-				if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) {
-					clif_skill_nodamage(bl,bl,skillid,skilllv,
-					sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-					clif_specialeffect(bl, 521, AREA); //Red Flashing Aura Sprite effect on target
-				} else if (sd) {
-					party_foreachsamemap(skill_area_sub, sd,skill_get_splash(skillid, skilllv),
-						src,skillid,skilllv,tick, flag|BCT_ALL|1,skill_castend_nodamage_id);
-				}
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ALL|1, skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		clif_specialeffect(src, 407, AREA); //Soul Change Effect on caster
-		clif_soundeffectall(bl, "se_wolf1.wav", 0, AREA); //Wolf Howl Sound
-		break;
-	case NC_REQUIEM: //Necro Requiem [Brain]
-		if (flag&1) {
-			//Check my enemies
-			if (battle_check_target(src, bl, BCT_ENEMY) &&
-					battle_check_living(tstatus->race,tstatus->def_ele))
-			{
-				if(sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)))
-					clif_specialeffect(bl, 578, AREA); //Box of Curse effect on target
-			}
-			else { //Now my Party members
-				if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) {
-					clif_skill_nodamage(bl,bl,skillid,skilllv,
-					sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-					clif_specialeffect(bl, 572, AREA); //Warmth Soul effect on target
-				} else if (sd) {
-					party_foreachsamemap(skill_area_sub, sd,skill_get_splash(skillid, skilllv),
-						src,skillid,skilllv,tick, flag|BCT_ALL|1,skill_castend_nodamage_id);
-				}
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ALL|1, skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		int rnds = rand()%3;
-		switch(rnds) {
-			case 1:
-				clif_soundeffectall(bl, "chant1.wav", 0, AREA); //Chanting Sound
-				break;
-			case 2:
-				clif_soundeffectall(bl, "chant2.wav", 0, AREA); //Chanting Sound
-				break;
-			case 3:
-				clif_soundeffectall(bl, "chant3.wav", 0, AREA); //Chanting Sound
-				break;
 		}
 		break;
@@ -3721,57 +3348,7 @@
 	case NPC_DEFENDER:
 	case NPC_MAGICMIRROR:
-	case ALL_ATFIELD:	//AT Field [Brain] ( still dont think this belongs.)
 		clif_skill_nodamage(src,bl,skillid,skilllv,
 			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;
-//ANOTHER large lump but it really doesnt feel like it fits here.
-	case AD_LUST:	// Adept Blood Lust [Brain]
-		clif_specialeffect(src, 220, AREA); //Berserk Pot effect
-		clif_specialeffect(src, 455, AREA); //Red Lightnings
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case NC_DECREPIFY: //Necro Decrepify [Brain]
-		if(battle_check_living(tstatus->race,tstatus->def_ele)){
-			clif_specialeffect(bl, 403, AREA); //Mind Breaker Effect on target
-			clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-			clif_skill_nodamage(src,bl,skillid,skilllv,
-				sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		}
-		else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain]
-		clif_specialeffect(bl, 656, AREA); //Blinking Green Sprite effect on target
-		clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case WL_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain]
-		clif_specialeffect(bl, 135, AREA); //Ice Breaking effect on target
-		clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case WL_CURSETONGUES: // Warlock Curse of Tongues [Brain]
-		clif_specialeffect(bl, 72, AREA); //Spinning Lights effect on target
-		clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case WL_CURSEDOOM: // Warlock Curse of Doom (temp) [Brain]
-		if(!tsc->data[type]) {
-			clif_specialeffect(bl, 196, AREA); //Small Curse Reaper effect on target
-			clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-			clif_skill_nodamage(src,bl,skillid,skilllv,
-				sc_start4(bl,type,100,
-					skilllv,skillid,src->id,skill_get_time(skillid,skilllv),1000));
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_OVERWHELMING: // Warlock Overwhelming Evil [Brain]
-		clif_specialeffect(src, 348, AREA); //1000 Blades Trespassing effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-
 	case MG_SIGHT:
 	case AL_RUWACH:
@@ -3988,28 +3565,4 @@
 		}
 		if (i) status_heal(src, 0, i, 3);
-		clif_skill_nodamage(src,bl,skillid,skilllv,i?1:0);
-		break;
-//this feels more like it fits.
-	case WL_DRAINSOUL: // Warlock Drain Soul [Brain]
-		i = 0;
-		if (dstsd && (sd == dstsd || map_flag_vs(src->m)))
-		{	//check if target is a player and we are in versus map
-			i = tstatus->max_sp * skilllv/100;//i = SkillLv% of player Max SP
-			if(dstsd->spiritball && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) {
-				i += dstsd->spiritball * 5;//will drain Monk Spirits and regain 5 SP per Spirit
-				pc_delspiritball(dstsd,dstsd->spiritball,0);
-			}
-		} else if (dstmd && !(tstatus->mode&MD_BOSS) && battle_check_living(tstatus->race,tstatus->def_ele))
-		{	// check if target is a monster and not a Boss
-			i = dstmd->level/5 * skilllv;//i = mob level/5 * Skill Lvl
-			mob_target(dstmd,src,0);//This will turn the mob agressive against the caster
-		}
-		if(i < skilllv) i = skilllv; //Minimum 1 sp per skill lvl
-		if (i) {
-			clif_specialeffect(src, 253, AREA); //Absorb Mana effect on caster
-			clif_specialeffect(bl, 52, AREA); //Lightning Hit effect on target
-			status_heal(src, 0, i, 3); //caster drains sp
-			status_zap(bl, 0, i*skilllv); //target lost sp equal to 1*SkillLv the amount drained
-		}
 		clif_skill_nodamage(src,bl,skillid,skilllv,i?1:0);
 		break;
@@ -5687,6 +5240,5 @@
 	}
 
-	if(ud->skillid != SA_CASTCANCEL )
-	{// otherwise handled in unit_skillcastcancel()
+	if(ud->skillid != SA_CASTCANCEL ) {
 		if( ud->skilltimer != tid ) {
 			ShowError("skill_castend_id: Timer mismatch %d!=%d!\n", ud->skilltimer, tid);
@@ -5694,12 +5246,7 @@
 			return 0;
 		}
-
-		if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 )
-		{// restore original walk speed
-			ud->skilltimer = -1;
-			status_calc_bl(&sd->bl, SCB_SPEED);
-		}
-
-		ud->skilltimer = -1;
+		if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST))
+			status_freecast_switch(sd);
+		ud->skilltimer=-1;
 	}
 
@@ -5925,11 +5472,8 @@
 	}
 
-	if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 )
-	{// restore original walk speed
-		ud->skilltimer=-1;
-		status_calc_bl(&sd->bl, SCB_SPEED);
-	}
+	if(sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST))
+		status_freecast_switch(sd);
+
 	ud->skilltimer=-1;
-
 	do {
 		if(status_isdead(src))
@@ -6091,11 +5635,5 @@
 			src->m, x-i, y-i, x+i,y+i,BL_SKILL);
 		break;
-//the code changed alot and jumped around.
-	case WL_HELLFIRE: // Warlock Hellfire [Brain]
-		//clif_specialeffect(sd, 92, AREA); //Meteor Effect on caster, cant set on ground
-		clif_skill_poseffect(src,WZ_METEOR,skilllv,x,y,tick); //Meteor Effect
-		clif_skill_nodamage(src, src, skillid, 0, 1); //Lalala, just to show the skill yell correctly
-		clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-		// Continue reading because skill_unitsetting is bellow
+
 	case MG_SAFETYWALL:
 	case MG_FIREWALL:	
@@ -6256,121 +5794,7 @@
 				md->deletetimer = add_timer (gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, md->bl.id, 0);
 				mob_spawn (md); //Now it is ready for spawning.
-//Does this really belong here?
-				// @showsummon command implementation [Brainstorm]
-				if(sd->state.showsummon){
-					char output[256];
-					sprintf(output,
-						"[Summon] HP : %d | STR : %d DEX : %d VIT : %d INT : %d AGI : %d LUK : %d",
-						md->status.max_hp,md->status.str,md->status.dex,md->status.vit,md->status.int_,md->status.agi,md->status.luk);
-					clif_disp_onlyself(sd,output,strlen(output));
-					sprintf(output,
-						"[%s] ATK : %d~%d | DEF: %d+%d MDEF: %d+%d | HIT: %d FLEE: %d",
-						md->name,md->status.rhw.atk,md->status.rhw.atk2,md->status.def,md->status.def2,md->status.mdef,md->status.mdef2,md->status.hit,md->status.flee);
-					clif_disp_onlyself(sd,output,strlen(output));
-				}
-
-			}
-		}
-		break;
-		
-//HUGE lump of code!
-//Some of the code repeats itself, Unless it just recites it for other classes it may be a problem
-	case AD_FAMILIAR: // Adept Summon Familiar [Brain]
-		if( sd )
-		{
-			int id;
-			int mob_class;
-			struct mob_data* md;
-
-			mob_class = pc_readglobalreg(sd, "ADEPT_FAMILIAR");
-			if( mob_class == 0 )
-			{
-				mob_class = mob_get_random_id(4, 0x1, 0);
-				pc_setglobalreg(sd, "ADEPT_FAMILIAR", mob_class);
-			}
-			id = mob_once_spawn(sd,src->m,src->x,src->y,"--en--",mob_class,1,"");
-			md = (struct mob_data *)map_id2bl(id);
-			if( md != NULL )
-			{
-				md->master_id = sd->bl.id;
-				md->special_state.ai = 1;
-				md->status.mode = md->status.mode|MD_AGGRESSIVE;
-				status_calc_mob(md,0); //Recalc their stats based on passive bonus
-				md->status.hp = md->status.max_hp; //Must be here or the code wont update it
-				// @showsummon command implementation [Brainstorm]
-				if(sd->state.showsummon){
-					char output[256];
-					sprintf(output,
-						"[Summon] HP : %d | STR : %d DEX : %d VIT : %d INT : %d AGI : %d LUK : %d",
-						md->status.max_hp,md->status.str,md->status.dex,md->status.vit,md->status.int_,md->status.agi,md->status.luk);
-					clif_disp_onlyself(sd,output,strlen(output));
-					sprintf(output,
-						"[%s] ATK : %d~%d | DEF: %d+%d MDEF: %d+%d | HIT: %d FLEE: %d",
-						md->name,md->status.rhw.atk,md->status.rhw.atk2,md->status.def,md->status.def2,md->status.mdef,md->status.mdef2,md->status.hit,md->status.flee);
-					clif_disp_onlyself(sd,output,strlen(output));
-				}
-				md->deletetimer = add_timer(gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, id, 0);
-			}
-		}
-		break;
-	case NC_SKELETON: // Raise Skeleton [Brain]
-	case NC_ARCHER: // Raise Archer Skeleton
-	case NC_ZOMBIE: // Raise Zombie
-	case NC_MUMMY: // Raise Mummy
-	case NC_GHOST: // Raise Ghost
-	case NC_SHADOW: // Raise Shadow
-	case NC_WRAITH: // Raise Wraith
-		if( sd )
-		{
-			static const int mob_skeleton[5]={ 3201, 3202, 3203, 3204, 3205 }; // Skeleton, Orc Skeleton, Soldier Skeleton, Pirate Skeleton, Skeleton General
-			static const int mob_archer[5]={ 3206, 3207, 3208, 3209, 3210 }; // Archer Skeleton, Firelock Soldier
-			static const int mob_zombie[5]={ 3211, 3212, 3213, 3214, 3215 }; // Zombie, Ghoul, Zombie Master
-			static const int mob_mummy[5]={ 3216, 3217, 3218, 3219, 3220 }; // Mummy, Ancient Mummy
-			static const int mob_ghost[5]={ 3221, 3222, 3223, 3224, 3225 }; // Whisper, Nightmare, Nightmare Terror
-			static const int mob_shadow[5]={ 3226, 3227, 3228, 3229, 3230 }; // Injustice, Raydric, Dullahan
-			static const int mob_wraith[5]={ 3231, 3232, 3233, 3234, 3235 }; // Wraith, Wraith Dead
-			int id;
-			int mob_class;
-			struct mob_data *md;
-
-			switch( skillid )
-			{
-				case NC_SKELETON: mob_class = mob_skeleton[skilllv-1]; break;
-				case NC_ARCHER:   mob_class = mob_archer[skilllv-1]; break;
-				case NC_ZOMBIE:   mob_class = mob_zombie[skilllv-1]; break;
-				case NC_MUMMY:    mob_class = mob_mummy[skilllv-1]; break;
-				case NC_GHOST:    mob_class = mob_ghost[skilllv-1]; break;
-				case NC_SHADOW:   mob_class = mob_shadow[skilllv-1]; break;
-				case NC_WRAITH:   mob_class = mob_wraith[skilllv-1]; break;
-				default:
-					mob_class = 1002; // poring
-					ShowDebug("skill_castend_pos2: undefined skill #%d used to raise mobs, defaulting to poring\n");
-					break;
-			}
-			id = mob_once_spawn(sd,src->m,src->x,src->y,"--ja--",mob_class,1,"");
-			if((md=(struct mob_data *)map_id2bl(id)))
-			{
-				md->master_id=sd->bl.id;
-				md->special_state.ai=1;
-				md->status.mode=md->db->status.mode|MD_AGGRESSIVE;
-				status_calc_mob(md,0); //Recalc their stats based on passive bonus
-				md->status.hp = md->status.max_hp; //Must be here or the code wont update it
-//I bet this should NOT be here -- Critical
-				if(sd->state.showsummon){
-					char output[256];
-					sprintf(output,
-						"[Summon] HP : %d | STR : %d DEX : %d VIT : %d INT : %d AGI : %d LUK : %d",
-						md->status.max_hp,md->status.str,md->status.dex,md->status.vit,md->status.int_,md->status.agi,md->status.luk);
-					clif_disp_onlyself(sd,output,strlen(output));
-					sprintf(output,
-						"[%s] ATK : %d~%d | DEF: %d+%d MDEF: %d+%d | HIT: %d FLEE: %d",
-						md->name,md->status.rhw.atk,md->status.rhw.atk2,md->status.def,md->status.def2,md->status.mdef,md->status.mdef2,md->status.hit,md->status.flee);
-					clif_disp_onlyself(sd,output,strlen(output));
-				}
-				md->deletetimer = add_timer(gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, id, 0);
-			}
-		}
-		break;
-
+			}
+		}
+		break;
 
 	// Slim Pitcher [Celest]
@@ -6785,8 +6209,5 @@
 	switch(skillid)
 	{
-//seems good.
-	case WL_HELLFIRE: // Warlock Hellfire [Brain]
-		if(map_flag_vs(src->m)) target = BCT_ALL;
-		break;
+
 	case MG_SAFETYWALL:
 		val2=skilllv+1;
@@ -7386,11 +6807,4 @@
 				if (status_isimmune(bl))
 					heal = 0;	/* é»éè²ã«ãŒãïŒããŒã«éïŒïŒ */
-//Okay?
-				// Profane Soul reduces the healed recieved by 3% per skilllv [Brain]
-				if(tsd) {
-					heal = heal * (100 - pc_checkskill(tsd,AD_PROFANE)*3)/100;
-					//Wont heal even if he got elemental armors [Brain]
-					if(pc_checkskill(tsd,NC_PHYLACTERY)) heal = sg->skill_lv;
-				}
 				clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
 				status_heal(bl, heal, 0, 0);
@@ -7403,6 +6817,5 @@
 
 		case UNT_EVILLAND:
-			//Will heal demon and undead element monsters, but not players.
-			if (bl->type != BL_PC && !battle_check_undead(tstatus->race, tstatus->def_ele) && tstatus->race!=RC_DEMON)
+			if (tstatus->race!=RC_UNDEAD && tstatus->race!=RC_DEMON)
 			{	//Damage enemies
 				if(battle_check_target(&src->bl,bl,BCT_ENEMY)>0)
@@ -8451,52 +7864,4 @@
 		}
 		break;
-//Weird to me.
-	case AD_FAMILIAR: //Adept Familiar [Flavio]
-		{
-			short familiar[1] ={ pc_readglobalreg(sd, "ADEPT_FAMILIAR") };
-			int maxcount = skill_get_maxcount(skill,lv);
-			int count = 0;
-			count = mob_countslave_class(&sd->bl, 1, familiar );
-			if( count >= maxcount )
-			{
-				clif_skill_fail(sd,skill,0,0);
-				return 0;
-			}
-		}
-		break;
-	case NC_SKELETON: // Raise Skeleton [Brain]
-	case NC_ARCHER: // Raise Archer Skeleton
-	case NC_ZOMBIE: // Raise Zombie
-	case NC_MUMMY: // Raise Mummy
-	case NC_GHOST: // Raise Ghost
-	case NC_SHADOW: // Raise Shadow
-	case NC_WRAITH: // Raise Wraith
-		{// corrigido o limite de spawns [Flavio]
-			short summon1[5]={ 3201, 3202, 3203, 3204, 3205 }; // Skeleton, Orc Skeleton, Soldier Skeleton, Pirate Skeleton, Skeleton General
-			short summon2[5]={ 3206, 3207, 3208, 3209, 3210 }; // Archer Skeleton, Firelock Soldier
-			short summon3[5]={ 3211, 3212, 3213, 3214, 3215 }; // Zombie, Ghoul, Zombie Master
-			short summon4[5]={ 3216, 3217, 3218, 3219, 3220 }; // Mummy, Ancient Mummy
-			short summon5[5]={ 3221, 3222, 3223, 3224, 3225 }; // Whisper, Nightmare, Nightmare Terror
-			short summon6[5]={ 3226, 3227, 3228, 3229, 3230 }; // Injustice, Raydric, Dullahan
-			short summon7[5]={ 3231, 3232, 3233, 3234, 3235 }; // Wraith, Wraith Dead
-			int maxcount = skill_get_maxcount(skill,lv);
-			int count = 0;
-			switch( skill )
-			{
-			case NC_SKELETON: count = mob_countslave_class(&sd->bl, 5, summon1); break;
-			case NC_ARCHER: count = mob_countslave_class(&sd->bl, 5, summon2); break;
-			case NC_ZOMBIE: count = mob_countslave_class(&sd->bl, 5, summon3); break;
-			case NC_MUMMY: count = mob_countslave_class(&sd->bl, 5, summon4); break;
-			case NC_GHOST: count = mob_countslave_class(&sd->bl, 5, summon5); break;
-			case NC_SHADOW: count = mob_countslave_class(&sd->bl, 5, summon6); break;
-			case NC_WRAITH: count = mob_countslave_class(&sd->bl, 5, summon7); break;
-			}
-			if( count >= maxcount )
-			{
-				clif_skill_fail(sd,skill,0,0);
-				return 0;
-			}
-		}
-		break;
 	case WZ_FIREPILLAR: // celest
 		if (lv <= 5)	// no gems required at level 1-5
@@ -8930,12 +8295,4 @@
 			time -= time * sc->data[SC_SUFFRAGIUM]->val2 / 100;
 			status_change_end(bl, SC_SUFFRAGIUM, -1);
-		}
-//Curse skills...
-		if (sc->data[SC_DECREPIFY]) // Necro Decrepify [Brain]
-			if(sc->data[SC_DECREPIFY]->val2>=3)
-				time += time * 25/100; //+25% cast time
-		if (sc->data[SC_CURSETONGUES]) { //Warlock Curse of Tongues [Brain]
-			time += time * sc->data[SC_CURSETONGUES]->val2 / 100;
-			status_change_end(bl, SC_CURSETONGUES, -1);
 		}
 		if (sc->data[SC_MEMORIZE]) {
@@ -10766,20 +10123,28 @@
 			case AM_TWILIGHT2:
 			case AM_TWILIGHT3:
-				make_per = pc_checkskill(sd,AM_LEARNINGPOTION)*50
+				make_per = pc_checkskill(sd,AM_LEARNINGPOTION)*100
 					+ pc_checkskill(sd,AM_PHARMACY)*300 + sd->status.job_level*20
-					+ (status->int_/2)*10 + status->dex*10+status->luk*10;
-				if(merc_is_hom_active(sd->hd)) {//Player got a homun
-					int skill;
-					if((skill=merc_hom_checkskill(sd->hd,HVAN_INSTRUCT)) > 0) //His homun is a vanil with instruction change
-						make_per += skill*100; //+1% bonus per level
-				}
+					+ status->int_*5 + status->dex*10+status->luk*10;
 				switch(nameid){
 					case 501: // Red Potion
 					case 503: // Yellow Potion
 					case 504: // White Potion
-						make_per += (1+rand()%100)*10 + 2000;
+					case 605: // Anodyne
+					case 606: // Aloevera
+						make_per += 2000;
 						break;
-					case 970: // Alcohol
-						make_per += (1+rand()%100)*10 + 1000;
+					case 505: // Blue Potion
+						make_per -= 500;
+						break;
+					case 545: // Condensed Red Potion
+					case 546: // Condensed Yellow Potion
+					case 547: // Condensed White Potion
+						make_per -= 1000;
+					    break;
+				 	case 970: // Alcohol
+						make_per += 1000;
+						break;
+					case 7139: // Glistening Coat
+						make_per -= 1000;
 						break;
 					case 7135: // Bottle Grenade
@@ -10787,18 +10152,4 @@
 					case 7137: // Plant Bottle
 					case 7138: // Marine Sphere Bottle
-						make_per += (1+rand()%100)*10;
-						break;
-					case 546: // Condensed Yellow Potion
-						make_per -= (1+rand()%50)*10;
-						break;
-					case 547: // Condensed White Potion
-					case 7139: // Glistening Coat
-						make_per -= (1+rand()%100)*10;
-					    break;
-					//Common items, recieve no bonus or penalty, listed just because they are commonly produced
-					case 505: // Blue Potion
-					case 545: // Condensed Red Potion
-					case 605: // Anodyne
-					case 606: // Aloevera
 					default:
 						break;
@@ -10838,5 +10189,5 @@
 // - Baby Class Penalty = 80% (from adult's chance) ----//
 	if (sd->class_&JOBL_BABY) //if it's a Baby Class
-		make_per = (make_per * 70) / 100; //Baby penalty is 30%
+		make_per = (make_per * 80) / 100; //Lupus
 
 	if(make_per < 1) make_per = 1;
@@ -11740,40 +11091,2 @@
 	return 0;
 }
-//Why is this after the cleanup code?
-int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount)// ITEM GIVER [Brain]
-{
-	struct map_session_data *sd = NULL, *tsd = NULL;
-
-	nullpo_retr(1, src);
-	nullpo_retr(1, bl);	
-
-	if (src->m != bl->m)
-		return 1;
-	if (bl->prev == NULL)
-		return 1;
-	if (src->type == BL_PC)
-		sd = (struct map_session_data *)src;
-	if (bl->type == BL_PC)
-		tsd = (struct map_session_data *)bl;
-	if (status_isdead(bl))
-		return 1;
-
-	int eflag;
-	struct item item_tmp;
-	struct block_list tbl;
-	
-	memset(&item_tmp,0,sizeof(item_tmp));
-	memset(&tbl,0,sizeof(tbl));
-
-	item_tmp.nameid = itemid;
-	item_tmp.identify = 1;
-	tbl.id = 0;
-
-	clif_takeitem(&sd->bl,&tbl);
-	eflag = pc_additem(sd,&item_tmp,amount);
-	if(eflag) {
-		clif_additem(sd,0,0,eflag);
-		map_addflooritem(&item_tmp,amount,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0);
-	}
-	return 0;
-}
