Index: /src/map/atcommand.c
===================================================================
--- /src/map/atcommand.c (revision 5)
+++ /src/map/atcommand.c (revision 19)
@@ -1213,15 +1213,11 @@
 		if (sd->disguise)
 			status_set_viewdata(&sd->bl, sd->disguise);
-  else
-            clif_specialeffect(&sd->bl, 587, 1); // [Temperis]
-            clif_specialeffect(&sd->bl, 589, 1); // [Temperis]
-            status_set_viewdata(&sd->bl, sd->status.class_);
-        clif_displaymessage(fd, msg_txt(10)); // Invisible: Off
+		else
+			status_set_viewdata(&sd->bl, sd->status.class_);
+		clif_displaymessage(fd, msg_txt(10)); // Invisible: Off
 	} else {
-        clif_specialeffect(&sd->bl, 587, 1); // [Temperis]
-        clif_specialeffect(&sd->bl, 589, 1); // [Temperis]
-        sd->sc.option |= OPTION_INVISIBLE;
-        sd->vd.class_ = INVISIBLE_CLASS;
-        clif_displaymessage(fd, msg_txt(11)); // Invisible: On
+		sd->sc.option |= OPTION_INVISIBLE;
+		sd->vd.class_ = INVISIBLE_CLASS;
+		clif_displaymessage(fd, msg_txt(11)); // Invisible: On
 	}
 	clif_changeoption(&sd->bl);
@@ -1267,12 +1263,10 @@
 			{ "supernovice",	23 },
 			{ "gunslinger",	24 },
-			{ "gunner",	24 },
-			{ "ninja",	25 },
-			//Begin custom Job (blackmagic)
 			{ "adept",	30 },//New job classes [Brainstorm]
 			{ "necromancer",	31 },
 			{ "necro",	31 },
 			{ "warlock",	32 },
-			//End Custom Job
+			{ "gunner",	24 },
+			{ "ninja",	25 },
 			{ "high novice",	4001 },
 			{ "swordsman high",	4002 },
@@ -4378,6 +4372,4 @@
 	if (map[m_id].flag.guildlock)
 		strcat(atcmd_output, "GuildLock | ");
-	if (map[m_id].flag.hostile)
-	strcat(atcmd_output, "Hostile | ");
 	clif_displaymessage(fd, atcmd_output);
 
@@ -7822,5 +7814,4 @@
 	return 0;
 }
-//Begin Custom Jobs (black magic)
 //@showsummon [Brainstorm]
 int atcommand_showsummon(const int fd, struct map_session_data* sd, const char* command, const char* message)
@@ -7833,8 +7824,9 @@
 
 	sd->state.showsummon = 1;
-	clif_displaymessage(fd, "Summon Stats is now shown.");
-	return 0;
-}
-//End Custom Jobs
+	clif_displaymessage(fd, "Summon Stats are now shown.");
+	return 0;
+}
+
+
 /*==========================================
  * Barricade Build
@@ -8304,48 +8296,4 @@
 }
 
-/*==========================================
-* @alliance by SketchyPhoenix
-*------------------------------------------*/
-int atcommand_god(const int fd, struct map_session_data* sd, const char* command, const char* message)
-{
-nullpo_retr(-1, sd);
-
-if(sd->state.demon) {
-clif_displaymessage(fd, "You're tainted, you cannot change your ways.");
-return 0;
-}
-
-sd->state.god = !sd->state.god;
-
-if(sd->state.god)
-clif_displaymessage(fd, "You have joined the holy union.");
-else {
-clif_displaymessage(fd, "You have become tainted.");
-map_foreachinrange(atcommand_stopattack,&sd->bl, AREA_SIZE, BL_CHAR, sd->bl.id);
-}
-return 0;
-}
-
-/*==========================================
-* @horde by SketchyPhoenix
-*------------------------------------------*/
-int atcommand_demon(const int fd, struct map_session_data* sd, const char* command, const char* message)
-{
-nullpo_retr(-1, sd);
-
-if(sd->state.god) {
-clif_displaymessage(fd, "You are of the light, darkness cannot consume you.");
-return 0;
-}
-sd->state.demon = !sd->state.demon;
-
-if(sd->state.demon)
-clif_displaymessage(fd, "Your sould is consumed by the darkness, you've gained demonic power.");
-else {
-clif_displaymessage(fd, "You have repented, the darkness has left your soul.");
-map_foreachinrange(atcommand_stopattack,&sd->bl, AREA_SIZE, BL_CHAR, sd->bl.id);
-}
-return 0;
-}
 /*==========================================
  * atcommand_info[] structure definition
@@ -8643,10 +8591,6 @@
 	{ "barricade",         60,     atcommand_barricade },
 	{ "killbarricade",     60,     atcommand_barricade_destroy },
-	//Bwgin Custom Jobs (blackmagic)
 	//Vanaheim Commands
 	{ "showsummon",	 0, atcommand_showsummon}, //Brainstorm
-	//End Custom Jobs
-	{ "god",				60,		atcommand_god },
-	{ "demon",				60,		atcommand_demon },
 };
 
Index: /src/map/itemdb.c
===================================================================
--- /src/map/itemdb.c (revision 5)
+++ /src/map/itemdb.c (revision 19)
@@ -242,5 +242,5 @@
 	if (jobmask & 1<<JOB_NINJA)
 		bclass[0] |= 1<<MAPID_NINJA;
-	//Begin custom job (blackmagic)
+	//Custom Classes
 	if (jobmask & 1<<26) // Adept [Brain]
 	bclass[0] |= 1<<MAPID_ADEPT;
@@ -249,5 +249,4 @@
 	if (jobmask & 1<<28) // Warlock [Brain]
 	bclass[2] |= 1<<MAPID_ADEPT;
-	//end custom job
 }
 
Index: /src/map/battle.c
===================================================================
--- /src/map/battle.c (revision 5)
+++ /src/map/battle.c (revision 19)
@@ -73,5 +73,5 @@
 		return 1;
 	}
-	return 0;	
+	return 0;
 }
 
@@ -123,5 +123,5 @@
 		return 1;
 	}
-	return 0;	
+	return 0;
 }
 
@@ -138,5 +138,5 @@
 }
 
-// _E?[WÌx
+// _??[WÌx
 struct delay_damage {
 	struct block_list *src;
@@ -205,5 +205,5 @@
 		amotion = 1000; //Aegis places a damage-delay cap of 1 sec to non player attacks. [Skotlex]
 	add_timer(tick+amotion, battle_delay_damage_sub, src->id, (int)dat);
-	
+
 	return 0;
 }
@@ -211,5 +211,5 @@
 int battle_attr_ratio(int atk_elem,int def_type, int def_lv)
 {
-	
+
 	if (atk_elem < 0 || atk_elem >= ELE_MAX)
 		return 100;
@@ -222,5 +222,5 @@
 
 /*==========================================
- * Does attribute fix modifiers. 
+ * Does attribute fix modifiers.
  * Added passing of the chars so that the status changes can affect it. [Skotlex]
  * Note: Passing src/target == NULL is perfectly valid, it skips SC_ checks.
@@ -230,8 +230,8 @@
 	struct status_change *sc=NULL, *tsc=NULL;
 	int ratio;
-	
+
 	if (src) sc = status_get_sc(src);
 	if (target) tsc = status_get_sc(target);
-	
+
 	if (atk_elem < 0 || atk_elem >= ELE_MAX)
 		atk_elem = rand()%ELE_MAX;
@@ -265,5 +265,5 @@
 
 /*==========================================
- * _E?[W?Å?IvZ
+ * _??[W?Å?IvZ
  *------------------------------------------*/
 int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,int div_,int skill_num,int skill_lv,int flag)
@@ -277,5 +277,5 @@
 	if (!damage)
 		return 0;
-	
+
 	if( mob_ksprotected(src, bl) )
 		return 0;
@@ -295,5 +295,5 @@
 		if(!damage) return 0;
 	}
-	
+
 	if (skill_num == PA_PRESSURE)
 		return damage; //This skill bypass everything else.
@@ -344,5 +344,5 @@
 			return 0;
 		}
-		
+
 		if(sc->data[SC_DODGE] && !sc->opt1 &&
 			(flag&BF_LONG || sc->data[SC_SPURT])
@@ -373,6 +373,4 @@
 		}
 
-		//Begin Custom Jobs (blackmagic)
-			
 	//Display red flashing aura effect of Adept Blood Lust [Brain]
 	if(sc->data[SC_LUST] && damage > 0){
@@ -398,8 +396,8 @@
 		return 0;
 	}
-//End Custom Jobs
+
 
 		if (((sce=sc->data[SC_UTSUSEMI]) || sc->data[SC_BUNSINJYUTSU])
-		&& 
+		&&
 			flag&BF_WEAPON && !(skill_get_nk(skill_num)&NK_NO_CARDFIX_ATK))
 		{
@@ -503,9 +501,9 @@
 	}
 	//SC effects from caster side. Currently none.
-/*	
+/*
 	sc = status_get_sc(src);
 	if (sc && sc->count) {
 	}
-*/	
+*/
 	if (battle_config.pk_mode && sd && bl->type == BL_PC && damage)
   	{
@@ -555,10 +553,10 @@
 	if (!damage) //No reductions to make.
 		return 0;
-	
+
 	class_ = status_get_class(bl);
 
 	if (bl->type == BL_MOB)
 		md=(struct mob_data *)bl;
-	
+
 	if(md && md->guardian_data) {
 		if(class_ == MOBID_EMPERIUM && flag&BF_SKILL)
@@ -630,5 +628,5 @@
 
 /*==========================================
- * ?Cû_E?[W
+ * ?Cû_??[W
  *------------------------------------------*/
 int battle_addmastery(struct map_session_data *sd,struct block_list *target,int dmg,int type)
@@ -651,9 +649,8 @@
 			damage += sd->status.str;
 	}
-	//Begin Custom Jobs (blackmagic)	
+
 	//Warlock Touch of Corruption (Mage-Monster Killer passive skill) [Brainstorm]
 	if((skill = pc_checkskill(sd,WL_CORRUPTION)) > 0 && target->type==BL_MOB )
 	damage += (skill * (status->int_/10));
-	//end custom job
 
 	if(type == 0)
@@ -740,5 +737,5 @@
 	{	//Mobs/Pets
 		if(flag&4)
-		{		  
+		{
 			atkmin = status->matk_min;
 			atkmax = status->matk_max;
@@ -756,5 +753,5 @@
 		{	//Normal attacks
 			atkmin = status->dex;
-			
+
 			if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]])
 				atkmin = atkmin*(80 + sd->inventory_data[sd->equip_index[type]]->wlv*20)/100;
@@ -762,5 +759,5 @@
 			if (atkmin > atkmax)
 				atkmin = atkmax;
-			
+
 			if(flag&2 && !(flag&16))
 			{	//Bows
@@ -771,14 +768,14 @@
 		}
 	}
-	
+
 	if (sc && sc->data[SC_MAXIMIZEPOWER])
 		atkmin = atkmax;
-	
+
 	//Weapon Damage calculation
 	if (!(flag&1))
 		damage = (atkmax>atkmin? rand()%(atkmax-atkmin):0)+atkmin;
-	else 
+	else
 		damage = atkmax;
-	
+
 	if (sd)
 	{
@@ -793,5 +790,5 @@
 				sd->right_weapon.atkmods[t_size])/100;
 	}
-	
+
 	//Finally, add baseatk
 	if(flag&4)
@@ -799,5 +796,5 @@
 	else
 		damage += status->batk;
-	
+
 	//rodatazone says that Overrefine bonuses are part of baseatk
 	//Here we also apply the weapon_atk_rate bonus so it is correctly applied on left/right hands.
@@ -826,5 +823,5 @@
 	if (!battle_config.arrow_decrement)
 		return;
-	
+
 	if (skill)
 	{
@@ -894,5 +891,5 @@
 		unsigned idef2 : 1;	//Ignore defense (left weapon)
 		unsigned pdef : 2;	//Pierces defense (Investigate/Ice Pick)
-		unsigned pdef2 : 2;	//1: Use def+def2/100, 2: Use def+def2/50	
+		unsigned pdef2 : 2;	//1: Use def+def2/100, 2: Use def+def2/50
 		unsigned infdef : 1;	//Infinite defense (plants)
 		unsigned arrow : 1;	//Attack is arrow-based
@@ -900,5 +897,5 @@
 		unsigned lh : 1;		//Attack considers left hand (wd.damage2)
 		unsigned weapon : 1; //It's a weapon attack (consider VVS, and all that)
-	}	flag;	
+	}	flag;
 
 	memset(&wd,0,sizeof(wd));
@@ -947,5 +944,5 @@
 	)
 		flag.arrow = 1;
-	
+
 	if(skill_num){
 		wd.flag |= battle_range_type(src, target, skill_num, skill_lv);
@@ -978,5 +975,5 @@
 				wd.type = 0x08;
 				break;
-				
+
 			case GS_GROUNDDRIFT:
 			case KN_SPEARSTAB:
@@ -997,5 +994,5 @@
 	} else //Range for normal attacks.
 		wd.flag |= flag.arrow?BF_LONG:BF_SHORT;
-	
+
 	if (!skill_num && tstatus->flee2 && rand()%1000 < tstatus->flee2)
 	{	//Check for Lucky Dodge
@@ -1049,5 +1046,5 @@
 		//Therefore, we use the old value 3 on cases when an sd gets attacked by a mob
 		cri -= tstatus->luk*(!sd&&tsd?3:2);
-		
+
 		if(tsc)
 		{
@@ -1117,5 +1114,5 @@
 		if(battle_config.agi_penalty_type &&
 			battle_config.agi_penalty_target&target->type)
-		{	
+		{
 			unsigned char attacker_count; //256 max targets should be a sane max
 			attacker_count = unit_counttargeted(target,battle_config.agi_penalty_count_lv);
@@ -1175,5 +1172,5 @@
 			hitrate += hitrate * ( 2 * skill ) / 100;
 
-		hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate); 
+		hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate);
 
 		if(rand()%100 >= hitrate)
@@ -1326,19 +1323,17 @@
 				)
 				skillratio += sd->random_attack_increase_add;
-		
+
 			ATK_RATE(skillratio);
 		} else {	//Skills
 			switch( skill_num )
 			{
-			//Begin Custom Job (blackmagic)
 				case NC_DEATHHAND: // Necro Death Hand [Brain]
-				skillratio += -25+25*skill_lv;
-				break;
-			//End Black Magic Custom Jobs
+					skillratio += -25+25*skill_lv;
+					break;
 				case SM_BASH:
 					skillratio += 30*skill_lv;
 					break;
 				case SM_MAGNUM:
-					skillratio += 20*skill_lv; 
+					skillratio += 20*skill_lv;
 					break;
 				case MC_MAMMONITE:
@@ -1597,5 +1592,5 @@
 					int k = (wflag-1)/3; //+100% every 3 cells of distance
 					if( k > 2 ) k = 2; // ...but hard-limited to 300%.
-					skillratio += 100 * k; 
+					skillratio += 100 * k;
 					}
 					break;
@@ -1612,13 +1607,11 @@
 					skillratio += 100 *(skill_lv-1);
 					break;
-					//Begin Custom Jobs (blackmagic)
-					//Mercenary Skills [Brainstorm]
-				case MS_BASH:
-					skillratio += 30*skill_lv;
-					break;
-				case MER_CRASH:
-					skillratio += 10*skill_lv;
-					break;
-					//end custom jobs
+		/*Mercenary Skills [Brainstorm]
+		case MS_BASH:
+			skillratio += 30*skill_lv;
+			break;
+		case MER_CRASH:
+			skillratio += 10*skill_lv;
+			break;*/
 			}
 
@@ -1682,5 +1675,5 @@
 				break;
 		}
-		
+
 		if(sd)
 		{
@@ -1754,10 +1747,10 @@
 				if(def2 < 1) def2 = 1;
 			}
-			//Vitality reduction from rodatazone: http://rodatazone.simgaming.net/mechanics/substats.php#def	
+			//Vitality reduction from rodatazone: http://rodatazone.simgaming.net/mechanics/substats.php#def
 			if (tsd)	//Sd vit-eq
 			{	//[VIT*0.5] + rnd([VIT*0.3], max([VIT*0.3],[VIT^2/150]-1))
 				vit_def = def2*(def2-15)/150;
 				vit_def = def2/2 + (vit_def>0?rand()%vit_def:0);
-				
+
 				if((sstatus->race==RC_UNDEAD || sstatus->race==RC_DEMON) &&
 					src->type == BL_MOB && (skill=pc_checkskill(tsd,AL_DP)) > 0)
@@ -1768,5 +1761,5 @@
 				vit_def = def2 + (vit_def>0?rand()%vit_def:0);
 			}
-			
+
 			if (battle_config.weapon_defense_type) {
 				vit_def += def1*battle_config.weapon_defense_type;
@@ -1791,5 +1784,5 @@
 		if (sc && skill_num != LK_SPIRALPIERCE)
 		{	//SC skill damages
-			if(sc->data[SC_AURABLADE]) 
+			if(sc->data[SC_AURABLADE])
 				ATK_ADD(20*sc->data[SC_AURABLADE]->val1);
 		}
@@ -1828,5 +1821,5 @@
 			else
 			ARR_FIND(0, 3, i, t_class == sd->hate_mob[i]);
-			if (i < 3 && (skill=pc_checkskill(sd,sg_info[i].anger_id))) 
+			if (i < 3 && (skill=pc_checkskill(sd,sg_info[i].anger_id)))
 			{
 				skillratio = sd->status.base_level + sstatus->dex + sstatus->luk;
@@ -1843,10 +1836,10 @@
 	} //Here ends flag.hit section, the rest of the function applies to both hitting and missing attacks
   	else if(wd.div_ < 0) //Since the attack missed...
-		wd.div_ *= -1; 
+		wd.div_ *= -1;
 
 	if(skill_num == CR_GRANDCROSS || skill_num == NPC_GRANDDARKNESS)
 		return wd; //Enough, rest is not needed.
 
-	if(sd && (skill=pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0) 
+	if(sd && (skill=pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0)
 		ATK_ADD(skill*2);
 
@@ -1890,5 +1883,5 @@
 		{
 			int cardfix = 1000, cardfix_ = 1000;
-			int t_race2 = status_get_race2(target);	
+			int t_race2 = status_get_race2(target);
 			if(sd->state.arrow_atk)
 			{
@@ -1950,5 +1943,5 @@
 				ATK_RATE2(cardfix/10, cardfix_/10);	//What happens if you use right-to-left and there's no right weapon, only left?
 		}
-		
+
 		if (skill_num == CR_SHIELDBOOMERANG || skill_num == PA_SHIELDCHAIN) { //Refine bonus applies after cards and elements.
 			short index= sd->equip_index[EQI_HAND_L];
@@ -2004,5 +1997,5 @@
 		if (flag.lh && (flag.hit || wd.damage2>0))
 			wd.damage2 = 1;
-		if (!(battle_config.skill_min_damage&1)) 
+		if (!(battle_config.skill_min_damage&1))
 			//Do not return if you are supposed to deal greater damage to plants than 1. [Skotlex]
 			return wd;
@@ -2034,5 +2027,5 @@
 	if (sd)
 	{
-		if (!flag.rh && flag.lh) 
+		if (!flag.rh && flag.lh)
 		{	//Move lh damage to the rh
 			wd.damage = wd.damage2;
@@ -2125,5 +2118,5 @@
 					breakrate[1] += sc->data[SC_MELTDOWN]->val3;
 				}
-			}	
+			}
 			if (breakrate[0])
 				skill_break_equip(target, EQP_WEAPON, breakrate[0], BCT_ENEMY);
@@ -2196,5 +2189,5 @@
 	else if (s_ele == -2) //Use status element
 		s_ele = status_get_attack_sc_element(src,status_get_sc(src));
-	
+
 	//Set miscellaneous data that needs be filled
 	if(sd) {
@@ -2206,5 +2199,5 @@
 	ad.flag |= battle_range_type(src, target, skill_num, skill_lv);
 	flag.infdef=(tstatus->mode&MD_PLANT?1:0);
-		
+
 	switch(skill_num)
 	{
@@ -2234,7 +2227,5 @@
 			case AL_HEAL:
 			case PR_BENEDICTIO:
-				//Begin Custom Job (blackmagic)
 			case AD_DARKHEAL: // Adept Dark Heal
-				//end custom job
 				ad.damage = skill_calc_heal(src, target, skill_lv)/2;
 				break;
@@ -2355,35 +2346,33 @@
 						skillratio += 100 +100*skill_lv +100*(skill_lv/2);
 						break;
-				//Begin Custom Job (blackmagic)
-					case NC_DRAINLIFE: // Necro Drain Life [Brain]
-						skillratio += 25*skill_lv;
-						break;
-					case WL_HELLFIRE: // Warlock Hellfire [Brain]
-						skillratio += 25*skill_lv;
-						break;
-					case WL_SHADOWBURN: // Warlock Shadow Burn [Brain]
-						skillratio += 20*skill_lv;
-						break;
-					case WL_CURSEDOOM: // Warlock Curse of Doom [Brain]
-						skillratio += 400 + 300*skill_lv; //max 20*matk dmg after 60 seconds
-						break;
-					case WL_SEARING: // Warlock Searing Pain [Brain]
-						if(status_get_sc(target)->data[SC_SEARING])
-							skillratio = 10*pc_checkskill(sd,WL_SEARING);//10% * skilllv
-						break; //Else 100% Matk
-					case WL_IMMOLATE: // Warlock Immolate [Brain]
-						if(status_get_sc(target)->data[SC_IMMOLATE])
-							skillratio += 10*pc_checkskill(sd,WL_SEARING);//100% +10 * searing lv
-						else skillratio += -20 + 20*skill_lv;// Else 80% + 20% * skill lv
-						break;
-					case WL_CONFLAGRATE: // Warlock Conflagrate [Brain]
-						skillratio += 100 + 60*skill_lv + //damage bonus from other fire skills
-							10*pc_checkskill(sd,WL_SEARING) + 10*pc_checkskill(sd,WL_IMMOLATE);
-						break;
-	//End Custom Job
-			}
+			case NC_DRAINLIFE: // Necro Drain Life [Brain]
+			skillratio += 25*skill_lv;
+			break;
+			case WL_HELLFIRE: // Warlock Hellfire [Brain]
+			skillratio += 25*skill_lv;
+			break;
+			case WL_SHADOWBURN: // Warlock Shadow Burn [Brain]
+			skillratio += 20*skill_lv;
+			break;
+			case WL_CURSEDOOM: // Warlock Curse of Doom [Brain]
+			skillratio += 400 + 300*skill_lv; //max 20*matk dmg after 60 seconds
+			break;
+			case WL_SEARING: // Warlock Searing Pain [Brain]
+			if(status_get_sc(target)->data[SC_SEARING])
+				skillratio = 10*pc_checkskill(sd,WL_SEARING);//10% * skilllv
+			break; //Else 100% Matk
+			case WL_IMMOLATE: // Warlock Immolate [Brain]
+			if(status_get_sc(target)->data[SC_IMMOLATE])
+				skillratio += 10*pc_checkskill(sd,WL_SEARING);//100% +10 * searing lv
+			else skillratio += -20 + 20*skill_lv;// Else 80% + 20% * skill lv
+			break;
+			case WL_CONFLAGRATE: // Warlock Conflagrate [Brain]
+			skillratio += 100 + 60*skill_lv + //damage bonus from other fire skills
+				10*pc_checkskill(sd,WL_SEARING) + 10*pc_checkskill(sd,WL_IMMOLATE);
+			break;
+				}
 
 				MATK_RATE(skillratio);
-			
+
 				//Constant/misc additions from skills
 				if (skill_num == WZ_FIREPILLAR)
@@ -2437,5 +2426,5 @@
 			}
 		}
-		
+
 		if (skill_num == NPC_EARTHQUAKE)
 		{	//Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex]
@@ -2452,13 +2441,14 @@
 		if (!(nk&NK_NO_ELEFIX))
 			ad.damage=battle_attr_fix(src, target, ad.damage, s_ele, tstatus->def_ele, tstatus->ele_lv);
-	//Begin Custom Job (blackmagic)		
+
+
 	if(skill_num == WL_SHADOWBURN) { // Warlock Shadow Burn [Brain]
 		// This is where we calculate the secondary damage
 		if(ad.damage<1) ad.damage=1;
 		struct Damage md = battle_calc_misc_attack(src,target,skill_num,skill_lv, mflag);
-		if(md.damage<1) md.damage=1;
-		ad.damage += md.damage;
-	}
-	//End Custom Job
+		if(md.damage<1) md.damage=1; //Changed MD = WD
+		ad.damage += md.damage; // Same as above
+	}
+
 		if (sd && !(nk&NK_NO_CARDFIX_ATK)) {
 			short t_class = status_get_class(target);
@@ -2515,8 +2505,8 @@
 
 	damage_div_fix(ad.damage, ad.div_);
-	
+
 	if (flag.infdef && ad.damage)
 		ad.damage = ad.damage>0?1:-1;
-		
+
 	ad.damage=battle_calc_damage(src,target,ad.damage,ad.div_,skill_num,skill_lv,ad.flag);
 	if (map_flag_gvg2(target->m))
@@ -2526,5 +2516,5 @@
 
 /*==========================================
- * »ÌŒ_E?[WvZ
+ * »ÌŒ_??[WvZ
  *------------------------------------------*/
 struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag)
@@ -2555,8 +2545,8 @@
 
 	nk = skill_get_nk(skill_num);
-	
+
 	sd = BL_CAST(BL_PC, src);
 	tsd = BL_CAST(BL_PC, target);
-	
+
 	if(sd) {
 		sd->state.arrow_atk = 0;
@@ -2589,10 +2579,10 @@
 		if(mflag > 1) //Autocasted Blitz.
 			nk|=NK_SPLASHSPLIT;
-		
+
 		if (skill_num == SN_FALCONASSAULT)
 		{
 			//Div fix of Blitzbeat
 			skill = skill_get_num(HT_BLITZBEAT, 5);
-			damage_div_fix(md.damage, skill); 
+			damage_div_fix(md.damage, skill);
 
 			//Falcon Assault Modifier
@@ -2660,9 +2650,8 @@
 	case NPC_EVILLAND:
 		md.damage = (skill_lv>6)?666:skill_lv*100;
-	//Begin Custom Job (blackmagic)
+		//break;
 	case WL_SHADOWBURN: // Warlock ShadowBurn dark element damage [Brain]
-	s_ele = ELE_DARK;
-	md.damage = ((300 + 20*skill_lv)/100)*((sstatus->int_*(rand()%300+500))/100); //Fixed between min and max matk for now
-	//End Custom Job
+		s_ele = ELE_DARK;
+		md.damage = ((300 + 20*skill_lv)/100)*((sstatus->int_*(rand()%300+500))/100); //Fixed between min and max matk for now
 		break;
 	}
@@ -2676,5 +2665,5 @@
 
 	damage_div_fix(md.damage, md.div_);
-	
+
 	if (!(nk&NK_IGNORE_FLEE))
 	{
@@ -2688,7 +2677,7 @@
 				hitrate=80; //Default hitrate
 
-			if(battle_config.agi_penalty_type && 
+			if(battle_config.agi_penalty_type &&
 				battle_config.agi_penalty_target&target->type)
-			{	
+			{
 				unsigned char attacker_count; //256 max targets should be a sane max
 				attacker_count = unit_counttargeted(target,battle_config.agi_penalty_count_lv);
@@ -2759,5 +2748,5 @@
 }
 /*==========================================
- * _E?[WvZê?E?p
+ * _??[WvZê??p
  *------------------------------------------*/
 struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,int skill_num,int skill_lv,int count)
@@ -2825,9 +2814,9 @@
 		if (*damage <= 0) continue;
 		//First and Third iterations: race, other two boss/nonboss state
-		if (i == 0 || i == 2) 
+		if (i == 0 || i == 2)
 			type = race;
 		else
 			type = boss?RC_BOSS:RC_NONBOSS;
-		
+
 		hp = wd->hp_drain[type].value;
 		if (wd->hp_drain[type].rate)
@@ -2852,6 +2841,5 @@
 	if (sd->sp_vanish_rate && rand()%1000 < sd->sp_vanish_rate)
 		status_percent_damage(&sd->bl, tbl, 0, (unsigned char)sd->sp_vanish_per, false);
-	//begin custom job (blackmagic	
-	// Adept Blood Pact drains 5% damage per hit [FlavioJS/Brain]
+// Adept Blood Pact drains 5% damage per hit [FlavioJS/Brain]
 	if( pc_checkskill(sd, AD_BLOODPACT) > 0 )
 	thp += battle_calc_drain(rdamage,1000,5);
@@ -2867,9 +2855,8 @@
 		rhp += corrupt_sp;//If SP damage was caused, increase HP damage too
 	}
-	//end custom job
 	if (!thp && !tsp) return;
 
 	status_heal(&sd->bl, thp, tsp, battle_config.show_hp_sp_drain?3:1);
-	
+
 	if (rhp || rsp)
 		status_zap(tbl, rhp, rsp);
@@ -2877,5 +2864,5 @@
 
 /*==========================================
- * Ê?EU?E?ÜÆß
+ * Ê?í?U??ÜÆß
  *------------------------------------------*/
 enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* target, unsigned int tick, int flag)
@@ -2907,5 +2894,5 @@
 	if (tsc && !tsc->count)
 		tsc = NULL;
-	
+
 	if (sd)
 	{
@@ -3070,5 +3057,5 @@
 
 	if (tsc) {
-		if (tsc->data[SC_POISONREACT] && 
+		if (tsc->data[SC_POISONREACT] &&
 			(rand()%100 < tsc->data[SC_POISONREACT]->val3
 			|| sstatus->def_ele == ELE_POISON) &&
@@ -3092,5 +3079,4 @@
 }
 
-//Begin custom Job (blackmagic)
 int battle_check_living(int race,int element)// Living creature check [Brain]
 {
@@ -3105,5 +3091,4 @@
 	}
 }
-//end custom job
 
 int battle_check_undead(int race,int element)
@@ -3234,5 +3219,5 @@
 			break;
 		//All else not specified is an invalid target.
-		default:	
+		default:
 			return 0;
 	}
@@ -3253,15 +3238,4 @@
 				strip_enemy = 0;
 			}
-			// Sketchy - begin
-		if (sd->state.god && t_bl != s_bl && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->state.demon && map[m].flag.hostile) {
-		state |= BCT_ENEMY;
-		strip_enemy = 0;
-		}
-
-		if (sd->state.demon && t_bl != s_bl && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->state.god && map[m].flag.hostile) {
-		state |= BCT_ENEMY;
-		strip_enemy = 0;
-		}
-		// Sketchy -end
 			break;
 		}
@@ -3362,6 +3336,6 @@
 			break;
 	}
-	
-	if ((flag&BCT_ALL) == BCT_ALL) { //All actually stands for all attackable chars 
+
+	if ((flag&BCT_ALL) == BCT_ALL) { //All actually stands for all attackable chars
 		if (target->type&BL_CHAR)
 			return 1;
@@ -3371,5 +3345,5 @@
 	if (flag == BCT_NOONE) //Why would someone use this? no clue.
 		return -1;
-	
+
 	if (t_bl == s_bl)
 	{	//No need for further testing.
@@ -3379,5 +3353,5 @@
 		return (flag&state)?1:-1;
 	}
-	
+
 	if (map_flag_vs(m)) { //Check rivalry settings.
 		if (flag&(BCT_PARTY|BCT_ENEMY)) {
@@ -3429,5 +3403,5 @@
 		}
 	}
-	
+
 	if (!state) //If not an enemy, nor a guild, nor party, nor yourself, it's neutral.
 		state = BCT_NEUTRAL;
@@ -3759,5 +3733,5 @@
 	{ "require_glory_guild",                &battle_config.require_glory_guild,             0,      0,      1,              },
 	{ "idle_no_share",                      &battle_config.idle_no_share,                   0,      0,      INT_MAX,        },
-	{ "party_even_share_bonus",             &battle_config.party_even_share_bonus,          0,      0,      INT_MAX,        }, 
+	{ "party_even_share_bonus",             &battle_config.party_even_share_bonus,          0,      0,      INT_MAX,        },
 	{ "delay_battle_damage",                &battle_config.delay_battle_damage,             1,      0,      1,              },
 	{ "hide_woe_damage",                    &battle_config.hide_woe_damage,                 0,      0,      1,              },
@@ -3832,9 +3806,8 @@
 	{ "auction_feeperhour",                 &battle_config.auction_feeperhour,              12000,  0,      INT_MAX,        },
 	{ "auction_maximumprice",               &battle_config.auction_maximumprice,            500000000, 0,   MAX_ZENY,       },
-	//Begin Custom Job (blackmagic)	
 	//Vanaheim battle settings [Brainstorm]
 	{ "necro_retaliation",		  &battle_config.necro_retaliation,		   1,	  0,	  1,		  },
-	{ "disp_summon_stats",		  &battle_config.disp_summon_stats,
-	//End Custom Job
+	{ "disp_summon_stats",		  &battle_config.disp_summon_stats,		   0,	  0,	  1,		  },
+
 	{ "gm_viewequip_min_lv",                &battle_config.gm_viewequip_min_lv,             0,      0,      99,             },
 };
@@ -3881,7 +3854,7 @@
 	battle_config.monster_max_aspd = 2000 - battle_config.monster_max_aspd*10;
 	battle_config.max_aspd = 2000 - battle_config.max_aspd*10;
-	battle_config.max_walk_speed = 100*DEFAULT_WALK_SPEED/battle_config.max_walk_speed;	
+	battle_config.max_walk_speed = 100*DEFAULT_WALK_SPEED/battle_config.max_walk_speed;
 	battle_config.max_cart_weight *= 10;
-	
+
 	if(battle_config.max_def > 100 && !battle_config.weapon_defense_type)	 // added by [Skotlex]
 		battle_config.max_def = 100;
@@ -3889,13 +3862,13 @@
 	if(battle_config.min_hitrate > battle_config.max_hitrate)
 		battle_config.min_hitrate = battle_config.max_hitrate;
-		
+
 	if(battle_config.pet_max_atk1 > battle_config.pet_max_atk2)	//Skotlex
 		battle_config.pet_max_atk1 = battle_config.pet_max_atk2;
-	
+
 	if (battle_config.day_duration && battle_config.day_duration < 60000) // added by [Yor]
 		battle_config.day_duration = 60000;
 	if (battle_config.night_duration && battle_config.night_duration < 60000) // added by [Yor]
 		battle_config.night_duration = 60000;
-	
+
 #ifndef CELL_NOSTACK
 	if (battle_config.cell_stack_limit != 1)
Index: /src/map/skill.c
===================================================================
--- /src/map/skill.c (revision 13)
+++ /src/map/skill.c (revision 19)
@@ -42,5 +42,5 @@
 #define GD_SKILLRANGEMIN 900
 #define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL
-#define HM_SKILLRANGEMIN 1100 //Custom Jobs (blackmagic)//Custom Job End
+#define HM_SKILLRANGEMIN 1100
 #define HM_SKILLRANGEMAX HM_SKILLRANGEMIN+MAX_HOMUNSKILL
 
@@ -283,5 +283,5 @@
 	struct status_change* sc;
 	sc = status_get_sc(bl);
-	
+
 	// Never copy NPC/Wedding Skills
 	if (skill_get_inf2(skillid)&(INF2_NPC_SKILL|INF2_WEDDING_SKILL))
@@ -300,5 +300,5 @@
 	if ((skillid == AL_INCAGI || skillid == AL_BLESSING))
 		return 0;
-		
+
 	return 1;
 }
@@ -306,13 +306,13 @@
 // [MouseJstr] - skill ok to cast? and when?
 int skillnotok (int skillid, struct map_session_data *sd)
-{	
+{
 	int i,m;
 	nullpo_retr (1, sd);
 	m = sd->bl.m;
 	i = skill_get_index(skillid);
-	
+
 	if (i == 0)
 		return 1; // invalid skill id
-	
+
 	if (battle_config.gm_skilluncond && pc_isGM(sd) >= battle_config.gm_skilluncond)
 		return 0;  // GMs can do any damn thing they want
@@ -354,5 +354,5 @@
 				return 1;
 			}
-			break;	
+			break;
 		case MC_VENDING:
 		case MC_IDENTIFY:
@@ -387,5 +387,5 @@
 	if (i == 0)
 		return 1; // invalid skill id
-	
+
 	if (hd->blockskill[i] > 0)
 		return 1;
@@ -396,5 +396,5 @@
 
 struct s_skill_unit_layout* skill_get_unit_layout (int skillid, int skilllv, struct block_list* src, int x, int y)
-{	
+{
 	int pos = skill_get_unit_layout_type(skillid,skilllv);
 	int dir;
@@ -420,5 +420,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 int skill_additional_effect (struct block_list* src, struct block_list *bl, int skillid, int skilllv, int attack_type, unsigned int tick)
@@ -450,5 +450,5 @@
 	if (!tsc) //skill additional effect is about adding effects to the target...
 		//So if the target can't be inflicted with statuses, this is pointless.
-		return 0;	
+		return 0;
 
 	switch(skillid)
@@ -482,5 +482,5 @@
 						(2000 - 4*sstatus->agi - 2*sstatus->dex)))
 					; //Stance triggered
-				else if(sc->data[SC_READYTURN] && 
+				else if(sc->data[SC_READYTURN] &&
 					sc_start(src,SC_COMBO, 15, TK_TURNKICK,
 						(2000 - 4*sstatus->agi - 2*sstatus->dex)))
@@ -492,5 +492,5 @@
 						rate += rate*sc->data[SC_SKILLRATE_UP]->val2/100;
 						status_change_end(src,SC_SKILLRATE_UP,-1);
-					} 
+					}
 					sc_start4(src,SC_COMBO, rate, TK_COUNTER, bl->id,0,0,
 						(2000 - 4*sstatus->agi - 2*sstatus->dex));
@@ -662,5 +662,5 @@
 	case NPC_PETRIFYATTACK:
 		sc_start4(bl,status_skill2sc(skillid),50+10*skilllv,
-			skilllv,0,0,skill_get_time(skillid,skilllv), 
+			skilllv,0,0,skill_get_time(skillid,skilllv),
 			skill_get_time2(skillid,skilllv));
 		break;
@@ -680,5 +680,5 @@
 		sc_start(bl,SC_BLEEDING,(20*skilllv),skilllv,skill_get_time2(skillid,skilllv));
 		break;
-	case NPC_MENTALBREAKER: 
+	case NPC_MENTALBREAKER:
 	{	//Based on observations by Tharis, Mental Breaker should do SP damage
 	  	//equal to Matk*skLevel.
@@ -785,5 +785,5 @@
 			if (tsc->data[SC_ADRENALINE2])
 				status_change_end(bl, SC_ADRENALINE2, -1);
-		}		
+		}
 		break;
 	case TK_TURNKICK:
@@ -821,4 +821,35 @@
 		sc_start(bl,SC_CRITICALWOUND,100,skilllv,skill_get_time2(skillid,skilllv));
 		break;
+<<<<<<< .mine
+	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;
+	//Mercenary Skills [Brainstorm]
+/*	case MS_BASH:
+	sc_start(bl,SC_STUN,5*(skilllv-5),skilllv,skill_get_time(skillid,skilllv));
+	break;
+	case MER_CRASH:
+	sc_start(bl,SC_STUN,6*skilllv,skilllv,skill_get_time(skillid,skilllv));
+	break;*/
+=======
 		//Custom Jobs (blackmagic)
 	case NC_GHOULTOUCH:	//Necro Ghoul Touch [Brain]
@@ -845,4 +876,5 @@
 		break;
 //Custom Job End
+>>>>>>> .r18
 	}
 
@@ -956,5 +988,5 @@
 	if(sd && sd->classchange && attack_type&BF_WEAPON &&
 		dstmd && !(tstatus->mode&MD_BOSS) &&
-		(rand()%10000 < sd->classchange)) 
+		(rand()%10000 < sd->classchange))
 	{
 		struct mob_db *mob;
@@ -965,5 +997,5 @@
 				class_ = rand() % MAX_MOB_DB;
 			} while (!mobdb_checkid(class_));
-			
+
 			rate = rand() % 1000000;
 			mob = mob_db(class_);
@@ -979,8 +1011,8 @@
 
 /* Splitted off from skill_additional_effect, which is never called when the
- * attack skill kills the enemy. Place in this function counter status effects 
- * when using skills (eg: Asura's sp regen penalty, or counter-status effects 
+ * attack skill kills the enemy. Place in this function counter status effects
+ * when using skills (eg: Asura's sp regen penalty, or counter-status effects
  * from cards) that will take effect on the source, not the target. [Skotlex]
- * Note: Currently this function only applies to Extremity Fist and BF_WEAPON 
+ * Note: Currently this function only applies to Extremity Fist and BF_WEAPON
  * type of skills, so not every instance of skill_additional_effect needs a call
  * to this one.
@@ -992,5 +1024,5 @@
 	struct map_session_data *dstsd=NULL;
 	struct status_change *tsc;
-	
+
 	nullpo_retr(0, src);
 	nullpo_retr(0, bl);
@@ -1010,5 +1042,5 @@
 		if(tsc && tsc->data[SC_KAAHI] && tsc->data[SC_KAAHI]->val4 == -1)
 			tsc->data[SC_KAAHI]->val4 = add_timer(
-				tick+skill_get_time2(SL_KAAHI,tsc->data[SC_KAAHI]->val1), 
+				tick+skill_get_time2(SL_KAAHI,tsc->data[SC_KAAHI]->val1),
 				kaahi_heal_timer, bl->id, SC_KAAHI); //Activate heal.
 		break;
@@ -1042,4 +1074,16 @@
 		status_heal(src, 0, status_get_lv(bl)*(95+15*rate)/100, 2);
 	}
+<<<<<<< .mine
+
+	// 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
+=======
 //Custom Jobs (blackmagic)	
 	// Warlock Soul Steal [Brain]
@@ -1052,6 +1096,7 @@
 		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
-	}
-//Custom Job End
+>>>>>>> .r18
+	}
+
 	if(dstsd && attack_type&BF_WEAPON)
 	{	//Counter effects.
@@ -1064,5 +1109,5 @@
 				rate+=dstsd->addeff2[i].arrow_rate;
 			if (!rate) continue;
-			
+
 			if ((dstsd->addeff2[i].flag&(ATF_LONG|ATF_SHORT)) != (ATF_LONG|ATF_SHORT))
 			{	//Trigger has range consideration.
@@ -1073,8 +1118,8 @@
 			type = dstsd->addeff2[i].id;
 			time = skill_get_time2(status_sc2skill(type),7);
-			
+
 			if (dstsd->addeff2[i].flag&ATF_TARGET)
 				status_change_start(src,type,rate,7,0,0,0,time,0);
-			
+
 			if (dstsd->addeff2[i].flag&ATF_SELF && !status_isdead(bl))
 				status_change_start(bl,type,rate,7,0,0,0,time,0);
@@ -1084,5 +1129,5 @@
 	// Trigger counter-spells to retaliate against damage causing skills.
 	if(dstsd && !status_isdead(bl) && src != bl && dstsd->autospell2[0].id &&
-		!(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE)) 
+		!(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE))
 	{
 		struct block_list *tbl;
@@ -1104,5 +1149,5 @@
 			if (attack_type&BF_LONG)
 				 rate>>=1;
-			
+
 			if (skillnotok(skillid, dstsd))
 				continue;
@@ -1113,5 +1158,5 @@
 			else
 				tbl = src;
-			
+
 			switch (skill_get_casttype(skillid)) {
 				case CAST_GROUND:
@@ -1137,5 +1182,5 @@
 	//Auto-script when attacked
 	if(dstsd && !status_isdead(bl) && src != bl && dstsd->autoscript2[0].script &&
-		!(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE)) 
+		!(skillid && skill_get_nk(skillid)&NK_NO_DAMAGE))
 	{
 		int i;
@@ -1161,5 +1206,5 @@
    (BCT_ENEMY/BCT_PARTY/BCT_SELF) are the valid values.
 --------------------------------------------------------------------------*/
-int skill_break_equip (struct block_list *bl, unsigned short where, int rate, int flag) 
+int skill_break_equip (struct block_list *bl, unsigned short where, int rate, int flag)
 {
 	const int where_list[4]     = {EQP_WEAPON, EQP_ARMOR, EQP_SHIELD, EQP_HELM};
@@ -1263,5 +1308,5 @@
 	for (i = 0; i < ARRAYLENGTH(pos); i++) {
 		if (where&pos[i] && sc->data[sc_def[i]])
-			where&=~pos[i]; 
+			where&=~pos[i];
 	}
 	if (!where) return 0;
@@ -1293,5 +1338,5 @@
 	if (count == 0)
 		return 0; //Actual knockback distance is 0.
-	
+
 	switch (target->type)
 	{
@@ -1328,5 +1373,5 @@
 
 	if (!su)
-		unit_stop_walking(target,0); 
+		unit_stop_walking(target,0);
 
 	dx = nx - target->x;
@@ -1345,5 +1390,5 @@
 	map_foreachinmovearea(clif_insight, target, AREA_SIZE, -dx, -dy, target->type == BL_PC ? BL_ALL : BL_PC, target);
 
-	if(!(flag&0x1)) 
+	if(!(flag&0x1))
 		clif_blown(target);
 
@@ -1393,5 +1438,5 @@
  * flag&0xFFF is passed to the underlying battle_calc_attack for processing
  *      (usually holds number of targets, or just 1 for simple splash attacks)
- * flag&0x1000 is used to tag that this is a splash-attack (so the damage 
+ * flag&0x1000 is used to tag that this is a splash-attack (so the damage
  *      packet shouldn't display a skill animation)
  * flag&0x2000 is used to signal that the skilllv should be passed as -1 to the
@@ -1494,5 +1539,5 @@
 			}
 		}
-	
+
 		if(sc && sc->data[SC_MAGICROD] && src == dsrc) {
 			int sp = skill_get_sp(skillid,skilllv);
@@ -1508,8 +1553,7 @@
 
 	damage = dmg.damage + dmg.damage2;
-	
-	if (skillid == AL_INCAGI || skillid == AL_BLESSING)
-		if (tsd->sc.data[SC_CHANGEUNDEAD])
-			damage = 1;
+
+	if( (skillid == AL_INCAGI || skillid == AL_BLESSING) && tsd->sc.data[SC_CHANGEUNDEAD] )
+		damage = 1;
 
 	if (damage > 0 && dmg.flag&BF_WEAPON && src != bl && src == dsrc &&
@@ -1520,5 +1564,5 @@
 	type=(skillid==0)?5:skill_get_hit(skillid);
 
-	if(damage < dmg.div_ 
+	if(damage < dmg.div_
 		//Only skills that knockback even when they miss. [Skotlex]
 		&& skillid != CH_PALMSTRIKE)
@@ -1649,5 +1693,5 @@
 		break;
 	}
-	
+
 	map_freeblock_lock();
 
@@ -1682,6 +1726,6 @@
 		}
 	}
-	if (skillid != WZ_SIGHTRASHER && 
-		skillid != WZ_SIGHTBLASTER && 
+	if (skillid != WZ_SIGHTRASHER &&
+		skillid != WZ_SIGHTBLASTER &&
 		skillid != AC_SHOWER &&
 		skillid != SM_MAGNUM &&
@@ -1705,5 +1749,5 @@
 			if (!status_isdead(bl))
 				skill_additional_effect(src,bl,skillid,skilllv,attack_type,tick);
-			//Counter status effects [Skotlex] 
+			//Counter status effects [Skotlex]
 			skill_counter_additional_effect(dsrc,bl,skillid,skilllv,attack_type,tick);
 		}
@@ -1723,5 +1767,5 @@
 		skill_blown(dsrc,bl,dmg.blewcount,direction,0);
 	}
-	
+
 	//Delayed damage must be dealt after the knockback (it needs to know actual position of target)
 	if (dmg.amotion)
@@ -1755,5 +1799,5 @@
 
 	if (!(flag&2) &&
-		(	
+		(
 			skillid == MG_COLDBOLT || skillid == MG_FIREBOLT || skillid == MG_LIGHTNINGBOLT
 		) &&
@@ -1800,9 +1844,11 @@
 	if(battle_check_target(src,bl,flag) > 0)
 	{
-		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);
+		// 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))
 			skill_area_temp[2]++;
-		}
+
 		return func(src,bl,skill_id,skill_lv,tick,flag);
 	}
@@ -1927,5 +1973,5 @@
 	struct map_session_data *sd;
 	int gid, id, strvit, agidex;
-	
+
 	sd = (struct map_session_data *)bl;
 
@@ -1967,5 +2013,5 @@
 	int i,j,hp,sp,hp_rate,sp_rate,state,mhp ;
 	int itemid[10],amount[ARRAYLENGTH(itemid)],index[ARRAYLENGTH(itemid)];
-	
+
 	nullpo_retr(0, hd);
 	sd = hd->master;
@@ -2102,5 +2148,5 @@
 				target = src; //Required since it has to warp.
 			if(target == NULL)
-				break;	
+				break;
 			if(target->prev == NULL)
 				break;
@@ -2145,4 +2191,40 @@
 					}
 					break;
+<<<<<<< .mine
+
+		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;
+
+=======
 					//Custom Jobs (blackmagic)
 				
@@ -2181,4 +2263,5 @@
 				
 					//Custom Job End
+>>>>>>> .r18
 				default:
 					skill_attack(skl->type,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag);
@@ -2216,8 +2299,8 @@
 	ud = unit_bl2ud(src);
 	nullpo_retr(1, ud);
-	
+
 	ARR_FIND( 0, MAX_SKILLTIMERSKILL, i, ud->skilltimerskill[i] == 0 );
 	if( i == MAX_SKILLTIMERSKILL ) return 1;
-	
+
 	ud->skilltimerskill[i] = ers_alloc(skill_timer_ers, struct skill_timerskill);
 	ud->skilltimerskill[i]->timer = add_timer(tick, skill_timerskill, src->id, i);
@@ -2244,5 +2327,5 @@
 	ud = unit_bl2ud(src);
 	nullpo_retr(0, ud);
-		
+
 	for(i=0;i<MAX_SKILLTIMERSKILL;i++) {
 		if(ud->skilltimerskill[i]) {
@@ -2281,5 +2364,5 @@
 
 	nullpo_retr(1, src);
-	nullpo_retr(1, bl);	
+	nullpo_retr(1, bl);
 
 	if (src->m != bl->m)
@@ -2288,5 +2371,5 @@
 	if (bl->prev == NULL)
 		return 1;
-	
+
 	sd = BL_CAST(BL_PC, src);
 	tsd = BL_CAST(BL_PC, bl);
@@ -2304,5 +2387,5 @@
 	}
 
-	sc = status_get_sc(src);	
+	sc = status_get_sc(src);
 	if (sc && !sc->count)
 		sc = NULL; //Unneeded
@@ -2393,5 +2476,31 @@
 	case NPC_BLEEDING:
 	case NPC_CRITICALWOUND:
+	/*Mercenary Skills [Brainstorm]
+	case MS_BASH:
+	case MA_DOUBLE:
+	case MA_CHARGEARROW:
+	case ML_PIERCE:
+	case ML_SPIRALPIERCE:
+	case MER_CRASH:
 		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
+<<<<<<< .mine
+		break;*/
+	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;
+=======
 		break;
 		//Custom Jobs (blackmagic)
@@ -2414,4 +2523,6 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
+
 
 	case LK_JOINTBEAT: // decide the ailment first (affects attack damage and effect)
@@ -2446,5 +2557,5 @@
 		map_foreachinrange(skill_attack_area, src,
 			skill_get_splash(skillid, skilllv), splash_target(src),
-			BF_WEAPON, src, src, skillid, skilllv, tick, flag, BCT_ENEMY);	
+			BF_WEAPON, src, src, skillid, skilllv, tick, flag, BCT_ENEMY);
 		break;
 
@@ -2588,5 +2699,5 @@
 	//Splash attack skills.
 	case AS_GRIMTOOTH:
-	case MC_CARTREVOLUTION:	
+	case MC_CARTREVOLUTION:
 	case NPC_SPLASHATTACK:
 		flag |= SD_PREAMBLE; // a fake packet will be sent for the first target to be hit
@@ -2594,5 +2705,5 @@
 	case SM_MAGNUM:
 	case HT_BLITZBEAT:
-	case AC_SHOWER:	
+	case AC_SHOWER:
 	case MG_NAPALMBEAT:
 	case MG_FIREBALL:
@@ -2651,5 +2762,5 @@
 		if (skill_area_temp[1] != bl->id)
 			skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag|SD_ANIMATION);
-		else 
+		else
 			skill_attack(skill_get_type(skillid), src, src, bl, skillid, skilllv, tick, flag);
 		break;
@@ -2716,10 +2827,10 @@
 				skill_castend_nodamage_id);
 	}
-		break;	
+		break;
 	case CH_PALMSTRIKE: //	Palm Strike takes effect 1sec after casting. [Skotlex]
 	//	clif_skill_nodamage(src,bl,skillid,skilllv,0); //Can't make this one display the correct attack animation delay :/
 		clif_damage(src,bl,tick,status_get_amotion(src),0,-1,1,4,0); //Display an absorbed damage attack.
 		skill_addtimerskill(src, tick + 1000, bl->id, 0, 0, skillid, skilllv, BF_WEAPON, flag);
-		break;	
+		break;
 
 	case PR_TURNUNDEAD:
@@ -2749,6 +2860,87 @@
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		break;
+<<<<<<< .mine
+	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;
+=======
 		//Custom Jobs (blackmagic)
-
+>>>>>>> .r18
+
+<<<<<<< .mine
+=======
 	
 	case AD_DARKHEAL: // Adept Dark Heal [Brain]
@@ -2830,4 +3022,5 @@
 
 		//Custom Job End
+>>>>>>> .r18
 
 	case NPC_MAGICALATTACK:
@@ -2867,5 +3060,5 @@
 					count++; // natural water cell
 				else
-				if( (unit = map_find_skill_unit_oncell(src,x,y,SA_DELUGE,NULL)) != NULL 
+				if( (unit = map_find_skill_unit_oncell(src,x,y,SA_DELUGE,NULL)) != NULL
 				||  (unit = map_find_skill_unit_oncell(src,x,y,NJ_SUITON,NULL)) != NULL )
 				{
@@ -2932,5 +3125,5 @@
 				skill_attack(BF_MAGIC,src,src,src,skillid,skilllv,tick,flag);
 			status_percent_damage(src, src, 0, 100, false);
-		}		
+		}
 		if (sd) skill_blockpc_start (sd, skillid, (skilllv < 5 ? 10000: 15000));
 		break;
@@ -2993,5 +3186,5 @@
 	}
 
-	map_freeblock_unlock();	
+	map_freeblock_unlock();
 
 	if (sd && !(flag&1) && sd->state.arrow_atk) //Consume arrow on last invocation to this skill.
@@ -3001,5 +3194,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, int skillid, int skilllv, unsigned int tick, int flag)
@@ -3015,5 +3208,5 @@
 	int i;
 	enum sc_type type;
-	
+
 	if(skillid > 0 && skilllv <= 0) return 0;	// celest
 
@@ -3035,14 +3228,18 @@
 	if(status_isdead(src))
 		return 1;
+<<<<<<< .mine
+
+=======
 //Custom Jobs (blackmagic)
 	/*if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO)*/
 	// Added DEATHPACT [Brain]
 	//if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO)
+>>>>>>> .r18
 	if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO && skillid != NC_DEATHPACT)
 		return 1;
-//Custom Job End
+
 	tstatus = status_get_status_data(bl);
 	sstatus = status_get_status_data(src);
-	
+
 	//Check for undead skills that convert a no-damage skill into a damage one. [Skotlex]
 	switch (skillid) {
@@ -3065,4 +3262,20 @@
 			}
 			break;
+<<<<<<< .mine
+	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;
+
+=======
 			//Custom Jobs (blackmagic)
 		
@@ -3082,4 +3295,5 @@
 		
 			//Custom Job End
+>>>>>>> .r18
 		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);
@@ -3108,7 +3322,15 @@
 			int heal = skill_calc_heal(src, bl, skilllv);
 			int heal_get_jobexp;
-	
+
 			if (status_isimmune(bl) || (dstmd && dstmd->class_ == MOBID_EMPERIUM))
 				heal=0;
+<<<<<<< .mine
+		// 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;
+		}
+=======
 			//Custom Jobs (blackmagic)
 			// Profane Soul reduces the healed recieved by 3% per skilllv [Brain]
@@ -3119,4 +3341,5 @@
 			}
 			//Custom Job End
+>>>>>>> .r18
 			if (sd) {
 				if ((i = pc_skillheal_bonus(sd, skillid)))
@@ -3154,4 +3377,27 @@
 		}
 		break;
+<<<<<<< .mine
+
+	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;
+
+
+=======
 	//Custom Jobs (blackmagic)
 	
@@ -3175,4 +3421,5 @@
 		break;
 	//Custom Job End
+>>>>>>> .r18
 	case PR_REDEMPTIO:
 		if (sd && !(flag&1)) {
@@ -3205,9 +3452,7 @@
 		} else //Invalid target, skip resurrection.
 			break;
-		
+
 	case ALL_RESURRECTION:
-	//Custom Jobs (blackmagic)
 	case NC_DEATHPACT: // Necro Death Pact [Brain]
-	//Custom Job End
 		if(sd && map_flag_gvg(bl->m))
 		{	//No reviving in WoE grounds!
@@ -3217,5 +3462,5 @@
 		if (!status_isdead(bl))
 			break;
-		{	
+		{
 			int per = 0, sper = 0;
 			if (map[bl->m].flag.pvp && dstsd && dstsd->pvp_point < 0)
@@ -3227,13 +3472,20 @@
 			case 3: per=50; break;
 			case 4: per=80; break;
-			//Custom Jobs (blackmagic)
 			case 5: per=100; break; //Added a 5th level because NC_DEATHPACT got 5 lvs [Brain]
-			//Custom Job End
-			}
-			if(dstsd && dstsd->special_state.restart_full_recover) 
+			}
+			if(dstsd && dstsd->special_state.restart_full_recover)
 				per = sper = 100;
 			if (status_revive(bl, per, sper))
 			{
 				clif_skill_nodamage(src,bl,ALL_RESURRECTION,skilllv,1); //Both Redemptio and Res show this skill-animation.
+<<<<<<< .mine
+						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)
+=======
 				//Custom Jobs (blackmagic)
 				if(skillid==NC_DEATHPACT) { // Necro Death Pact [Brain]
@@ -3244,4 +3496,5 @@
 				//Custom Job End
 				if(sd && dstsd && battle_config.resurrection_exp > 0) 
+>>>>>>> .r18
 				{
 					int exp = 0,jexp = 0;
@@ -3261,4 +3514,6 @@
 		}
 		break;
+<<<<<<< .mine
+=======
 		//Custom Jobs (blackmagic)
 	
@@ -3352,6 +3607,96 @@
 		clif_specialeffect(src, 668, AREA); // Monster skill SCREAM effect on caster (with sound)
 		break;
-
-		//Custom Job End
+>>>>>>> .r18
+
+	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;
+
 
 	case AL_DECAGI:
@@ -3371,4 +3716,7 @@
 		}
 		break;
+<<<<<<< .mine
+
+=======
 	//Custom Jobs (blackmagic)
 	case NC_DARKMOON: //Necro Dark Moon [Brain]
@@ -3436,5 +3784,70 @@
 		}
 		break;
-		//Custom Job End
+>>>>>>> .r18
+	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;
+
 
 	case PR_LEXDIVINA:
@@ -3442,6 +3855,6 @@
 			status_change_end(bl,type, -1);
 			clif_skill_nodamage (src, bl, skillid, skilllv, 1);
-		} else 
-			clif_skill_nodamage (src, bl, skillid, skilllv, 
+		} else
+			clif_skill_nodamage (src, bl, skillid, skilllv,
 				sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;
@@ -3459,5 +3872,5 @@
 			abra_skilllv = min(skilllv, skill_get_max(abra_skillid));
 			clif_skill_nodamage (src, bl, skillid, skilllv, 1);
-			
+
 			if( sd )
 			{// player-casted
@@ -3473,9 +3886,9 @@
 				int target_id = 0;
 				if (!ud) break;
-				if (inf&INF_SELF_SKILL || inf&INF_SUPPORT_SKILL) { 
+				if (inf&INF_SELF_SKILL || inf&INF_SUPPORT_SKILL) {
 					if (src->type == BL_PET)
 						bl = (struct block_list*)((TBL_PET*)src)->msd;
 					if (!bl) bl = src;
-					unit_skilluse_id(src, bl->id, abra_skillid, abra_skilllv); 
+					unit_skilluse_id(src, bl->id, abra_skillid, abra_skilllv);
 				} else {	//Assume offensive skills
 					if (ud->target)
@@ -3490,5 +3903,5 @@
 						bl = map_id2bl(target_id);
 						if (!bl) bl = src;
-						unit_skilluse_pos(src, bl->x, bl->y, abra_skillid, abra_skilllv); 
+						unit_skilluse_pos(src, bl->x, bl->y, abra_skillid, abra_skilllv);
 					} else
 						unit_skilluse_id(src, target_id, abra_skillid, abra_skilllv);
@@ -3564,5 +3977,5 @@
 	case CR_PROVIDENCE:
 		if(sd && dstsd){ //Check they are not another crusader [Skotlex]
-			if ((dstsd->class_&MAPID_UPPERMASK) == MAPID_CRUSADER) {	
+			if ((dstsd->class_&MAPID_UPPERMASK) == MAPID_CRUSADER) {
 				clif_skill_fail(sd,skillid,0,0);
 				map_freeblock_unlock();
@@ -3573,5 +3986,5 @@
 			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;
-		
+
 	case CG_MARIONETTE:
 		{
@@ -3671,5 +4084,5 @@
 
 		sc_start(bl,SC_SEVENWIND,100,skilllv,skill_get_time(skillid,skilllv));
-			
+
 		break;
 
@@ -3702,5 +4115,5 @@
 	case LK_BERSERK:
 	case KN_AUTOCOUNTER:
-	case KN_TWOHANDQUICKEN:	
+	case KN_TWOHANDQUICKEN:
 	case KN_ONEHAND:
 	case CR_SPEARQUICKEN:
@@ -3713,5 +4126,5 @@
 	case MO_BLADESTOP:
 	case LK_AURABLADE:
-	case LK_PARRYING:	
+	case LK_PARRYING:
 	case LK_CONCENTRATION:
 	case WS_CARTBOOST:
@@ -3739,10 +4152,57 @@
 	case NPC_DEFENDER:
 	case NPC_MAGICMIRROR:
-		//Custom Jobs (blackmagic)
-	case ALL_ATFIELD:	//AT Field [Brain]
-		//Custom Job End
+	case ALL_ATFIELD:
 		clif_skill_nodamage(src,bl,skillid,skilllv,
 			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;
+<<<<<<< .mine
+	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;
+=======
 	//Custom Jobs (blackmagic)
 	
@@ -3796,4 +4256,5 @@
 	
 	//Custom Job End
+>>>>>>> .r18
 	case MG_SIGHT:
 	case AL_RUWACH:
@@ -3910,5 +4371,5 @@
 		if (!i)
 		{
-			if (sd) 
+			if (sd)
 				clif_skill_fail(sd,skillid,0,0);
 			map_freeblock_unlock();
@@ -3996,5 +4457,5 @@
 			skill_additional_effect(src,bl,skillid,skilllv,BF_MISC,tick); //Use Misc rather than weapon to signal passive pushback
 		}
-		break;	
+		break;
 
 	case MO_ABSORBSPIRITS:
@@ -4012,4 +4473,6 @@
 		clif_skill_nodamage(src,bl,skillid,skilllv,i?1:0);
 		break;
+<<<<<<< .mine
+=======
 		//Custom Jobs (blackmagic)
 	
@@ -4038,4 +4501,30 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
+
+	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;
+
 
 	case AC_MAKINGARROW:
@@ -4130,5 +4619,5 @@
 		}
 		break;
-	
+
 	case WZ_SIGHTRASHER:
 		//Passive side of the attack.
@@ -4238,5 +4727,5 @@
 	case SM_AUTOBERSERK:	// Celest
 		if (tsce)
-			i = status_change_end(bl, type, -1);				
+			i = status_change_end(bl, type, -1);
 		else
 			i = sc_start(bl,type,100,skilllv,60000);
@@ -4252,5 +4741,5 @@
 		break;
 	case TK_RUN:
-			if (tsce) 
+			if (tsce)
 				clif_skill_nodamage(src,bl,skillid,skilllv,
 					status_change_end(bl, type, -1));
@@ -4348,5 +4837,5 @@
 			if (dstmd)
 				mob_target(dstmd,src,skill_get_range2(src,skillid,skilllv));
-			
+
 			if (tsc->data[SC_STONE]) {
 				status_change_end(bl,SC_STONE,-1);
@@ -4499,5 +4988,5 @@
 		}
 		break;
-		
+
 	case TF_PICKSTONE:
 		if(sd) {
@@ -4556,5 +5045,5 @@
 		//Note that Full Strip autospell doesn't use a duration
 		if (!clif_skill_nodamage(src,bl,skillid,skilllv,
-				skill_strip_equip(bl, location, i, skilllv, 
+				skill_strip_equip(bl, location, i, skilllv,
 				sd&&skillid==ST_FULLSTRIP&&!pc_checkskill(sd, skillid)?0:skill_get_time(skillid,skilllv)))
 			&& sd)
@@ -4712,5 +5201,5 @@
 					continue;
 				switch (i) {
-				case SC_WEIGHT50:    case SC_WEIGHT90:    case SC_HALLUCINATION: 
+				case SC_WEIGHT50:    case SC_WEIGHT90:    case SC_HALLUCINATION:
 				case SC_STRIPWEAPON: case SC_STRIPSHIELD: case SC_STRIPARMOR:
 				case SC_STRIPHELM:   case SC_CP_WEAPON:   case SC_CP_SHIELD:
@@ -4762,5 +5251,5 @@
 				y = src->y + diry[dir]*skilllv*2;
 			}
-			
+
 			clif_skill_nodamage(src,bl,TK_HIGHJUMP,skilllv,1);
 			if(!map_count_oncell(src->m,x,y,BL_PC|BL_NPC|BL_MOB) && map_getcell(src->m,x,y,CELL_CHKREACH)) {
@@ -4806,5 +5295,5 @@
 				} else if (!dstsd || map_flag_vs(bl->m)) //HP damage only on pvp-maps when against players.
 					hp = tstatus->max_hp/50; //Recover 2% HP [Skotlex]
-				
+
 				clif_skill_nodamage(src,bl,skillid,skilllv,1);
 				unit_skillcastcancel(bl,0);
@@ -4816,5 +5305,5 @@
 				else
 					hp = 0;
-				
+
 				if (sp) //Recover some of the SP used
 					sp = sp*(25*(skilllv-1))/100;
@@ -4892,5 +5381,5 @@
 	case NPC_CHANGETELEKINESIS:
 		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv), 
+			sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv),
 				skill_get_time(skillid, skilllv)));
 		break;
@@ -4900,5 +5389,5 @@
 		if(tstatus->def_ele==ELE_UNDEAD || tstatus->def_ele==ELE_DARK) break;
 		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv), 
+			sc_start2(bl, type, 100, skilllv, skill_get_ele(skillid,skilllv),
 				skill_get_time(skillid, skilllv)));
 		break;
@@ -4917,5 +5406,5 @@
 					sc_start(bl,type,100,skilllv,skill_time))
 			&& ud) {	//Disable attacking/acting/moving for skill's duration.
-				ud->attackabletime = 
+				ud->attackabletime =
 				ud->canact_tick =
 				ud->canmove_tick = tick + skill_time;
@@ -4961,5 +5450,5 @@
 		}
 		break;
-	
+
 	case NPC_SPEEDUP:
 		{
@@ -5034,5 +5523,5 @@
 			sc_start(bl,type,100,100,skill_get_time(skillid, skilllv)));
 		break;
-		
+
 	case NPC_AGIUP:
 		sc_start(bl,SC_SPEEDUP1,100,skilllv,skill_get_time(skillid, skilllv));
@@ -5046,5 +5535,5 @@
 			sc_start4(bl,type,100,skilllv,0,0,6,skill_get_time(skillid,skilllv)));
 		break;
-		
+
 	case NPC_SIEGEMODE:
 		// not sure what it does
@@ -5196,5 +5685,5 @@
 				return 1;
 			}
-	
+
 			if (tsce)
 			{	//HelloKitty2 (?) explained that this silently fails when target is
@@ -5207,5 +5696,5 @@
 			if (!clif_skill_nodamage(src,bl,skillid,skilllv,
 				sc_start(bl,type,55+5*skilllv,skilllv,skill_get_time(skillid,skilllv))))
-			{	
+			{
 				if (sd) clif_skill_fail(sd,skillid,0,0);
 				map_freeblock_unlock();
@@ -5388,6 +5877,6 @@
 					break;
 				default:
-					break;			
-				}			
+					break;
+				}
 			} while ((--count) > 0);
 			clif_skill_nodamage(src,bl,skillid,skilllv,1);
@@ -5449,10 +5938,10 @@
 			clif_skill_nodamage(src,bl,skillid,skilllv,
 				sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		
+
 		if (skillid == SL_SKE)
 			sc_start(src,SC_SMA,100,skilllv,skill_get_time(SL_SMA,skilllv));
 
 		break;
-		
+
 	// New guild skills [Celest]
 	case GD_BATTLEORDER:
@@ -5532,5 +6021,5 @@
 				clif_feel_info(sd, skilllv-1, 1);
 		}
-		break;	
+		break;
 
 	case SG_HATE:
@@ -5612,5 +6101,5 @@
 			static const int per[5][2]={{20,50},{50,60},{25,75},{60,64},{34,67}};
 			int rnd = rand()%100;
-			i = (skilllv-1)%5; 
+			i = (skilllv-1)%5;
 			if(rnd<per[i][0]) //Self
 				bl = src;
@@ -5679,5 +6168,5 @@
 		mobskill_event(dstmd, src, tick, MSC_SKILLUSED|(skillid<<16));
 	}
-	
+
 	if (sd && !(flag&1) && sd->state.arrow_atk) //Consume arrow on last invocation to this skill.
 		battle_consume_ammo(sd, skillid, skilllv);
@@ -5782,5 +6271,5 @@
 			if(inf2 & (INF2_PARTY_ONLY|INF2_GUILD_ONLY) && src != target)
 			{
-				inf |= 	
+				inf |=
 					(inf2&INF2_PARTY_ONLY?BCT_PARTY:0)|
 					(inf2&INF2_GUILD_ONLY?BCT_GUILD:0);
@@ -5824,5 +6313,5 @@
 		if(sd && !skill_check_condition(sd,ud->skillid, ud->skilllv,1))
 			break;
-			
+
 		if(hd && !skill_check_condition_hom(hd,ud->skillid, ud->skilllv,1))	//[orn]
 			break;
@@ -5833,10 +6322,10 @@
 		if (ud->walktimer != -1 && ud->skillid != TK_RUN)
 			unit_stop_walking(src,1);
-		
+
 		ud->canact_tick = tick + skill_delayfix(src, ud->skillid, ud->skilllv);
-	
+
 		if (skill_get_state(ud->skillid) != ST_MOVE_ENABLE)
 			unit_set_walkdelay(src, tick, battle_config.default_walk_delay+skill_get_walkdelay(ud->skillid, ud->skilllv), 1);
-		
+
 		if(battle_config.skill_log && battle_config.skill_log&src->type)
 			ShowInfo("Type %d, ID %d skill castend id [id =%d, lv=%d, target ID %d]\n",
@@ -5893,5 +6382,5 @@
 			if (dy > 0) dy++;
 			else if(dy < 0) dy--;
-			
+
 			if (unit_movepos(src, src->x+dx, src->y+dy, 1, 1))
 			{	//Display movement + animation.
@@ -5914,5 +6403,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 int skill_castend_pos(int tid, unsigned int tick, int id, intptr data)
@@ -5935,5 +6424,5 @@
 		return 0;
 	}
-	
+
 	if( ud->skilltimer != tid )
 	{
@@ -5954,5 +6443,5 @@
 			skill_get_unit_flag(ud->skillid)&UF_NOREITERATION &&
 			skill_check_unit_range(src,ud->skillx,ud->skilly,ud->skillid,ud->skilllv)
-		  ) 
+		  )
 		{
 			if (sd) clif_skill_fail(sd,ud->skillid,0,0);
@@ -5993,5 +6482,5 @@
 			}
 		}
-			
+
 		if(sd && !skill_check_condition(sd,ud->skillid, ud->skilllv, 1))
 			break;
@@ -6079,5 +6568,5 @@
 		skill_area_temp[1] = src->id;
 		i = skill_get_splash(skillid, skilllv);
-		map_foreachinarea(skill_area_sub, 
+		map_foreachinarea(skill_area_sub,
 			src->m, x-i, y-i, x+i, y+i, BL_PC,
 			src, skillid, skilllv, tick, flag|BCT_ALL|1,
@@ -6106,4 +6595,6 @@
 			src->m, x-i, y-i, x+i,y+i,BL_SKILL);
 		break;
+<<<<<<< .mine
+=======
 		//Custom Jobs (blackmagic)
 	case WL_HELLFIRE: // Warlock Hellfire [Brain]
@@ -6114,7 +6605,16 @@
 		// Continue reading because skill_unitsetting is bellow
 		//Custom Job End
+>>>>>>> .r18
+
+	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:	
+	case MG_FIREWALL:
 	case MG_THUNDERSTORM:
 	case AL_PNEUMA:
@@ -6273,4 +6773,19 @@
 				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.
+<<<<<<< .mine
+                // @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));
+		}
+
+=======
 				//Custom Jobs (blackmagic)
 				// @showsummon command implementation [Brainstorm]
@@ -6287,8 +6802,67 @@
 				}
 				//Custom Job End
-			}
-		}
-		break;
-
+>>>>>>> .r18
+			}
+		}
+		break;
+
+<<<<<<< .mine
+	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;
+=======
 		//Custom Jobs (blackmagic)	
 	case AD_FAMILIAR: // Adept Summon Familiar [Brain]
@@ -6349,5 +6923,46 @@
 			int mob_class;
 			struct mob_data *md;
-
+>>>>>>> .r18
+
+<<<<<<< .mine
+		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
+		// @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;
+=======
 			switch( skillid )
 			{
@@ -6391,4 +7006,7 @@
 
 		//Custom Job End
+>>>>>>> .r18
+
+
 
 	// Slim Pitcher [Celest]
@@ -6416,5 +7034,5 @@
 			potion_hp = potion_hp * (100+i)/100;
 			potion_sp = potion_sp * (100+i)/100;
-			
+
 			if(potion_hp > 0 || potion_sp > 0) {
 				i = skill_get_splash(skillid, skilllv);
@@ -6438,5 +7056,5 @@
 			potion_hp = potion_hp * (100+i)/100;
 			potion_sp = potion_sp * (100+i)/100;
-			
+
 			if(potion_hp > 0 || potion_sp > 0) {
 				i = skill_get_splash(skillid, skilllv);
@@ -6460,5 +7078,5 @@
 		}
 		break;
-	
+
 	case HW_GRAVITATION:
 		if ((sg = skill_unitsetting(src,skillid,skilllv,x,y,0)))
@@ -6542,10 +7160,10 @@
 	if (sd && !(flag&1) && sd->state.arrow_atk) //Consume arrow if a ground skill was not invoked. [Skotlex]
 		battle_consume_ammo(sd, skillid, skilllv);
-		
+
 	return 0;
 }
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 int skill_castend_map (struct map_session_data *sd, short skill_num, const char *map)
@@ -6555,5 +7173,5 @@
 //Simplify skill_failed code.
 #define skill_failed(sd) { sd->menuskill_id = sd->menuskill_val = 0; }
-	if(skill_num != sd->menuskill_id) 
+	if(skill_num != sd->menuskill_id)
 		return 0;
 
@@ -6590,5 +7208,5 @@
 		return 0;
 	}
-	
+
 	switch(skill_num)
 	{
@@ -6631,10 +7249,10 @@
 				}
 			}
-		
+
 			//When it's an item-used warp-portal, the skill-lv used is lost.. assume max level.
 			lv = sd->skillitem==skill_num?skill_get_max(skill_num):pc_checkskill(sd,skill_num);
 			wx = sd->menuskill_val>>16;
 			wy = sd->menuskill_val&0xffff;
-			
+
 			if( lv <= 0 ) return 0;
 			if( lv > 4 ) lv = 4; // crash prevention
@@ -6655,5 +7273,5 @@
 				return 0;
 			}
-			
+
 			// This makes Warp Portal fail if the cell is not empty
 			//if(skill_check_unit_range2(&sd->bl,wx,wy,skill_num,lv) > 0) {
@@ -6714,10 +7332,10 @@
 		return 0; //Nothing to remove, this unit is not overlapped.
 
-	if (unit->val1 != unit->group->skill_id) 
+	if (unit->val1 != unit->group->skill_id)
 	{	//Reset state
 		unit->val1 = unit->group->skill_id;
 		unit->val2 &= ~UF_ENSEMBLE;
 	}
-	
+
 	return map_foreachincell(skill_dance_overlap_sub, unit->bl.m,unit->bl.x,unit->bl.y,BL_SKILL, unit,flag);
 }
@@ -6803,4 +7421,9 @@
 	switch(skillid)
 	{
+<<<<<<< .mine
+	case WL_HELLFIRE: // Warlock Hellfire [Brain]
+	if(map_flag_vs(src->m)) target = BCT_ALL;
+	break;
+=======
 //Custom Jobs (blackmagic)
 	case WL_HELLFIRE: // Warlock Hellfire [Brain]
@@ -6808,4 +7431,5 @@
 		break;
 //Custom Job End
+>>>>>>> .r18
 	case MG_SAFETYWALL:
 		val2=skilllv+1;
@@ -6883,5 +7507,5 @@
 			{	//Use the previous limit (minus the elapsed time) [Skotlex]
 				limit = old_sg->limit - DIFF_TICK(gettick(), old_sg->tick);
-				if (limit < 0)	//This can happen... 
+				if (limit < 0)	//This can happen...
 					limit = skill_get_time(skillid,skilllv);
 			}
@@ -7130,5 +7754,5 @@
 		return NULL;
 	}
-	
+
 
 	if (skillid == NJ_TATAMIGAESHI) //Store number of tiles.
@@ -7139,5 +7763,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 static int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned int tick)
@@ -7152,5 +7776,5 @@
 	nullpo_retr(0, src);
 	nullpo_retr(0, bl);
-	
+
 	if(bl->prev==NULL || !src->alive || status_isdead(bl))
 		return 0;
@@ -7162,10 +7786,10 @@
 			&& !skill_get_inf2(sg->skill_id) == INF2_TRAP) //Traps work on top of land protector, magical or not [Brain]
 		return 0; //AoE skills are ineffective. [Skotlex]
-	
+
 	sc = status_get_sc(bl);
-	
+
 	if (sc && sc->option&OPTION_HIDE && sg->skill_id != WZ_HEAVENDRIVE)
 		return 0; //Hidden characters are immune to AoE skills except Heaven's Drive. [Skotlex]
-	
+
 	type = status_skill2sc(sg->skill_id);
 	sce = (sc && type != -1)?sc->data[type]:NULL;
@@ -7263,5 +7887,5 @@
 		}
 		break;
-	
+
 	case UNT_FOGWALL:
 		if (!sce)
@@ -7284,5 +7908,5 @@
 //			src->limit = DIFF_TICK(tick+700,sg->tick);
 //		break;
-	
+
 	case UNT_MOONLIT:
 		//Knockback out of area if affected char isn't in Moonlit effect
@@ -7298,5 +7922,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, unsigned int tick)
@@ -7325,5 +7949,5 @@
 	tsc = status_get_sc(bl);
 	tstatus = status_get_status_data(bl);
-	if (sg->state.magic_power)  //For magic power. 
+	if (sg->state.magic_power)  //For magic power.
 	{
 		sc = status_get_sc(ss);
@@ -7354,5 +7978,5 @@
 			return 0;
 		ts->tick = tick+sg->interval;
-		
+
 		if ((skillid==CR_GRANDCROSS || skillid==NPC_GRANDDARKNESS) && !battle_config.gx_allhit)
 			ts->tick += sg->interval*(map_count_oncell(bl->m,bl->x,bl->y,BL_CHAR)-1);
@@ -7404,4 +8028,14 @@
 				}
 				if (status_isimmune(bl))
+<<<<<<< .mine
+					heal = 0;	/* é»éè²ã«ãŒãïŒããŒã«éïŒïŒ */
+		// 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;
+		}
+
+=======
 					heal = 0;	/* é»Eßè²ã«ãŒãïŒããŒã«éïŒïŒE*/
 				//Custom Jobs (blackmagic)
@@ -7413,4 +8047,5 @@
 				}
 				//Custom Job End
+>>>>>>> .r18
 				clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
 				status_heal(bl, heal, 0, 0);
@@ -7447,5 +8082,5 @@
 
 		case UNT_ATTACK_SKILLS:
-			switch (sg->skill_id) 
+			switch (sg->skill_id)
 			{
 				case SG_SUN_WARM: //SG skills [Komurka]
@@ -7485,5 +8120,5 @@
 				break;
 				default:
-					skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);			
+					skill_attack(skill_get_type(sg->skill_id),ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0);
 			}
 			break;
@@ -7509,5 +8144,5 @@
 				if (status_change_start(bl,type,10000,sg->skill_lv,sg->group_id,0,0,sec, 8))
 				{
-					struct TimerData* td = tsc->data[type]?get_timer(tsc->data[type]->timer):NULL; 
+					struct TimerData* td = tsc->data[type]?get_timer(tsc->data[type]->timer):NULL;
 					if (td) sec = DIFF_TICK(td->tick, tick);
 					map_moveblock(bl, src->bl.x, src->bl.y, tick);
@@ -7580,5 +8215,5 @@
 			clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
 			status_heal(bl, heal, 0, 0);
-			break;	
+			break;
 		}
 
@@ -7755,5 +8390,5 @@
 			status_change_end(bl,type,-1);
 		break;
-		
+
 	case UNT_SPIDERWEB:
 		{
@@ -7783,5 +8418,5 @@
 	if (sc && !sc->count)
 		sc = NULL;
-	
+
 	type = status_skill2sc(skill_id);
 	sce = (sc && type != -1)?sc->data[type]:NULL;
@@ -7800,5 +8435,5 @@
 		case BD_ETERNALCHAOS:
 		case BD_DRUMBATTLEFIELD:
-		case BD_RINGNIBELUNGEN:	
+		case BD_RINGNIBELUNGEN:
 		case BD_ROKISWEIL:
 		case BD_INTOABYSS:
@@ -7809,5 +8444,5 @@
 				//FIXME: This code is not perfect, it doesn't checks for the real ensemble's owner,
 				//it only checks if you are doing the same ensemble. So if there's two chars doing an ensemble
-				//which overlaps, by stepping outside of the other parther's ensemble will cause you to cancel 
+				//which overlaps, by stepping outside of the other parther's ensemble will cause you to cancel
 				//your own. Let's pray that scenario is pretty unlikely and noone will complain too much about it.
 				skill_stop_dancing(bl);
@@ -7824,5 +8459,5 @@
 				status_change_end(bl, type, -1);
 			break;
-			
+
 		case BA_POEMBRAGI:
 		case BA_WHISTLE:
@@ -7831,5 +8466,5 @@
 		case DC_HUMMING:
 		case DC_DONTFORGETME:
-		case DC_FORTUNEKISS:	
+		case DC_FORTUNEKISS:
 		case DC_SERVICEFORYOU:
 			if (sce)
@@ -7881,5 +8516,5 @@
 
 	nullpo_retr(0, group);
-  	
+
 	dissonance = skill_dance_switch(unit, 0);
 
@@ -7966,5 +8601,5 @@
 	if ((skillid != PR_BENEDICTIO && *c >=1) || *c >=2)
 		return 0; //Partner found for ensembles, or the two companions for Benedictio. [Skotlex]
-	
+
 	if (bl == src)
 		return 0;
@@ -7975,5 +8610,5 @@
 	if (tsd->sc.data[SC_SILENCE] || tsd->sc.opt1)
 		return 0;
-	
+
 	switch(skillid)
 	{
@@ -8060,5 +8695,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 static int skill_check_condition_mob_master_sub (struct block_list *bl, va_list ap)
@@ -8083,5 +8718,5 @@
 
 /*==========================================
- * Determines if a given skill should be made to consume ammo 
+ * Determines if a given skill should be made to consume ammo
  * when used by the player. [Skotlex]
  *------------------------------------------*/
@@ -8122,5 +8757,5 @@
 		sd->skillitem = sd->skillitemlv = 0;
 		//Need to do arrow state check.
-		sd->state.arrow_atk = skill_get_ammotype(skill)?1:0; 
+		sd->state.arrow_atk = skill_get_ammotype(skill)?1:0;
 		//Need to do Spiritball check.
 		sd->spiritball_old = sd->spiritball;
@@ -8132,5 +8767,5 @@
 	if (!sc->count)
 		sc = NULL;
-	
+
 	if(pc_is90overweight(sd)) {
 		clif_skill_fail(sd,skill,9,0);
@@ -8156,5 +8791,5 @@
 	if (sd->menuskill_id == AM_PHARMACY &&
 		(skill == AM_PHARMACY || skill == AC_MAKINGARROW || skill == BS_REPAIRWEAPON ||
-		skill == AM_TWILIGHT1 || skill == AM_TWILIGHT2  || skill == AM_TWILIGHT3 
+		skill == AM_TWILIGHT1 || skill == AM_TWILIGHT2  || skill == AM_TWILIGHT3
 	)) {
 		sd->skillitem = sd->skillitemlv = 0;
@@ -8314,5 +8949,5 @@
 		}
 		break;
-	case MO_FINGEROFFENSIVE:				//æEŒŸ
+	case MO_FINGEROFFENSIVE:				//æåŒŸ
 	case GS_FLING:
 		if (sd->spiritball > 0 && sd->spiritball < spiritball) {
@@ -8380,5 +9015,5 @@
 		}
 		break;
-		
+
 	case TK_READYCOUNTER:
 	case TK_READYDOWN:
@@ -8408,8 +9043,8 @@
 				status_change_end(&sd->bl, SC_COMBO, -1);
 				sd->skillid_old = sd->skilllv_old = 0;
-				return 0; //Can't repeat previous combo skill.				
+				return 0; //Can't repeat previous combo skill.
 			}
 			break;
-		} else 
+		} else
 		if(sc->data[SC_COMBO]->val1 == skill)
 			break; //Combo ready.
@@ -8470,4 +9105,54 @@
 		}
 		break;
+<<<<<<< .mine
+	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;
+
+=======
 		//Custom Jobs (blackmagic)	
 	case AD_FAMILIAR: //Adept Familiar [Flavio]
@@ -8519,4 +9204,5 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
 	case WZ_FIREPILLAR: // celest
 		if (lv <= 5)	// no gems required at level 1-5
@@ -8527,5 +9213,5 @@
 		if(!(sc && sc->data[SC_SMA]))
 			return 0;
-		break;	
+		break;
 
 	case HT_POWER:
@@ -8579,5 +9265,5 @@
 					clif_skill_fail(sd,skill,0,0);
 					return 0;
-				}	
+				}
 			}
 		}
@@ -8631,5 +9317,5 @@
 		//Only invoke on skill begin cast (instant cast skill). [Kevin]
 		if(sp>0 && !type)
-		{ 
+		{
 			if (status->sp < (unsigned int)sp)
 				clif_skill_fail(sd,skill,1,0);
@@ -8657,5 +9343,5 @@
 		}
 		break;
-	
+
 	case NJ_ISSEN:
 		if (status->hp < 2) {
@@ -8669,5 +9355,5 @@
 	  	}
 		break;
-	
+
 	case NJ_ZENYNAGE:
 		if(sd->status.zeny < zeny) {
@@ -8699,10 +9385,10 @@
 
 	if(!(type&2)){
-		if( hp>0 && status->hp <= (unsigned int)hp) {				/* HPãã§ãE¯ */
-			clif_skill_fail(sd,skill,2,0);		/* HPäžè¶³Eå€±æéç¥ */
+		if( hp>0 && status->hp <= (unsigned int)hp) {				/* HPãã§ãã¯ */
+			clif_skill_fail(sd,skill,2,0);		/* HPäžè¶³ïŒå€±æéç¥ */
 			return 0;
 		}
-		if( sp>0 && status->sp < (unsigned int)sp) {				/* SPãã§ãE¯ */
-			clif_skill_fail(sd,skill,1,0);		/* SPäžè¶³Eå€±æéç¥ */
+		if( sp>0 && status->sp < (unsigned int)sp) {				/* SPãã§ãã¯ */
+			clif_skill_fail(sd,skill,1,0);		/* SPäžè¶³ïŒå€±æéç¥ */
 			return 0;
 		}
@@ -8711,5 +9397,5 @@
 			return 0;
 		}
-	
+
 		if(weapon && !pc_check_weapontype(sd,weapon)) {
 			clif_skill_fail(sd,skill,6,0);
@@ -8807,5 +9493,5 @@
 		if (sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == skill)
 			sd->ud.canmove_tick = gettick(); //When using a combo, cancel the can't move delay to enable the skill. [Skotlex]
-			
+
 		if (!unit_can_move(&sd->bl)) {
 			clif_skill_fail(sd,skill,0,0);
@@ -8898,10 +9584,10 @@
 int skill_castfix (struct block_list *bl, int skill_id, int skill_lv)
 {
-	int time = skill_get_cast(skill_id, skill_lv);	
+	int time = skill_get_cast(skill_id, skill_lv);
 	struct map_session_data *sd;
 
 	nullpo_retr(0, bl);
 	sd = BL_CAST(BL_PC, bl);
-	
+
 	// calculate base cast time (reduced by dex)
 	if (!(skill_get_castnodex(skill_id, skill_lv)&1)) {
@@ -8951,4 +9637,14 @@
 			status_change_end(bl, SC_SUFFRAGIUM, -1);
 		}
+<<<<<<< .mine
+	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);
+	}
+
+=======
 		//Custom Jobs (blackmagic)
 		
@@ -8962,4 +9658,5 @@
 		
 		//Custom Job End
+>>>>>>> .r18
 		if (sc->data[SC_MEMORIZE]) {
 			time>>=1;
@@ -8980,5 +9677,5 @@
 	int delaynodex = skill_get_delaynodex(skill_id, skill_lv);
 	int time = skill_get_delay(skill_id, skill_lv);
-	
+
 	nullpo_retr(0, bl);
 
@@ -8987,5 +9684,5 @@
 
 	if (bl->type&battle_config.no_skill_delay)
-		return battle_config.min_skill_delay_limit; 
+		return battle_config.min_skill_delay_limit;
 
 	if (time < 0)
@@ -9004,5 +9701,5 @@
 	default:
 		if (battle_config.delay_dependon_dex && !(delaynodex&1))
-		{	// if skill delay is allowed to be reduced by dex 
+		{	// if skill delay is allowed to be reduced by dex
 			int scale = battle_config.castrate_dex_scale - status_get_dex(bl);
 			if (scale > 0)
@@ -9012,5 +9709,5 @@
 		}
 		if (battle_config.delay_dependon_agi && !(delaynodex&1))
-		{	// if skill delay is allowed to be reduced by agi 
+		{	// if skill delay is allowed to be reduced by agi
 			int scale = battle_config.castrate_dex_scale - status_get_agi(bl);
 			if (scale > 0)
@@ -9056,5 +9753,5 @@
 
 /*=========================================
- * 
+ *
  *-----------------------------------------*/
 void skill_brandishspear_first (struct square *tc, int dir, int x, int y)
@@ -9580,5 +10277,5 @@
 	return count;
 }
-	
+
 /*==========================================
  * Returns the first element field found [Skotlex]
@@ -9734,5 +10431,5 @@
 
 /*==========================================
- * 
+ *
  *------------------------------------------*/
 int skill_chastle_mob_changetarget(struct block_list *bl,va_list ap)
@@ -9767,5 +10464,5 @@
 	unit = (struct skill_unit *)src;
 	tick = va_arg(ap,int);
-	
+
 	nullpo_retr(0, sg = unit->group);
 	nullpo_retr(0, ss = map_id2bl(sg->src_id));
@@ -9777,5 +10474,5 @@
 		case UNT_SHOCKWAVE:
 		case UNT_SANDMAN:
-		case UNT_FLASHER:        
+		case UNT_FLASHER:
 			skill_additional_effect(ss,bl,sg->skill_id,sg->skill_lv,BF_MISC,tick);
 			break;
@@ -9823,5 +10520,5 @@
 		if (type != scs[i] && sc->data[scs[i]])
 			status_change_end(bl, scs[i], -1);
-		
+
 	return 0;
 }
@@ -9841,5 +10538,5 @@
 			wall = false;
 	}
-		
+
 	if( sce )
 	{
@@ -9884,8 +10581,8 @@
 	if(!sc->count || !(sce=sc->data[SC_DANCING]))
 		return;
-	
+
 	group = (struct skill_unit_group *)sce->val2;
 	sce->val2 = 0;
-	
+
 	if (sce->val4)
 	{
@@ -10021,5 +10718,5 @@
 	nullpo_retr(NULL, src);
 	nullpo_retr(NULL, ud);
-	
+
 	// find a free spot to store the new unit group
 	ARR_FIND( 0, MAX_SKILLUNITGROUP, i, ud->skillunit[i] == NULL );
@@ -10081,8 +10778,8 @@
 
 	if (!src) src=map_id2bl(group->src_id);
-	ud = unit_bl2ud(src);	
+	ud = unit_bl2ud(src);
 	if(!src || !ud) {
 		ShowError("skill_delunitgroup: Group's source not found! (src_id: %d skill_id: %d)\n", group->src_id, group->skill_id);
-		return 0;	
+		return 0;
 	}
 	if (skill_get_unit_flag(group->skill_id)&(UF_DANCE|UF_SONG|UF_ENSEMBLE))
@@ -10180,5 +10877,5 @@
 	if (group->interval==-1)
 		return NULL;
-	
+
 	ud = unit_bl2ud(bl);
 	if (!ud) return NULL;
@@ -10422,7 +11119,7 @@
 	int skill_id;
 	int i;
-	
+
 	nullpo_retr(0, group);
-	
+
 	if( !unit->alive || target->prev == NULL )
 		return 0;
@@ -10503,5 +11200,5 @@
 		//cells do not get deleted within them. [Skotlex]
 		if( dissonance ) skill_dance_switch(unit, 1);
-			
+
 		if( flag&4 )
 			skill_unit_onleft(skill_id,target,tick);
@@ -10530,5 +11227,5 @@
 		memset(skill_unit_temp, 0, sizeof(skill_unit_temp));
 	}
-		
+
 	map_foreachincell(skill_unit_move_sub,bl->m,bl->x,bl->y,BL_SKILL,bl,tick,flag);
 
@@ -10708,8 +11405,8 @@
 	if (qty < 1)
 		qty = 1;
-	
+
 	if (!skill_id) //A skill can be specified for some override cases.
 		skill_id = skill_produce_db[idx].req_skill;
-	
+
 	slot[0]=slot1;
 	slot[1]=slot2;
@@ -10859,5 +11556,5 @@
 	if(make_per < 1) make_per = 1;
 
-	
+
 	if(rand()%10000 < make_per || qty > 1){ //Success, or crafting multiple items.
 		struct item tmp_item;
@@ -10930,5 +11627,5 @@
 						skill_id != AM_TWILIGHT2 &&
 						skill_id != AM_TWILIGHT3)
-						continue;						
+						continue;
 					//Add fame as needed.
 					switch(++sd->potion_success_counter) {
@@ -10983,5 +11680,5 @@
 		}
 	}
-	//Failure	
+	//Failure
 //	if(log_config.produce)
 //		log_produce(sd,nameid,slot1,slot2,slot3,0);
@@ -11069,5 +11766,5 @@
 		return 0;
 	if (sd) sd->blockskill[data] = 0;
-	
+
 	return 1;
 }
@@ -11096,5 +11793,5 @@
 		return 0;
 	if (hd) hd->blockskill[data] = 0;
-	
+
 	return 1;
 }
@@ -11103,5 +11800,5 @@
 {
 	nullpo_retr (-1, hd);
-	
+
 	skillid = skill_get_index(skillid);
 	if (skillid == 0)
@@ -11163,8 +11860,8 @@
 			if ((val[j]-val[j-step]) != diff)
 				break;
-	
+
 		if (j>=step) //No match, try next step.
 			continue;
-		
+
 		for(; i < MAX_SKILL_LEVEL; i++)
 		{	//Apply linear increase
@@ -11363,6 +12060,6 @@
 				memcpy(skill_unit_layout[pos].dy,dy,sizeof(dy));
 			} else {
-				int dx[] = { 1, 1 ,0, 0,-1}; 
-				int dy[] = { 1, 0, 0,-1,-1}; 
+				int dx[] = { 1, 1 ,0, 0,-1};
+				int dy[] = { 1, 0, 0,-1,-1};
 				memcpy(skill_unit_layout[pos].dx,dx,sizeof(dx));
 				memcpy(skill_unit_layout[pos].dy,dy,sizeof(dy));
@@ -11394,6 +12091,6 @@
 				memcpy(skill_unit_layout[pos].dy,dy,sizeof(dy));
 			} else {
-				int dx[] = { 2, 1 ,0,-1,-2}; 
-				int dy[] = { 2, 1, 0,-1,-2}; 
+				int dx[] = { 2, 1 ,0,-1,-2};
+				int dy[] = { 2, 1, 0,-1,-2};
 				memcpy(skill_unit_layout[pos].dx,dx,sizeof(dx));
 				memcpy(skill_unit_layout[pos].dy,dy,sizeof(dy));
@@ -11424,5 +12121,5 @@
  * skill_nocast_db.txt
  * skill_unit_db.txt
- * produce_db.txt 
+ * produce_db.txt
  * create_arrow_db.txt
  * abra_db.txt
@@ -11493,5 +12190,5 @@
 	skill_split_atoi(split[5],skill_db[i].sp_rate);
 	skill_split_atoi(split[6],skill_db[i].zeny);
-	
+
 	//FIXME: document this
 	p = split[7];
@@ -11511,5 +12208,5 @@
 		p++;
 	}
-	
+
 	//FIXME: document this
 	p = split[8];
@@ -11545,5 +12242,5 @@
 	else if( strcmpi(split[10],"water")==0 ) skill_db[i].state = ST_WATER;
 	else skill_db[i].state = ST_NONE;
-	
+
 	skill_split_atoi(split[11],skill_db[i].spiritball);
 	for( j = 0; j < 10; j++ ) {
@@ -11561,5 +12258,5 @@
 	if( !i ) // invalid skill id
 		return false;
-	
+
 	skill_split_atoi(split[1],skill_db[i].cast);
 	skill_split_atoi(split[2],skill_db[i].delay);
@@ -11577,5 +12274,5 @@
 	if( !i ) // invalid skill id
 		return false;
-	
+
 	skill_split_atoi(split[1],skill_db[i].castnodex);
 	if( split[2] ) // optional column
@@ -11603,5 +12300,5 @@
 	if( !i ) // invalid skill id
 		return false;
-	
+
 	skill_db[i].unit_id[0] = strtol(split[1],NULL,16);
 	skill_db[i].unit_id[1] = strtol(split[2],NULL,16);
@@ -11649,5 +12346,5 @@
 	skill_produce_db[current].req_skill = atoi(split[2]);
 	skill_produce_db[current].req_skill_lv = atoi(split[3]);
-	
+
 	for( x = 4, y = 0; x+1 < columns && split[x] && split[x+1] && y < MAX_PRODUCE_RESOURCE; x += 2, y++ )
 	{
@@ -11668,5 +12365,5 @@
 
 	skill_arrow_db[current].nameid = i;
-	
+
 	for( x = 1, y = 0; x+1 < columns && split[x] && split[x+1] && y < MAX_ARROW_RESOURCE; x += 2, y++ )
 	{
@@ -11707,5 +12404,5 @@
 	memset(skill_arrow_db,0,sizeof(skill_arrow_db));
 	memset(skill_abra_db,0,sizeof(skill_abra_db));
-	
+
 	// load skill databases
 	safestrncpy(skill_db[0].name, "UNKNOWN_SKILL", sizeof(skill_db[0].name));
@@ -11735,8 +12432,8 @@
 	skilldb_name2id = strdb_alloc(DB_OPT_DUP_KEY, 0);
 	skill_readdb();
-	
+
 	skill_unit_ers = ers_new(sizeof(struct skill_unit_group));
 	skill_timer_ers  = ers_new(sizeof(struct skill_timerskill));
-	
+
 	add_timer_func_list(skill_unit_timer,"skill_unit_timer");
 	add_timer_func_list(skill_castend_id,"skill_castend_id");
@@ -11744,5 +12441,5 @@
 	add_timer_func_list(skill_timerskill,"skill_timerskill");
 	add_timer_func_list(skill_blockpc_end, "skill_blockpc_end");
-	
+
 	add_timer_interval(gettick()+SKILLUNITTIMER_INTERVAL,skill_unit_timer,0,0,SKILLUNITTIMER_INTERVAL);
 
@@ -11757,4 +12454,44 @@
 	return 0;
 }
+<<<<<<< .mine
+
+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;
+}
+=======
 //Custom Jobs (blackmagic)
 int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount)// ITEM GIVER [Brain]
@@ -11795,3 +12532,3 @@
 	return 0;
 }
-//Custom Job End
+//Custom Job End>>>>>>> .r18
Index: /src/map/unit.c
===================================================================
--- /src/map/unit.c (revision 13)
+++ /src/map/unit.c (revision 19)
@@ -379,4 +379,8 @@
 		unit_escape(bl, tbl, 15);
 	//Custom Job End
+
+	if (sc && sc->data[SC_FEAR]) //Flee from my target [Brainstorm]
+	unit_escape(bl, tbl, 15);
+
 
 	if(ud->walktimer != -1) {
Index: /src/map/battle.h
===================================================================
--- /src/map/battle.h (revision 5)
+++ /src/map/battle.h (revision 19)
@@ -88,7 +88,5 @@
 
 int battle_check_undead(int race,int element);
-//Begin Custom Job (blackmagic)
 int battle_check_living(int race,int element);	//Living Creature Check [Brain]
-//End Custom Job (blackmagic)
 int battle_check_target(struct block_list *src, struct block_list *target,int flag);
 bool battle_check_range(struct block_list *src,struct block_list *bl,int range);
@@ -455,9 +453,7 @@
 	int auction_feeperhour;
 	int auction_maximumprice;
-	//Begin custom Job (blackmagic)	
 	//Vanaheim battle settings [Brainstorm]
 	int necro_retaliation; //Battle flag to force monsters to attack adept/necro/warlock summons [Brain]
 	int disp_summon_stats; //Battle Flag to show summoned monster stats [Brain]
-	//end custom job
 	int gm_viewequip_min_lv;
 } battle_config;
Index: /src/map/status.c
===================================================================
--- /src/map/status.c (revision 13)
+++ /src/map/status.c (revision 19)
@@ -130,7 +130,5 @@
 	set_sc( NPC_SILENCEATTACK , SC_SILENCE   , SI_BLANK    , SCB_NONE );
 	set_sc( DC_WINKCHARM      , SC_CONFUSION , SI_BLANK    , SCB_NONE );
-	//Custom Jobs (blackmagic)
-	set_sc( AD_PWFEAR         , SC_FEAR      , SI_HALLUCINATION , SCB_SPEED ); //Fear Status by [Brainstorm]
-	//Custom Job End
+	set_sc( AD_PWFEAR	 , SC_FEAR	  , SI_HALLUCINATION , SCB_SPEED ); //Fear Status by [Brainstorm]
 	set_sc( NPC_BLINDATTACK   , SC_BLIND     , SI_BLANK    , SCB_HIT|SCB_FLEE );
 	set_sc( LK_HEADCRUSH      , SC_BLEEDING  , SI_BLEEDING , SCB_REGEN );
@@ -410,4 +408,6 @@
 	set_sc( GD_BATTLEORDER       , SC_BATTLEORDERS    , SI_BLANK           , SCB_STR|SCB_INT|SCB_DEX );
 	set_sc( GD_REGENERATION      , SC_REGENERATION    , SI_BLANK           , SCB_REGEN );
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)	
 	// Custom Jobs Skills [Brain]
@@ -438,4 +438,33 @@
 	set_sc( ALL_ATFIELD          , SC_ATFIELD         , SI_UTSUSEMI        ,SCB_NONE);
 	//Custom Job End
+>>>>>>> .r18
+
+	// Custom Jobs Skills [Brain]
+	add_sc( AD_PWBLIND	   , SC_BLIND);
+	add_sc( AD_PWFEAR		, SC_FEAR);
+	set_sc( AD_LUST		  , SC_LUST		, SI_JOINTBEAT	   , SCB_ASPD|SCB_BATK|SCB_WATK|SCB_REGEN);
+
+	set_sc( NC_DECREPIFY	 , SC_DECREPIFY	   , SI_BLEEDING	, SCB_SPEED|SCB_BATK|SCB_WATK|SCB_DEF2|SCB_MDEF2);
+	set_sc( NC_DARKMOON	  , SC_DARKMOON	, SI_MOON_COMFORT	, SCB_FLEE|SCB_HIT);
+	add_sc( NC_DARKMOON	  , SC_BLIND);
+	set_sc( NC_REQUIEM	   , SC_REQUIEM	 , SI_KAIZEL	  , SCB_BATK|SCB_WATK);
+	add_sc( NC_GHOULTOUCH	, SC_POISON);
+	set_sc( NC_PWSUFFER	  , SC_SUFFER	  , SI_BLANK	   , SCB_DEF|SCB_DEF2);
+	set_sc( NC_DEATHPACT	 , SC_DEATHPACT	   , SI_BIOMOBTRICKDEAD , SCB_DEF_ELE|SCB_REGEN);
+	
+	set_sc( WL_SEARING	   , SC_SEARING	 , SI_BLANK	   , SCB_NONE);
+	set_sc( WL_IMMOLATE	  , SC_IMMOLATE	, SI_BLANK	   , SCB_NONE);
+	add_sc( WL_SHADOWBURN	, SC_STUN);
+	set_sc( WL_PWAGONY	   , SC_AGONY	   , SI_BLANK	   , SCB_MDEF|SCB_MDEF2);
+	set_sc( WL_CURSETONGUES	  , SC_CURSETONGUES	, SI_SLOWCAST	, SCB_NONE);
+	set_sc( WL_CURSEDOOM	 , SC_DOOM		, SI_BLANK	   , SCB_NONE);
+	set_sc( WL_CURSEWEAKNESS	 , SC_CURSEWEAKNESS   , SI_STRIPWEAPON	 , SCB_BATK|SCB_WATK);
+	set_sc( WL_CURSEEXHAUST	  , SC_CURSEEXHAUST	, SI_CRITICALWOUND   , SCB_DEF|SCB_MDEF);
+	add_sc( WL_HOWLOFTERROR	  , SC_FEAR);
+	set_sc( WL_HOWLOFPAIN	, SC_PROVOKE	 , SI_PROVOKE	 , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK);
+	set_sc( WL_OVERWHELMING	  , SC_OVERWHELMING	, SI_ENERGYCOAT	  , SCB_DEF|SCB_MDEF|SCB_MATK|SCB_REGEN|SCB_DEF_ELE);
+	
+	set_sc( ALL_ATFIELD	  , SC_ATFIELD	 , SI_UTSUSEMI	,SCB_NONE);
+
 
 	// Storing the target job rather than simply SC_SPIRIT simplifies code later on.
@@ -677,9 +706,11 @@
 			status_change_end(target,SC_WINKCHARM,-1);
 			status_change_end(target,SC_CONFUSION,-1);
+			//error... definately...
+			if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm]
+			status_change_end(target, SC_FEAR, -1);
 			status_change_end(target,SC_TRICKDEAD,-1);
 			status_change_end(target,SC_HIDING,-1);
 			status_change_end(target,SC_CLOAKING,-1);
 			status_change_end(target,SC_CHASEWALK,-1);
-			status_change_end(target,SC_FEAR, -1);//Custom Jobs (blackmagic)
 			if ((sce=sc->data[SC_ENDURE]) && !sce->val4) {
 				//Endure count is only reduced by non-players on non-gvg maps.
@@ -1373,8 +1404,14 @@
 		flag|=16;
 
+<<<<<<< .mine
+	if (md->master_id && md->special_state.ai)
+	flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm]
+=======
 	//Custom Jobs (blackmagic)		
 	if (md->master_id && md->special_state.ai)
 		flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm]
 	//Custom Job End
+>>>>>>> .r18
+
 
 	if (!flag)
@@ -1494,4 +1531,65 @@
 		status->aspd_rate -= 100*md->guardian_data->guardup_lv;
 	}
+<<<<<<< .mine
+	//Summon Bonus from Skills [Brainstorm]
+	if(flag&32)
+	{
+	mbl = map_id2bl(md->master_id);
+	if(mbl)
+	{
+		struct unit_data *ud = unit_bl2ud(mbl);
+		//Remove special AI when this is used by regular mobs.
+		if (mbl->type == BL_MOB && !((TBL_MOB*)mbl)->special_state.ai)
+		md->special_state.ai = 0;
+		
+		int master_lv = status_get_lv(mbl);
+		int skill_mastery = pc_checkskill((TBL_PC*)mbl,AD_SUMMONS);
+		int undead_mastery = pc_checkskill((TBL_PC*)mbl,NC_UNDEAD);
+	
+		if (ud->skillid == AD_FAMILIAR)
+		{
+		status->max_hp += (skill_mastery*10) + (master_lv*10);
+		status->str += (master_lv) + (skill_mastery);
+		status->dex += (master_lv) + (skill_mastery);
+		status->agi += (master_lv) + (skill_mastery);
+		status->int_ += (master_lv) + (skill_mastery);
+		status->vit += (master_lv) + (skill_mastery);
+		status->luk += (master_lv) + (skill_mastery);
+		status->rhw.atk += (skill_mastery*3)
+			+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
+		status->rhw.atk2 += (skill_mastery*3)
+			+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
+		status->speed -= skill_mastery;
+		status->def += (master_lv)/10 + (skill_mastery);
+		status->mdef += (master_lv)/10 + (skill_mastery);
+		//These are not automatically recalculated
+		status->hit += (master_lv*2) + (skill_mastery);
+		status->flee += (master_lv*2) + (skill_mastery);
+		status->def2 += (master_lv) + (skill_mastery);
+		status->mdef2 += (master_lv) + (skill_mastery);
+		}	
+		else if(status->race==RC_UNDEAD)
+		{
+		status->max_hp += (undead_mastery*10) + (master_lv*2);
+		status->str += (undead_mastery*3) + (skill_mastery);
+		status->dex += (undead_mastery*3) + (skill_mastery);
+		status->agi += (undead_mastery*3) + (skill_mastery);
+		status->int_ += (undead_mastery*3) + (skill_mastery);
+		status->vit += (undead_mastery*3) + (skill_mastery);
+		status->luk += (undead_mastery*3) + (skill_mastery);
+		status->rhw.atk += (undead_mastery*3) + (skill_mastery*3)
+			+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
+		status->rhw.atk2 += (undead_mastery*3) + (skill_mastery*3)
+			+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
+		status->speed -= undead_mastery;
+		status->def += undead_mastery;
+		status->mdef += undead_mastery;
+		//These are not automatically recalculated
+		status->hit += (undead_mastery*3) + (skill_mastery);
+		status->flee += (undead_mastery*3) + (skill_mastery);
+		status->def2 += (undead_mastery*3) + (skill_mastery);
+		status->mdef2 += (undead_mastery*3) + (skill_mastery);
+		}
+=======
 
 	//Custom Jobs (blackmagic)
@@ -1557,6 +1655,9 @@
 		}
 		else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name);
-	}
-	//Custom Job End
+>>>>>>> .r18
+	}
+	else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name);
+	}
+
 
 	//Initial battle status
@@ -1807,9 +1908,13 @@
 	status->aspd_rate = 1000;
 	status->ele_lv = 1;
+<<<<<<< .mine
+	status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain]
+	if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL
+=======
 	//Custom Jobs (blackmagic)
 	status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain]
 	if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL
 	//Custom Job End
-
+>>>>>>> .r18
 
 	//zero up structures...
@@ -2101,5 +2206,9 @@
 	if((skill=pc_checkskill(sd,AC_OWL))>0)
 		status->dex += skill;
-
+	if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0) //Warlock Demonology [Brain]
+	status->str += skill/2; //+1 str per 2 skill points
+
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	
@@ -2107,4 +2216,5 @@
 		status->str += skill/2; //+1 str per 2 skill points
 	//Custom Job End
+>>>>>>> .r18
 
 	// Bonuses from cards and equipment as well as base stat, remember to avoid overflows.
@@ -2144,9 +2254,14 @@
 	if((skill=pc_checkskill(sd,CR_TRUST))>0)
 		status->max_hp += skill*200;
-
+	if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]
+	status->max_hp += status->max_hp * (skill*3)/100;
+
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]
 		status->max_hp += status->max_hp * (skill*3)/100;
 	//Custom Job End
+>>>>>>> .r18
 
 	// Apply relative modifiers from equipment
@@ -2178,9 +2293,14 @@
 	if((skill=pc_checkskill(sd,HW_SOULDRAIN))>0)
 		status->max_sp += status->max_sp * 2*skill/100;
-
+	if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]
+	status->max_sp += sd->status.max_sp * (skill*3)/100;
+
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]
 		status->max_sp += sd->status.max_sp * (skill*3)/100;
 	//Custom Job End
+>>>>>>> .r18
 
 	// Apply relative modifiers from equipment
@@ -2276,5 +2396,9 @@
 		}
 	}
-
+	if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]
+	status->hit += skill*2;
+
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]
@@ -2282,4 +2406,5 @@
 	//Custom Job End
 
+>>>>>>> .r18
 // ----- FLEE CALCULATION -----
 
@@ -2289,5 +2414,9 @@
 	if((skill=pc_checkskill(sd,MO_DODGE))>0)
 		status->flee += (skill*3)>>1;
-
+	if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]
+	status->flee += skill*2;
+
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]
@@ -2295,4 +2424,5 @@
 	//Custom Job End
 
+>>>>>>> .r18
 // ----- EQUIPMENT-DEF CALCULATION -----
 
@@ -2304,4 +2434,7 @@
 		status->def = cap_value(i, CHAR_MIN, CHAR_MAX);
 	}
+<<<<<<< .mine
+
+=======
 	//Custom Jobs (blackmagic)
 	// Absolute modifiers from passive skills
@@ -2309,4 +2442,5 @@
 		status->mdef += 1*skill;
 	//Custom Job End
+>>>>>>> .r18
 	if (!battle_config.weapon_defense_type && status->def > battle_config.max_def)
 	{
@@ -2324,4 +2458,8 @@
 		status->mdef = cap_value(i, CHAR_MIN, CHAR_MAX);
 	}
+	// Absolute modifiers from passive skills
+	if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain]
+	status->mdef += 1*skill;
+
 
 	if (!battle_config.magic_defense_type && status->mdef > battle_config.max_def)
@@ -2431,4 +2569,13 @@
 	}
 
+<<<<<<< .mine
+	if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain]
+	sd->subele[ELE_DARK] += skill*5;
+	if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0 ){ //Warlock Demonology [Brain]
+	skill = skill*5;
+	sd->right_weapon.addrace[RC_DEMON]+=skill;
+	sd->magic_addrace[RC_DEMON]+=skill;
+	sd->subrace[RC_DEMON]+=skill;
+=======
 
 	//Custom Jobs (blackmagic)
@@ -2440,9 +2587,17 @@
 		sd->magic_addrace[RC_DEMON]+=skill;
 		sd->subrace[RC_DEMON]+=skill;
-	}
+>>>>>>> .r18
+	}
+<<<<<<< .mine
+	if((pc_checkskill(sd,NC_PHYLACTERY))>0){ // Necro Phylactery [Brain]
+	sd->subele[ELE_NEUTRAL] += 10;	//And increases neutral resistance by 10%
+	}
+=======
 	if((pc_checkskill(sd,NC_PHYLACTERY))>0){ // Necro Phylactery [Brain]
 		sd->subele[ELE_NEUTRAL] += 10;	//And increases neutral resistance by 10%
 	}
 	//Custom Job End
+>>>>>>> .r18
+
 
 	if(sc->count){
@@ -2468,5 +2623,9 @@
 			sd->subrace[RC_DEMON] += sc->data[SC_PROVIDENCE]->val2;
 		}
-
+		if(sd->sc.data[SC_DEATHPACT]) //Necro Death Pact [Brain]
+		sd->subele[ELE_NEUTRAL] += sd->sc.data[SC_DEATHPACT]->val2;
+
+<<<<<<< .mine
+=======
 		//Custom Jobs (blackmagic)
 		if(sd->sc.data[SC_DEATHPACT]) //Necro Death Pact [Brain]
@@ -2474,4 +2633,5 @@
 		//Custom Job End
 
+>>>>>>> .r18
 		if(sc->data[SC_ARMOR_ELEMENT])
 		{	//This status change should grant card-type elemental resist.
@@ -2629,4 +2789,18 @@
 	status->rhw.atk2 = status->str + hom->level;
 
+	/*Passive bonus from Wolf Mastery (will only take effect when first created or level up) [Brainstorm]
+	if((skill=pc_checkskill(hd->master,QHT_WOLFMASTERY)) > 0)
+	{
+	status->rhw.atk +=	skill * 3;
+	status->rhw.atk2 +=	skill * 3;
+	status->str +=	skill;
+	status->agi +=	skill;
+	status->vit +=	skill;
+	status->dex +=	skill;
+	status->int_ +=	skill;
+	status->luk +=	skill;
+	}*/
+
+
 	status->aspd_rate = 1000;
 
@@ -2795,8 +2969,12 @@
 		|| sc->data[SC_TRICKDEAD]
 		|| sc->data[SC_BLEEDING]
+<<<<<<< .mine
+		|| sc->data[SC_LUST]	// Adept Blood Lust, stops hp regen [Brain]
+=======
 		//Custom Jobs (blackmagic)
 		|| sc->data[SC_LUST]		// Adept Blood Lust, stops hp regen [Brain]
+>>>>>>> .r18
 		|| sc->data[SC_DEATHPACT]	// Necro Death Pact
-		//Custom Job End
+
 	)	//No regen
 		regen->flag = 0;
@@ -2807,7 +2985,6 @@
 		|| (sc->data[SC_EXPLOSIONSPIRITS]
 			&& (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK))
-//Custom Jobs (blackmagic)
 		|| sc->data[SC_OVERWHELMING]	// Warlock Overwhelming Evil, stops sp regen [Brain]
-//Custom Job End
+
 	)	//No natural SP regen
 		regen->flag &=~RGN_SP;
@@ -3578,4 +3755,14 @@
 	if(sc->data[SC_MADNESSCANCEL])
 		batk += 100;
+<<<<<<< .mine
+	if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
+	batk += batk * sc->data[SC_LUST]->val2/100;
+	if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain]
+	batk -= batk * sc->data[SC_CURSEWEAKNESS]->val2/100;
+	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
+	if(sc->data[SC_DECREPIFY]->val2>=2)
+		batk -= batk * 25/100;
+
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
@@ -3588,4 +3775,5 @@
 	
 	//Custom Job End
+>>>>>>> .r18
 	return (unsigned short)cap_value(batk,0,USHRT_MAX);
 }
@@ -3630,4 +3818,19 @@
 	if(sc->data[SC_STRIPWEAPON])
 		watk -= watk * sc->data[SC_STRIPWEAPON]->val2/100;
+<<<<<<< .mine
+	if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
+	watk += watk * sc->data[SC_LUST]->val2/100;
+	if(sc->data[SC_REQUIEM]){	//Necro Requiem [Brain]
+	if(sc->data[SC_REQUIEM]->val2)
+		watk += sc->data[SC_REQUIEM]->val2*10;
+	if(sc->data[SC_REQUIEM]->val3)
+		watk -= sc->data[SC_REQUIEM]->val3*10;
+	}
+	if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain]
+	watk -= watk * sc->data[SC_CURSEWEAKNESS]->val2/100;
+	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
+	if(sc->data[SC_DECREPIFY]->val2>=2)
+		watk -= watk * 25/100;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
@@ -3645,4 +3848,6 @@
 			watk -= watk * 25/100;
 	//Custom Job End
+>>>>>>> .r18
+
 
 	return (unsigned short)cap_value(watk,0,USHRT_MAX);
@@ -3664,8 +3869,14 @@
 	if(sc->data[SC_INCMATKRATE])
 		matk += matk * sc->data[SC_INCMATKRATE]->val1/100;
+<<<<<<< .mine
+	if(sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
+	matk += matk * sc->data[SC_OVERWHELMING]->val2/100;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
 		matk += matk * sc->data[SC_OVERWHELMING]->val2/100;
 	//Custom Job End
+>>>>>>> .r18
+
 
 	return (unsigned short)cap_value(matk,0,USHRT_MAX);
@@ -3715,4 +3926,11 @@
 	if(sc->data[SC_INCREASING])
 		hit += 20; // RockmanEXE; changed based on updated [Reddozen]
+<<<<<<< .mine
+	if(sc->data[SC_DARKMOON]){	//Necro Dark Moon [Brain]
+	if(sc->data[SC_DARKMOON]->val2)
+		hit += sc->data[SC_DARKMOON]->val2;
+	if(sc->data[SC_DARKMOON]->val3)
+		hit -= sc->data[SC_DARKMOON]->val3;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_DARKMOON]){	//Necro Dark Moon [Brain]
@@ -3721,6 +3939,7 @@
 		if(sc->data[SC_DARKMOON]->val3)
 			hit -= sc->data[SC_DARKMOON]->val3;
-	}
-	//Custom Job End
+>>>>>>> .r18
+	}
+
 	
 	return (short)cap_value(hit,1,SHRT_MAX);
@@ -3763,4 +3982,11 @@
 	if(sc->data[SC_SPEED])
 		flee += 10 + sc->data[SC_SPEED]->val1 * 10 ;
+<<<<<<< .mine
+	if(sc->data[SC_DARKMOON]){	//Necro Dark Moon [Brain]
+	if(sc->data[SC_DARKMOON]->val2)
+		flee += sc->data[SC_DARKMOON]->val2;
+	if(sc->data[SC_DARKMOON]->val3)
+		flee -= sc->data[SC_DARKMOON]->val3;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_DARKMOON]){	//Necro Dark Moon [Brain]
@@ -3769,6 +3995,7 @@
 		if(sc->data[SC_DARKMOON]->val3)
 			flee -= sc->data[SC_DARKMOON]->val3;
-	}
-	//Custom Job End
+>>>>>>> .r18
+	}
+
 
 	return (short)cap_value(flee,1,SHRT_MAX);
@@ -3829,4 +4056,12 @@
 	if (sc->data[SC_FLING])
 		def -= def * (sc->data[SC_FLING]->val2)/100;
+<<<<<<< .mine
+	if(sc->data[SC_SUFFER])	// Necro Power Word: Suffer [Brain]
+	def <<=1; // -25% def
+	if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain]
+	def -= sc->data[SC_CURSEEXHAUST]->val2;
+	if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
+	 def += sc->data[SC_OVERWHELMING]->val1;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_SUFFER])	// Necro Power Word: Suffer [Brain]
@@ -3837,4 +4072,6 @@
  		def += sc->data[SC_OVERWHELMING]->val1;
 	//Custom Job End
+>>>>>>> .r18
+
 
 	return (signed char)cap_value(def,CHAR_MIN,CHAR_MAX);
@@ -3871,5 +4108,12 @@
 	if(sc->data[SC_FLING])
 		def2 -= def2 * (sc->data[SC_FLING]->val3)/100;
-
+	if(sc->data[SC_SUFFER])	// Necro Power Word: Suffer [Brain]
+	def2 -= def2 * 25/100; // -25% def
+	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
+	if(sc->data[SC_DECREPIFY]->val2>=4)
+		def2 -= def2 * 25/100;
+
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_SUFFER])	// Necro Power Word: Suffer [Brain]
@@ -3879,4 +4123,5 @@
 			def2 -= def2 * 25/100;
 	//Custom Job End
+>>>>>>> .r18
 
 	return (short)cap_value(def2,1,SHRT_MAX);
@@ -3906,4 +4151,12 @@
 	if(sc->data[SC_CONCENTRATION])
 		mdef += 1; //Skill info says it adds a fixed 1 Mdef point.
+<<<<<<< .mine
+	if(sc->data[SC_AGONY])	 // Warlock Power Word: Agony [Brain]
+	mdef -= 25*mdef/100; // -25% mdef
+	if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain]
+	mdef -= sc->data[SC_CURSEEXHAUST]->val2;
+	if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
+	 mdef += sc->data[SC_OVERWHELMING]->val1;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_AGONY])	 // Warlock Power Word: Agony [Brain]
@@ -3914,4 +4167,6 @@
  		mdef += sc->data[SC_OVERWHELMING]->val1;
 	//Custom Job End
+>>>>>>> .r18
+
 
 	return (signed char)cap_value(mdef,CHAR_MIN,CHAR_MAX);
@@ -3927,4 +4182,11 @@
 	if(sc->data[SC_MINDBREAKER])
 		mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3/100;
+<<<<<<< .mine
+	if(sc->data[SC_AGONY])	 // Warlock Power Word: Agony [Brain]
+	mdef2 -= mdef2 * 25/100; // -25% mdef
+	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
+	if(sc->data[SC_DECREPIFY]->val2>=5)
+		mdef2 -= mdef2 * 25/100;
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_AGONY])	 // Warlock Power Word: Agony [Brain]
@@ -3934,4 +4196,6 @@
 			mdef2 -= mdef2 * 25/100;
 	//Custom Job End
+>>>>>>> .r18
+
 
 	return (short)cap_value(mdef2,1,SHRT_MAX);
@@ -3987,8 +4251,14 @@
 			else if(sc->data[SC_WINDWALK])
 				new_speed -= new_speed * sc->data[SC_WINDWALK]->val3/100;
+<<<<<<< .mine
+		else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm]
+		new_speed -= new_speed * 25/100;
+
+=======
 			//Custom Jobs (blackmagic)
 			else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm]
 				new_speed -= new_speed * 25/100;
 			//Custom Job End
+>>>>>>> .r18
 		}
 
@@ -4034,8 +4304,14 @@
 	if(sc->data[SC_SLOWDOWN])
 		speed = speed * 100/75;
+<<<<<<< .mine
+	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
+	speed = speed * 100/75; //-25% walkspeed
+
+=======
 	//Custom Jobs (blackmagic)
 	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
 		speed = speed * 100/75; //-25% walkspeed
 	//Custom Job End
+>>>>>>> .r18
 	
 	return (short)cap_value(speed,10,USHRT_MAX);
@@ -4108,8 +4384,14 @@
 		else if(sc->data[SC_MADNESSCANCEL])
 			aspd_rate -= 200;
+<<<<<<< .mine
+	else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
+		aspd_rate -= sc->data[SC_LUST]->val2*10;
+
+=======
 		//Custom Jobs (blackmagic)
 		else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
 			aspd_rate -= sc->data[SC_LUST]->val2*10;
 		//Custom Job End
+>>>>>>> .r18
 	}
 
@@ -4205,4 +4487,11 @@
 	if(sc->data[SC_ELEMENTALCHANGE])
 		return sc->data[SC_ELEMENTALCHANGE]->val2;
+<<<<<<< .mine
+	if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]
+	return ELE_UNDEAD;
+	if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
+	return ELE_DARK;
+
+=======
 	//Custom Jobs (blackmagic)
 	if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]
@@ -4211,4 +4500,5 @@
 		return ELE_DARK;
 	//Custom Job End
+>>>>>>> .r18
 	return (unsigned char)cap_value(element,0,UCHAR_MAX);
 }
@@ -4229,4 +4519,10 @@
 	if(sc->data[SC_ELEMENTALCHANGE])
 		return sc->data[SC_ELEMENTALCHANGE]->val1;
+<<<<<<< .mine
+	if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]
+	return 1;
+	if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
+	return 1;
+=======
 	//Custom Jobs (blackmagic)
 	if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]
@@ -4235,4 +4531,6 @@
 		return 1;
 	//Custom Job End
+>>>>>>> .r18
+
 
 	return (unsigned char)cap_value(lv,1,4);
@@ -4972,7 +5270,6 @@
 	case SC_CARTBOOST:
 	case SC_ASSNCROS:
-	//Custom Jobs (blackmagic)
 	case SC_LUST: // Adept Blood Lust [Brain]
-	//Custom Job End
+
 		if (sc->data[SC_QUAGMIRE])
 			return 0;
@@ -5092,5 +5389,16 @@
 			case SC_RICHMANKIM:
 			case SC_ROKISWEIL:
+		//New status [Brainstorm]
+		case SC_FEAR:
+		case SC_DECREPIFY:
+		case SC_DARKMOON:
+		case SC_REQUIEM:
+		case SC_CURSETONGUES:
+		case SC_CURSEWEAKNESS:
+		case SC_CURSEEXHAUST:
+
 			case SC_FOGWALL:
+<<<<<<< .mine
+=======
 			//Custom Jobs (blackmagic)
 			//New status [Brainstorm]
@@ -5103,4 +5411,5 @@
 			case SC_CURSEEXHAUST:
 			//Custom Job End
+>>>>>>> .r18
 				return 0;
 		}
@@ -5118,4 +5427,16 @@
 			if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
 				status_change_end(bl,SC_STONE,-1);
+<<<<<<< .mine
+		// Warlock Curses are canceled by blessing [Brain]
+		if (sc->data[SC_CURSEWEAKNESS])
+		status_change_end(bl,SC_CURSEWEAKNESS,-1);
+		if (sc->data[SC_CURSETONGUES])
+		status_change_end(bl,SC_CURSETONGUES,-1);
+		if (sc->data[SC_CURSEEXHAUST])
+		status_change_end(bl,SC_CURSEEXHAUST,-1);
+		if (sc->data[SC_DOOM]) // This skill would be way funnier if we could igore this concept, no?
+		status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs
+
+=======
 			//Custom Jobs (blackmagic)
 			// Warlock Curses are canceled by blessing [Brain]
@@ -5129,6 +5450,41 @@
 				status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs
 			//Custom Job End
-		}
-		break;
+>>>>>>> .r18
+		}
+		break;
+<<<<<<< .mine
+	case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain]
+	if (sc->data[SC_IMPOSITIO])
+		status_change_end(bl,SC_IMPOSITIO,-1);
+	if (sc->data[SC_BLESSING]) //The opposite is also valid, curses cancel blessing [Brain]
+		status_change_end(bl,SC_BLESSING,-1);
+	break;
+	case SC_CURSETONGUES: // Warlock Curse of Tongues removes Suffragium [Brain]
+	if (sc->data[SC_SUFFRAGIUM])
+		status_change_end(bl,SC_SUFFRAGIUM,-1);
+	if (sc->data[SC_BLESSING])
+		status_change_end(bl,SC_BLESSING,-1);
+	break;
+	case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion removes angelus [Brain]
+	if (sc->data[SC_ANGELUS])
+		status_change_end(bl,SC_ANGELUS,-1);
+	case SC_DOOM:
+	if (sc->data[SC_BLESSING])
+		status_change_end(bl,SC_BLESSING,-1);
+	break;
+	case SC_IMPOSITIO: // Impositio Manus removes Curse of Weakness [Brain]
+	if (sc->data[SC_CURSEWEAKNESS])
+		status_change_end(bl,SC_CURSEWEAKNESS,-1);
+	break;
+	case SC_SUFFRAGIUM: // Suffragium removes Curse of Tongues [Brain]
+	if (sc->data[SC_CURSETONGUES])
+		status_change_end(bl,SC_CURSETONGUES,-1);
+	break;
+	case SC_ANGELUS: // Angelus removes Curse of Exhaustion [Brain]
+	if (sc->data[SC_CURSEEXHAUST])
+		status_change_end(bl,SC_CURSEEXHAUST,-1);
+	break;
+
+=======
 		//Custom Jobs (blackmagic)
 	case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain]
@@ -5164,4 +5520,5 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
 	case SC_INCREASEAGI:
 		status_change_end(bl,SC_DECREASEAGI,-1);
@@ -5182,8 +5539,12 @@
 		status_change_end(bl,SC_TWOHANDQUICKEN,-1);
 		status_change_end(bl,SC_ONEHAND,-1);
+<<<<<<< .mine
+		if(sc->data[SC_LUST])	// Adept Blood Lust [Brain]
+=======
 		//Custom Jobs (blackmagic)
 		if(sc->data[SC_LUST])	// Adept Blood Lust [Brain]
+>>>>>>> .r18
 		status_change_end(bl,SC_LUST,-1);
-		//Custom Job End
+
 		break;
 	case SC_ONEHAND:
@@ -5244,4 +5605,14 @@
 		status_change_end(bl,SC_MADNESSCANCEL,-1);
 		break;
+<<<<<<< .mine
+	case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain]
+	if(sc->data[SC_IMMOLATE])
+		status_change_end(bl,SC_IMMOLATE,-1);
+	case SC_IMMOLATE: // Warlock Immolate [Brain]
+	if(sc->data[SC_SEARING]) //Immolating status ends searing status
+		status_change_end(bl,SC_SEARING,-1);
+	break;
+
+=======
 		//Custom Jobs (blackmagic)
 	case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain]
@@ -5253,4 +5624,5 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
 	case SC_MADNESSCANCEL:
 		status_change_end(bl,SC_ADJUSTMENT,-1);
@@ -5284,7 +5656,5 @@
 			case SC_SILENCE:
 			case SC_CONFUSION:
-				//Custom Jobs (blackmagic)
 			case SC_FEAR: //Fear Status by [Brainstorm]
-				//Custom Job End
 			case SC_BLIND:
 			case SC_BLEEDING:
@@ -5596,4 +5966,11 @@
 			clif_emotion(bl,1);
 			break;
+<<<<<<< .mine
+	case SC_FEAR: //Fear Status by [Brainstorm]
+		clif_emotion(bl,16); // e_wah
+		if(sd) tick /= 2;
+		break;
+
+=======
 			//Custom Jobs (blackmagic)
 		case SC_FEAR: //Fear Status by [Brainstorm]
@@ -5602,4 +5979,5 @@
 			break;
 			//Custom Job End
+>>>>>>> .r18
 		case SC_BLEEDING:
 			val4 = tick/10000;
@@ -5979,4 +6357,12 @@
 			break;
 
+<<<<<<< .mine
+	case SC_ATFIELD: // AT-Field [Brainstorm]
+		val2 = 100; // 100% Block chance
+		val3 = 100; // Dodge 100 attacks total.
+		val4 = tick/1000;
+		tick = 1000;
+		break;
+=======
 			//Custom Jobs (blackmagic)
 		case SC_ATFIELD: // AT-Field [Brainstorm]
@@ -5987,4 +6373,6 @@
 			break;
 			//Custom Job End
+>>>>>>> .r18
+
 
 		case SC_COMBO:
@@ -6035,4 +6423,17 @@
 				val2 = 0; //0 -> Half stat.
 			break;
+<<<<<<< .mine
+	case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain]
+	case SC_DARKMOON:
+		if (undead_flag || status->race==RC_UNDEAD || status->race==RC_DEMON)
+		val2 = val1; //Demon and Undead get buffed
+		else if(status->race==RC_FORMLESS || status->def_ele==ELE_GHOST || bl->type == BL_PC)
+		{
+		val1 = 0; //No status change for Formless and Ghosts, and non-undead players
+		tick = 0; //Cancel status to not show requiem icon without a reason
+		}
+		else
+		val3 = val1; //Everything else (living) get negative status (requiem only)
+=======
 			//Custom Jobs (blackmagic)
 		case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain]
@@ -6050,6 +6451,10 @@
 		case SC_DECREPIFY: //Necro Decrepify [Brain]
 			val2 = val1;
-		break;
-			//Custom Job End
+>>>>>>> .r18
+		break;
+	case SC_DECREPIFY: //Necro Decrepify [Brain]
+		val2 = val1;
+	break;
+
 		case SC_TRICKDEAD:
 			if (vd) vd->dead_sit = 1;
@@ -6092,4 +6497,16 @@
 			val2 = 5*val1; //watk increase
 			break;
+<<<<<<< .mine
+	case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain]
+		val2 = 5*val1; //batk/watk decrease
+		break;
+	case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain]
+		val2 = 2*val1; //def/mdef decrease
+		break;
+	case SC_CURSETONGUES: // Warlock Curse of Tongues [Brain]
+		val2 = 10*val1; //casttime increase
+		break;
+
+=======
 			//Custom Jobs (blackmagic)
 		case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain]
@@ -6103,4 +6520,5 @@
 			break;
 			//Custom Job End
+>>>>>>> .r18
 		case SC_MELTDOWN:
 			val2 = 100*val1; //Chance to break weapon
@@ -6158,4 +6576,19 @@
 			val3 = 5+5*val1; //bAtk/wAtk rate change
 			break;
+<<<<<<< .mine
+		case SC_LUST: // Adept Blood Lust [Brain]
+		val2 = 5+3*val1; //Aspd/bAtk/wAtk change
+		val3 = tick>0?tick:1000; //Interval at which HP is drained.
+		break;
+	case SC_DEATHPACT: // Necro Death Pact [Brain]
+		val2 = 5*val1; //Neutral property resistance
+		val3 = tick>0?tick:10000; //Interval at which HP is drained.
+		break;
+	case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain]
+		val2 = 2*val1; //matk bonus
+		val3 = tick>0?tick:1000; //Interval at which SP is drained.
+		break;
+
+=======
 			//Custom Jobs (blackmagic)
 		case SC_LUST: // Adept Blood Lust [Brain]
@@ -6172,4 +6605,5 @@
 			break;
 			//Custom Job End
+>>>>>>> .r18
 		case SC_MINDBREAKER:
 			val2 = 20*val1; //matk increase.
@@ -6355,4 +6789,12 @@
 				unit_skillcastcancel(bl, 0);
 		break;
+<<<<<<< .mine
+
+	case SC_FEAR: //Fear Status by [Brainstorm]
+		unit_stop_attack(bl);
+	break;
+
+
+=======
 		//Custom Jobs (blackmagic)
 		case SC_FEAR: //Fear Status by [Brainstorm]
@@ -6360,4 +6802,5 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
 	}
 
@@ -6794,5 +7237,5 @@
 				clif_status_change(bl,SI_MOONLIT,0);
 
-			status_change_end(bl,SC_LONGING,-1);				
+			status_change_end(bl,SC_LONGING,-1);
 			break;
 		case SC_NOCHAT:
@@ -6805,8 +7248,14 @@
 			}
 			break;
+<<<<<<< .mine
+	case SC_SPLASHER:
+	case SC_DOOM: // Warlock Curse of Doom [Brain]
+	
+=======
 //Custom Jobs (blackmagic)
 		case SC_SPLASHER:
 		case SC_DOOM: // Warlock Curse of Doom [Brain]
 //Custom Job End
+>>>>>>> .r18
 			{
 				struct block_list *src=map_id2bl(sce->val3);
@@ -7176,4 +7625,6 @@
 		sc_timer_next(sce->val2+tick, status_change_timer, bl->id, data);
 		return 0;
+<<<<<<< .mine
+=======
 		//Custom Jobs (blackmagic)
 	case SC_LUST:	// Adept Blood Lust [Brain]
@@ -7193,4 +7644,22 @@
 		return 0;
 		//Custom Job End
+>>>>>>> .r18
+
+	case SC_LUST:	// Adept Blood Lust [Brain]
+	if(!status_charge(bl, status->max_hp/100, 0))
+		break; //Not enough HP to continue.
+	sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);
+	return 0;
+	case SC_DEATHPACT:	// Necro Death Pact [Brain]
+	 // Drains 1 HP every second (status wont kill, but dying will cancel it)
+	status_charge(bl, 1, 0);
+	sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);
+	return 0;
+	case SC_OVERWHELMING:	// Warlock Overwhelming Evil [Brain]
+	if(!status_charge(bl, 0, status->max_sp/100))
+		break; //Not enough SP to continue.
+	sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);
+	return 0;
+
 
 	case SC_CHASEWALK:
@@ -7427,4 +7896,12 @@
 		}
 		break;
+<<<<<<< .mine
+	case SC_DOOM: // Warlock Curse of Doom [Brain]
+	if((sce->val4 -= 500) > 0) {
+		sc_timer_next(500 + tick, status_change_timer, bl->id, data);
+		return 0;
+	}
+	break;
+=======
 		//Custom Jobs (blackmagic)
 	case SC_DOOM: // Warlock Curse of Doom [Brain]
@@ -7435,4 +7912,5 @@
 		break;
 		//Custom Job End
+>>>>>>> .r18
 
 	case SC_MARIONETTE:
@@ -7602,7 +8080,6 @@
 			case SC_WATKFOOD:
 			case SC_MATKFOOD:
-				//Custom Jobs (blackmagic)
 			case SC_DOOM: // Warlock Curse of Doom [Brain]
-				//Custom Job End
+
 				continue;
 				
Index: /src/map/skill.h
===================================================================
--- /src/map/skill.h (revision 13)
+++ /src/map/skill.h (revision 19)
@@ -321,7 +321,6 @@
 int skill_arrow_create( struct map_session_data *sd,int nameid);
 
-//Custom Jobs (blackmagic)
 int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount); // Item giver func [Brain]
-//Custom Job End
+
 
 // mobXLÌœß
@@ -960,5 +959,34 @@
 
 	ALL_INCCARRY = 681,
-
+	AD_PWBLIND = 700,	// Custom Skills [Brainstorm]
+	AD_PWFEAR,
+	AD_DARKHEAL,
+	AD_BLOODPACT,
+	AD_LUST,
+	AD_FERVOR,
+	AD_PROFANE,
+	AD_DARKFAITH,
+	AD_FAMILIAR,
+	AD_SUMMONS,
+
+<<<<<<< .mine
+	NC_PHYLACTERY, //710
+	NC_UNDEAD,
+	NC_DEATHHAND,
+	NC_GHOULTOUCH,
+	NC_SKELETON,
+	NC_ZOMBIE,
+	NC_ARCHER,
+	NC_MUMMY,
+	NC_GHOST,
+	NC_SHADOW,
+	NC_WRAITH,
+	NC_REQUIEM,
+	NC_DARKMOON,
+	NC_PWSUFFER,
+	NC_DECREPIFY,
+	NC_DRAINLIFE,
+	NC_DEATHPACT,
+=======
 	//Custom Jobs (blackmagic)
 	AD_PWBLIND = 700,	// Custom Skills [Brainstorm]
@@ -1014,4 +1042,26 @@
 	
 	//Custom Job End
+>>>>>>> .r18
+
+	ALL_ATFIELD, //GM SKILL
+
+	WL_CURSETONGUES, //732
+	WL_CURSEDOOM,
+	WL_CURSEEXHAUST,
+	WL_CURSEWEAKNESS,
+	WL_SEARING,
+	WL_HELLFIRE,
+	WL_CONFLAGRATE,
+	WL_IMMOLATE,
+	WL_SHADOWBOLT,
+	WL_SHADOWBURN,
+	WL_HOWLOFPAIN,
+	WL_DEMONOLOGY,
+	WL_HOWLOFTERROR,
+	WL_PWAGONY,
+	WL_OVERWHELMING,
+	WL_SOULSTEAL,
+	WL_DRAINSOUL,
+	WL_CORRUPTION, //749
 
 
Index: /src/map/status.h
===================================================================
--- /src/map/status.h (revision 13)
+++ /src/map/status.h (revision 19)
@@ -294,6 +294,24 @@
 	SC_SEVENWIND,
 	SC_DEF_RATE,
+	SC_DECREPIFY, // New status [brain]
+	SC_LUST,
+	SC_DARKMOON,
+	SC_REQUIEM,
+	SC_DEATHPACT,
+	SC_ATFIELD,
+	SC_SUFFER,
+	SC_SEARING,
+	SC_IMMOLATE,
+	SC_AGONY,
+	SC_CURSETONGUES,
+	SC_DOOM,
+	SC_CURSEWEAKNESS,
+	SC_CURSEEXHAUST,
+	SC_OVERWHELMING,
+	SC_FEAR,
 	SC_SPREGEN,
 	SC_WALKSPEED,
+<<<<<<< .mine
+=======
 	//Custom Jobs (blackmagic)
 	SC_DECREPIFY, // New status [brain]
@@ -314,4 +332,5 @@
 	SC_FEAR,
 //Custom Job End
+>>>>>>> .r18
 	SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
 } sc_type;
Index: /src/map/pc.c
===================================================================
--- /src/map/pc.c (revision 13)
+++ /src/map/pc.c (revision 19)
@@ -1,3 +1,3 @@
-// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
+// Copyright (c) Athena Dev Teams - Licensed under GNU GPL =D
 // For more information, see LICENCE in the main folder
 
@@ -133,5 +133,5 @@
 }
 
-void pc_setinvincibletimer(struct map_session_data* sd, int val) 
+void pc_setinvincibletimer(struct map_session_data* sd, int val)
 {
 	nullpo_retv(sd);
@@ -258,5 +258,5 @@
 		case MAPID_TAEKWON: // Taekwon
 			clif_fame_taekwon(sd,count);
-			break;	
+			break;
 	}
 	chrif_updatefamelist(sd);
@@ -267,5 +267,5 @@
 {
 	int i;
-	
+
 	switch(job){
 		case MAPID_BLACKSMITH: // Blacksmith
@@ -330,8 +330,8 @@
 		sd->status.clothes_color=0;
 
-  	//Only copy the Cart/Peco/Falcon options, the rest are handled via 
+  	//Only copy the Cart/Peco/Falcon options, the rest are handled via
 	//status change load/saving. [Skotlex]
 	sd->status.option = sd->sc.option&(OPTION_CART|OPTION_FALCON|OPTION_RIDING);
-		
+
 	if (sd->sc.data[SC_JAILED])
 	{	//When Jailed, do not move last point.
@@ -403,5 +403,5 @@
 	if (!itemdb_isequip2(sd->inventory_data[n]))
 		return 0; //Not equippable by players.
-	
+
 	ep = sd->inventory_data[n]->equip;
 	if(sd->inventory_data[n]->look == W_DAGGER	||
@@ -518,5 +518,5 @@
 	if (itemdb_isspecial(item->card[0]))
 		return 1;
-	
+
 	ARR_FIND( 0, s, i, item->card[i] && (data = itemdb_exists(item->card[i])) != NULL && data->flag.no_equip&flag );
 	return( i < s ) ? 0 : 1;
@@ -535,5 +535,5 @@
 		if( i == EQI_HEAD_MID && sd->equip_index[EQI_HEAD_LOW] == index ) continue;
 		if( i == EQI_HEAD_TOP && (sd->equip_index[EQI_HEAD_MID] == index || sd->equip_index[EQI_HEAD_LOW] == index) ) continue;
-	
+
 		if( !sd->inventory_data[index] ) continue;
 
@@ -568,5 +568,5 @@
 	// Parents need to have their ring equipped
 	if( !pc_isequipped(p1_sd, WEDDING_RING_M) && !pc_isequipped(p1_sd, WEDDING_RING_F) )
-		return false; 
+		return false;
 
 	if( !pc_isequipped(p2_sd, WEDDING_RING_M) && !pc_isequipped(p2_sd, WEDDING_RING_F) )
@@ -603,5 +603,5 @@
 	int job, joblevel;
 	unsigned int jobexp;
-	
+
 	if( !pc_can_Adopt(p1_sd, p2_sd, b_sd) )
 		return false;
@@ -632,5 +632,5 @@
 		pc_skill(p1_sd, WE_CALLBABY, 1, 0);
 		pc_skill(p2_sd, WE_CALLBABY, 1, 0);
-		
+
 		return true;
 	}
@@ -660,5 +660,5 @@
 		return 0;
 	if(map_flag_gvg(sd->bl.m) && ((item->flag.no_equip&2) || !pc_isAllowedCardOn(sd,item->slot,n,2)))
-		return 0; 
+		return 0;
 	if(map[sd->bl.m].flag.restricted)
 	{
@@ -669,5 +669,5 @@
 
 	if (sd->sc.count) {
-			
+
 		if(item->equip & EQP_ARMS && item->type == IT_WEAPON && sd->sc.data[SC_STRIPWEAPON]) // Also works with left-hand weapons [DracoRPG]
 			return 0;
@@ -698,5 +698,5 @@
 	if (!(1<<(sd->class_&MAPID_BASEMASK)&item->class_base[(sd->class_&JOBL_2_1)?1:((sd->class_&JOBL_2_2)?2:0)]))
 		return 0;
-	
+
 	//Not equipable by upper class. [Skotlex]
 	if(!(1<<((sd->class_&JOBL_UPPER)?1:((sd->class_&JOBL_BABY)?2:0))&item->class_upper))
@@ -730,5 +730,5 @@
 		sd->class_ = MAPID_NOVICE;
 	} else
-		sd->class_ = i; 
+		sd->class_ = i;
 	//Initializations to null/0 unneeded since map_session_data was filled with 0 upon allocation.
 	if(!sd->status.hp) pc_setdead(sd);
@@ -739,5 +739,5 @@
 	sd->npc_timer_id = -1;
 	sd->pvp_timer = -1;
-	
+
 	sd->canuseitem_tick = tick;
 	sd->cantalk_tick = tick;
@@ -754,4 +754,10 @@
 	if (battle_config.disp_zeny)
 		sd->state.showzeny = 1;
+<<<<<<< .mine
+	//Vanaheim settings [Brainstorm]
+	if (battle_config.disp_summon_stats) // Battle Flag to Show Summoned Monster Stats [Brain]
+	sd->state.showsummon = 1;
+
+=======
 	//Custom Job (blackmagick)	
 	//Vanaheim settings [Brainstorm]
@@ -759,11 +765,12 @@
 		sd->state.showsummon = 1;
 	
+>>>>>>> .r18
 	if (!(battle_config.display_skill_fail&2))
 		sd->state.showdelay = 1;
-		
+
 	// ACe`FbN
 	pc_setinventorydata(sd);
 	pc_checkitem(sd);
-	
+
 	status_change_init(&sd->bl);
 	if ((battle_config.atc_gmonly == 0 || pc_isGM(sd)) && (pc_isGM(sd) >= get_atcommand_level(atcommand_hide)))
@@ -820,5 +827,5 @@
 				sd->packet_ver, CONVIP(ip));
 	}
-	
+
 	// Send friends list
 	clif_friendslist_send(sd);
@@ -867,5 +874,5 @@
 }
 
-//Attempts to set a mob. 
+//Attempts to set a mob.
 int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl)
 {
@@ -899,5 +906,5 @@
 {
 	int i,j;
-	
+
 	sd->change_level = pc_readglobalreg(sd,"jobchange_level");
 	sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER");
@@ -933,5 +940,5 @@
 			if (i < sd->status.skill[sd->cloneskill_id].lv)
 				sd->status.skill[sd->cloneskill_id].lv = i;
-			sd->status.skill[sd->cloneskill_id].flag = 13;	//cloneskill flag			
+			sd->status.skill[sd->cloneskill_id].flag = 13;	//cloneskill flag
 		}
 	}
@@ -946,5 +953,5 @@
 	if (sd->status.guild_id)
 		guild_member_joined(sd);
-	
+
 	// pet
 	if (sd->status.pet_id > 0)
@@ -1017,11 +1024,11 @@
 	}
 	c = pc_class2idx(c);
-	for(i=0;i<MAX_SKILL;i++){ 
+	for(i=0;i<MAX_SKILL;i++){
 		if (sd->status.skill[i].flag != 13) //Don't touch plagiarized skills
 			sd->status.skill[i].id=0; //First clear skills.
 	}
 
-	for(i=0;i<MAX_SKILL;i++){ 
-		if (sd->status.skill[i].flag && sd->status.skill[i].flag != 13){ //Restore original level of skills after deleting earned skills.	
+	for(i=0;i<MAX_SKILL;i++){
+		if (sd->status.skill[i].flag && sd->status.skill[i].flag != 13){ //Restore original level of skills after deleting earned skills.
 			sd->status.skill[i].lv=(sd->status.skill[i].flag==1)?0:sd->status.skill[i].flag-2;
 			sd->status.skill[i].flag=0;
@@ -1112,5 +1119,5 @@
 				sd->status.skill[id].flag=1; //So it is not saved, and tagged as a "bonus" skill.
 			} else
-				sd->status.skill[id].flag=sd->status.skill[id].lv+2; 
+				sd->status.skill[id].flag=sd->status.skill[id].lv+2;
 			sd->status.skill[id].lv= skill_tree_get_max(id, sd->status.class_);
 		}
@@ -1128,5 +1135,5 @@
 	if(battle_config.skillfree)
 		return; //Function serves no purpose if this is set
-	
+
 	i = pc_calc_skilltree_normalize_job(sd);
 	c = pc_mapid2jobid(i, sd->status.sex);
@@ -1143,5 +1150,5 @@
 			if(sd->status.skill[id].id) //Already learned
 				continue;
-			
+
 			for(j=0;j<5;j++) {
 				if((k=skill_tree[c][i].need[j].id))
@@ -1164,5 +1171,5 @@
 			if (sd->status.job_level < skill_tree[c][i].joblv)
 				continue;
-			
+
 			j = skill_get_inf2(id);
 			if(!sd->status.skill[id].lv && (
@@ -1203,8 +1210,8 @@
 	int skill_point;
 	int c = sd->class_;
-	
+
 	if (!battle_config.skillup_limit)
 		return c;
-	
+
 	skill_point = pc_calc_skillpoint(sd);
 	if(pc_checkskill(sd, NV_BASIC) < 9) //Consider Novice Tree when you don't have NV_BASIC maxed.
@@ -1612,10 +1619,10 @@
 			break;
 		val += (int)status->max_hp;
-		//Negative bonuses will underflow, this will be handled in status_calc_pc through casting 
+		//Negative bonuses will underflow, this will be handled in status_calc_pc through casting
 		//If this is called outside of status_calc_pc, you'd better pray they do not underflow and end with UINT_MAX max_hp.
 		status->max_hp = (unsigned int)val;
 		break;
 	case SP_MAXSP:
-		if(sd->state.lr_flag == 2) 
+		if(sd->state.lr_flag == 2)
 			break;
 		val += (int)status->max_sp;
@@ -2675,8 +2682,8 @@
 	if(idx_card < 0 || idx_card >= MAX_INVENTORY || !sd->inventory_data[idx_card])
 		return 0; //Invalid card index.
-			
+
 	if(idx_equip < 0 || idx_equip >= MAX_INVENTORY || !sd->inventory_data[idx_equip])
 		return 0; //Invalid item index.
-	
+
 	nameid=sd->status.inventory[idx_equip].nameid;
 	cardid=sd->status.inventory[idx_card].nameid;
@@ -2903,5 +2910,5 @@
 	if(amount > MAX_AMOUNT)
 		return 5;
-	
+
 	data = itemdb_search(item_data->nameid);
 	w = data->weight*amount;
@@ -2998,10 +3005,10 @@
 		return 0; //Can't drop items in nodrop mapflag maps.
 	}
-	
+
 	if (!pc_candrop(sd,&sd->status.inventory[n])) {
 		clif_displaymessage (sd->fd, msg_txt(263));
 		return 0;
 	}
-	
+
 	//Logs items, dropped by (P)layers [Lupus]
 	if(log_config.enable_logs&0x8)
@@ -3011,5 +3018,5 @@
 	if (!map_addflooritem(&sd->status.inventory[n], amount, sd->bl.m, sd->bl.x, sd->bl.y, 0, 0, 0, 2))
 		return 0;
-	
+
 	pc_delitem(sd, n, amount, 0);
 	return 1;
@@ -3034,5 +3041,5 @@
 	if (sd->status.party_id)
 		p = party_search(sd->status.party_id);
-	
+
 	if(fitem->first_get_charid > 0 && fitem->first_get_charid != sd->status.char_id)
   	{
@@ -3124,5 +3131,5 @@
 	if ((nameid == 605 || nameid == 606) && pc_issit(sd))
 		return 0;
-	  
+
 	//added item_noequip.txt items check by Maya&[Lupus]
 	if (
@@ -3146,5 +3153,5 @@
 	))
 		return 0;
-	
+
 	//Not usable by upper class. [Skotlex]
 	if(!(
@@ -3330,5 +3337,5 @@
 	if (idx < 0 || idx >= MAX_INVENTORY) //Invalid index check [Skotlex]
 		return 1;
-	
+
 	item_data = &sd->status.inventory[idx];
 
@@ -3370,5 +3377,5 @@
 	if (idx < 0 || idx >= MAX_CART) //Invalid index check [Skotlex]
 		return 1;
-	
+
 	item_data=&sd->status.cart[idx];
 
@@ -3422,5 +3429,5 @@
 	if(md->state.steal_flag == UCHAR_MAX || md->sc.opt1) //already stolen from / status change check
 		return 0;
-	
+
 	sd_status= status_get_status_data(&sd->bl);
 	md_status= status_get_status_data(bl);
@@ -3439,5 +3446,5 @@
 	rate = (sd_status->dex - md_status->dex)/2 + lv*6 + 4;
 	rate += sd->add_steal_rate;
-		
+
 	if( rate < 1 )
 		return 0;
@@ -3465,5 +3472,5 @@
 		return 0;
 	}
-	
+
 	if(battle_config.show_steal_in_same_party)
 		party_foreachsamemap(pc_show_steal,sd,AREA_SIZE,sd,tmp_item.nameid);
@@ -3474,5 +3481,5 @@
 		log_pick_pc(sd, "P", itemid, 1, NULL);
 	}
-		
+
 	//A Rare Steal Global Announce by Lupus
 	if(md->db->dropitem[i].p<=battle_config.rare_drop_announce) {
@@ -3605,5 +3612,5 @@
 		//Tag player for rewarping after map-loading is done. [Skotlex]
 		sd->state.rewarp = 1;
-	
+
 	sd->mapindex =  mapindex;
 	sd->bl.m = m;
@@ -3763,5 +3770,5 @@
 	if(!sd->sc.count)
 		return 0;
-	
+
 	for (i = 0; i < ARRAYLENGTH(scw_list); i++)
 	{	// Skills requiring specific weapon types
@@ -3770,9 +3777,9 @@
 			status_change_end(&sd->bl,scw_list[i],-1);
 	}
-	
+
 	if(sd->sc.data[SC_SPURT] && sd->status.weapon)
 		// Spurt requires bare hands (feet, in fact xD)
 		status_change_end(&sd->bl,SC_SPURT,-1);
-	
+
 	if(sd->status.shield <= 0) { // Skills requiring a shield
 		for (i = 0; i < ARRAYLENGTH(scs_list); i++)
@@ -3862,10 +3869,10 @@
 			class_ |= MAPID_THIEF;
 			break;
-			
+
 		case JOB_STAR_GLADIATOR:
 		case JOB_STAR_GLADIATOR2:
 			class_ |= JOBL_2_1;
 			class_ |= MAPID_TAEKWON;
-			break;	
+			break;
 		case JOB_SOUL_LINKER:
 			class_ |= JOBL_2_2;
@@ -3891,4 +3898,10 @@
 			class_ = MAPID_SUMMER;
 			break;
+<<<<<<< .mine
+			//Possible to be in the wrong spot?
+		case JOB_NECROMANCER: // Necromancer [Brain]
+			class_ |= JOBL_2_1;
+			class_ |= MAPID_ADEPT;
+=======
 			//Custom Jobs (blackmagic)
 			+		case JOB_NECROMANCER: // Necromancer [Brain]
@@ -3900,6 +3913,11 @@
 		case JOB_ADEPT: // Adept [Brain]
 			class_ |= MAPID_ADEPT;
-			break;
-//Custom Job End
+>>>>>>> .r18
+			break;
+		case JOB_WARLOCK: // Warlock [Brain]
+			class_ |= JOBL_2_2;
+		case JOB_ADEPT: // Adept [Brain]
+			class_ |= MAPID_ADEPT;
+			break;
 		default:
 			return -1;
@@ -3925,8 +3943,5 @@
 		case MAPID_XMAS:            return JOB_XMAS;
 		case MAPID_SUMMER:          return JOB_SUMMER;
-		//Custom Jobs (blackmagic)
 		case MAPID_ADEPT:			return JOB_ADEPT; // Adept [Brain]
-		//Custom Job End
-
 	//2_1 classes
 		case MAPID_SUPER_NOVICE:    return JOB_SUPER_NOVICE;
@@ -3938,8 +3953,5 @@
 		case MAPID_ASSASSIN:        return JOB_ASSASSIN;
 		case MAPID_STAR_GLADIATOR:  return JOB_STAR_GLADIATOR;
-		//Custom Jobs (blackmagic)
 		case MAPID_NECROMANCER:		return JOB_NECROMANCER; // Necromancer [Brain]
-		//Custom Job End
-
 	//2_2 classes
 		case MAPID_CRUSADER:        return JOB_CRUSADER;
@@ -3950,8 +3962,5 @@
 		case MAPID_ROGUE:           return JOB_ROGUE;
 		case MAPID_SOUL_LINKER:     return JOB_SOUL_LINKER;
-		//Custom Jobs (blackmagic)
 		case MAPID_WARLOCK:			return JOB_WARLOCK; // Warlock [Brain]
-		//Custom Job End
-
 	//1-1: advanced
 		case MAPID_NOVICE_HIGH:     return JOB_NOVICE_HIGH;
@@ -4018,5 +4027,5 @@
 	case JOB_THIEF:
 		return msg_txt(550 - JOB_NOVICE+class_);
-		
+
 	case JOB_KNIGHT:
 	case JOB_PRIEST:
@@ -4026,8 +4035,8 @@
 	case JOB_ASSASSIN:
 		return msg_txt(557 - JOB_KNIGHT+class_);
-		
+
 	case JOB_KNIGHT2:
 		return msg_txt(557);
-		
+
 	case JOB_CRUSADER:
 	case JOB_MONK:
@@ -4038,8 +4047,8 @@
 	case JOB_DANCER:
 		return msg_txt(563 - JOB_CRUSADER+class_);
-			
+
 	case JOB_CRUSADER2:
 		return msg_txt(563);
-		
+
 	case JOB_WEDDING:
 	case JOB_SUPER_NOVICE:
@@ -4067,8 +4076,8 @@
 	case JOB_ASSASSIN_CROSS:
 		return msg_txt(582 - JOB_LORD_KNIGHT+class_);
-		
+
 	case JOB_LORD_KNIGHT2:
 		return msg_txt(582);
-		
+
 	case JOB_PALADIN:
 	case JOB_CHAMPION:
@@ -4079,5 +4088,5 @@
 	case JOB_GYPSY:
 		return msg_txt(588 - JOB_PALADIN + class_);
-		
+
 	case JOB_PALADIN2:
 		return msg_txt(588);
@@ -4091,5 +4100,5 @@
 	case JOB_BABY_THIEF:
 		return msg_txt(595 - JOB_BABY + class_);
-		
+
 	case JOB_BABY_KNIGHT:
 	case JOB_BABY_PRIEST:
@@ -4099,8 +4108,8 @@
 	case JOB_BABY_ASSASSIN:
 		return msg_txt(602 - JOB_BABY_KNIGHT + class_);
-		
+
 	case JOB_BABY_KNIGHT2:
 		return msg_txt(602);
-		
+
 	case JOB_BABY_CRUSADER:
 	case JOB_BABY_MONK:
@@ -4111,11 +4120,11 @@
 	case JOB_BABY_DANCER:
 		return msg_txt(608 - JOB_BABY_CRUSADER +class_);
-		
+
 	case JOB_BABY_CRUSADER2:
 		return msg_txt(608);
-		
+
 	case JOB_SUPER_BABY:
 		return msg_txt(615);
-		
+
 	case JOB_TAEKWON:
 		return msg_txt(616);
@@ -4125,9 +4134,16 @@
 	case JOB_SOUL_LINKER:
 		return msg_txt(618);
-		
+
 	case JOB_GUNSLINGER:
 		return msg_txt(619);
 	case JOB_NINJA:
 		return msg_txt(620);
+<<<<<<< .mine
+	case JOB_ADEPT: // Adept [Brain]
+		return msg_txt(1000);
+	case JOB_NECROMANCER: // Necromancer [Brain]
+		return msg_txt(1001);
+	case JOB_WARLOCK: // Warlock [Flavio]
+=======
 	//Custom Jobs (blackmagic)
 	case JOB_ADEPT: // Adept [Brain]
@@ -4136,7 +4152,7 @@
 		return msg_txt(1001);
 	case JOB_WARLOCK: // Warlock [Flavio]
+>>>>>>> .r18
 		return msg_txt(1002);
-	//Custom Job End
-	
+
 	default:
 		return msg_txt(650);
@@ -4232,5 +4248,5 @@
 		if (sd->status.status_point > USHRT_MAX - next)
 			sd->status.status_point = USHRT_MAX;
-		else	
+		else
 			sd->status.status_point += next;
 
@@ -4239,5 +4255,5 @@
 	if (battle_config.pet_lv_rate && sd->pd)	//<Skotlex> update pet's level
 		status_calc_pet(sd->pd,0);
-	
+
 	clif_updatestatus(sd,SP_STATUSPOINT);
 	clif_updatestatus(sd,SP_BASELEVEL);
@@ -4309,10 +4325,10 @@
 
 	if (sd->expaddrace[status->race])
-		bonus += sd->expaddrace[status->race];	
+		bonus += sd->expaddrace[status->race];
 	bonus += sd->expaddrace[status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS];
-	
-	if (battle_config.pk_mode && 
+
+	if (battle_config.pk_mode &&
 		(int)(status_get_lv(src) - sd->status.base_level) >= 20)
-		bonus += 15; // pk_mode additional exp if monster >20 levels [Valaris]	
+		bonus += 15; // pk_mode additional exp if monster >20 levels [Valaris]
 
 	if (sd->sc.data[SC_EXPBOOST])
@@ -4321,5 +4337,5 @@
 	if (!bonus)
 	  	return;
-	
+
 	*base_exp += (unsigned int) cap_value((double)*base_exp * bonus/100., 1, UINT_MAX);
 	*job_exp += (unsigned int) cap_value((double)*job_exp * bonus/100., 1, UINT_MAX);
@@ -4350,5 +4366,5 @@
 	nextb = pc_nextbaseexp(sd);
 	nextj = pc_nextjobexp(sd);
-		
+
 	if(sd->state.showexp || battle_config.max_exp_gain_rate){
 		if (nextb > 0)
@@ -4372,5 +4388,5 @@
 		}
 	}
-	
+
 	//Cap exp to the level up requirement of the previous level when you are at max level, otherwise cap at UINT_MAX (this is required for some S. Novice bonuses). [Skotlex]
 	if (base_exp) {
@@ -4538,5 +4554,5 @@
 
 	max = pc_maxparameter(sd);
-	
+
 	switch(type){
 	case SP_STR: sd->status.str = cap_value(sd->status.str + val, 1, max); break;
@@ -4638,5 +4654,5 @@
 	}
 	status_calc_pc(sd,0);
-	//Required because if you could level up all skills previously, 
+	//Required because if you could level up all skills previously,
 	//the update will not be sent as only the lv variable changes.
 	clif_skillinfoblock(sd);
@@ -4735,5 +4751,5 @@
 {
 	nullpo_retr(0, sd);
-	
+
 	if (battle_config.use_statpoint_table)
 	{	// New statpoint table used here - Dexity
@@ -4748,5 +4764,5 @@
 		if (sd->class_&JOBL_UPPER)
 			stat+=52;	// extra 52+48=100 stat points
-		
+
 		if (stat > USHRT_MAX)
 			sd->status.status_point = USHRT_MAX;
@@ -4788,5 +4804,5 @@
 	clif_updatestatus(sd,SP_UDEX);
 	clif_updatestatus(sd,SP_ULUK);	// End Addition
-	
+
 	clif_updatestatus(sd,SP_STATUSPOINT);
 	status_calc_pc(sd,0);
@@ -4823,5 +4839,5 @@
 			merc_hom_vaporize(sd, 0);
 	}
-	
+
 	for (i = 1; i < MAX_SKILL; i++) {
 		lv= sd->status.skill[i].lv;
@@ -4852,5 +4868,5 @@
 		}
 	}
-	
+
 	if (flag&2 || !skill_point) return skill_point;
 
@@ -4958,5 +4974,5 @@
 	if(!src || src == &sd->bl)
 		return;
-	
+
 	if(sd->status.pet_id > 0 && sd->pd && battle_config.pet_damage_support)
 		pet_target_check(sd,src,1);
@@ -4970,5 +4986,5 @@
 	int i=0,j=0,k=0;
 	unsigned int tick = gettick();
-		
+
 	if(sd->vender_id)
 		vending_closevending(sd);
@@ -5065,5 +5081,5 @@
 			// karma going down = more 'good' / more honourable.
 			// The Karma System way...
-		
+
 			if (sd->status.karma > ssd->status.karma) {	// If player killed was more evil
 				sd->status.karma--;
@@ -5072,12 +5088,12 @@
 			else if (sd->status.karma < ssd->status.karma)	// If player killed was more good
 				ssd->status.karma++;
-	
+
 
 			// or the PK System way...
-	
+
 			if (sd->status.karma > 0)	// player killed is dishonourable?
 				ssd->status.karma--; // honour points earned
 			sd->status.karma++;	// honour points lost
-		
+
 			// To-do: Receive exp on certain occasions
 #endif
@@ -5326,5 +5342,5 @@
 				stat += (sd->status.base_level + i + 14) / 5 ;
 			if (sd->status.status_point > USHRT_MAX - stat)
-				
+
 				sd->status.status_point = USHRT_MAX;
 			else
@@ -5528,5 +5544,5 @@
 			status_percent_damage(NULL, &sd->bl, hp, 0, hp==-100);
 	}
-	
+
 	if(sp) {
 		if(sp > 0)
@@ -5560,5 +5576,5 @@
 	switch (upper) {
 		case 1:
-			b_class|= JOBL_UPPER; 
+			b_class|= JOBL_UPPER;
 			break;
 		case 2:
@@ -5567,9 +5583,9 @@
 	}
 	//This will automatically adjust bard/dancer classes to the correct gender
-	//That is, if you try to jobchange into dancer, it will turn you to bard.	
+	//That is, if you try to jobchange into dancer, it will turn you to bard.
 	job = pc_mapid2jobid(b_class, sd->status.sex);
 	if (job == -1)
 		return 1;
-	
+
 	if ((unsigned short)b_class == sd->class_)
 		return 1; //Nothing to change.
@@ -5599,5 +5615,5 @@
 		}
 	}
-	
+
 	sd->status.class_ = job;
 	fame_flag = pc_famerank(sd->status.char_id,sd->class_&MAPID_UPPERMASK);
@@ -5615,5 +5631,5 @@
 	}
 
-	//Change look, if disguised, you need to undisguise 
+	//Change look, if disguised, you need to undisguise
 	//to correctly calculate new job sprite without
 	if (sd->disguise)
@@ -5643,5 +5659,5 @@
 	if(merc_is_hom_active(sd->hd) && !pc_checkskill(sd, AM_CALLHOMUN))
 		merc_hom_vaporize(sd, 0);
-	
+
 	if(sd->status.manner < 0)
 		clif_changestatus(&sd->bl,SP_MANNER,sd->status.manner);
@@ -5802,5 +5818,5 @@
 	else if (!(type&OPTION_FLYING) && p_type&OPTION_FLYING)
 		new_look = -1;
-	
+
 	if (type&OPTION_WEDDING && !(p_type&OPTION_WEDDING))
 		new_look = JOB_WEDDING;
@@ -6036,5 +6052,5 @@
 	struct global_reg *sd_reg;
 	int i,max;
-	
+
 	nullpo_retr(0, sd);
 	switch (type) {
@@ -6113,5 +6129,5 @@
 		return 1;
 	}
-	
+
 	// delete reg
 	if (val == 0) {
@@ -6185,5 +6201,5 @@
 		return 0;
 	}
-	
+
 	// delete reg
 	if (!val || strcmp(val,"")==0)
@@ -6379,5 +6395,5 @@
 	if(pos == EQP_ACC) { //Accesories should only go in one of the two,
 		pos = req_pos&EQP_ACC;
-		if (pos == EQP_ACC) //User specified both slots.. 
+		if (pos == EQP_ACC) //User specified both slots..
 			pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R;
 	}
@@ -6564,5 +6580,5 @@
 	clif_unequipitemack(sd,n,sd->status.inventory[n].equip,1);
 
-	if((sd->status.inventory[n].equip & EQP_ARMS) && 
+	if((sd->status.inventory[n].equip & EQP_ARMS) &&
 		sd->weapontype1 == 0 && sd->weapontype2 == 0 && (!sd->sc.data[SC_SEVENWIND] || sd->sc.data[SC_ASPERSIO])) //Check for seven wind (but not level seven!)
 		skill_enchant_elemental_end(&sd->bl,-1);
@@ -6620,5 +6636,5 @@
 	if (sd->vender_id) //Avoid reorganizing items when we are vending, as that leads to exploits (pointed out by End of Exam)
 		return 0;
-	
+
 	// ió«lß
 	for(i=j=0;i<MAX_INVENTORY;i++){
@@ -6865,5 +6881,5 @@
 			hp = sd->battle_status.hp-1; //Script drains cannot kill you.
 	}
-	
+
 	if (sd->sp_loss.value) {
 		sd->sp_loss.tick += diff_tick;
@@ -6894,5 +6910,5 @@
 		}
 	}
-	
+
 	if (sd->sp_regen.value) {
 		sd->sp_regen.tick += diff_tick;
@@ -7000,8 +7016,8 @@
 	if (data == 0 && battle_config.day_duration <= 0)	// if we want a day
 		return 0;
-	
+
 	if (!night_flag)
 		return 0; //Already day.
-	
+
 	night_flag = 0; // 0=day, 1=night [Yor]
 	map_foreachpc(pc_daynight_timer_sub);
@@ -7021,5 +7037,5 @@
 	if (data == 0 && battle_config.night_duration <= 0)	// if we want a night
 		return 0;
-	
+
 	if (night_flag)
 		return 0; //Already nigth.
@@ -7050,9 +7066,9 @@
 	time_t timer;
 	struct tm *t;
-	
+
 	time(&timer);
 	t = localtime(&timer);
-	
-	pc_setglobalreg(sd, "PC_LAST_DUEL_TIME", t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min);	
+
+	pc_setglobalreg(sd, "PC_LAST_DUEL_TIME", t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min);
 	return;
 }
@@ -7063,10 +7079,10 @@
 	time_t timer;
 	struct tm *t;
-	
+
 	time(&timer);
     t = localtime(&timer);
-	
+
 	diff = t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min - pc_readglobalreg(sd, "PC_LAST_DUEL_TIME");
-	
+
 	return !(diff >= 0 && diff < battle_config.duel_time_interval);
 }
@@ -7078,5 +7094,5 @@
 
 	if (sd->duel_group != ssd->duel_group) return 0;
-	
+
 	sprintf(output, "      %d. %s", ++(*p), sd->status.name);
 	clif_disp_onlyself(ssd, output, strlen(output));
@@ -7110,8 +7126,8 @@
 	int i=1;
 	char output[256];
-	
+
 	while(duel_list[i].members_count > 0 && i < MAX_DUEL) i++;
 	if(i == MAX_DUEL) return 0;
-	
+
 	duel_count++;
 	sd->duel_group = i;
@@ -7119,8 +7135,8 @@
 	duel_list[i].invites_count = 0;
 	duel_list[i].max_players_limit = maxpl;
-	
+
 	strcpy(output, msg_txt(372)); // " -- Duel has been created (@invite/@leave) --"
 	clif_disp_onlyself(sd, output, strlen(output));
-	
+
 	clif_set0199(sd, 1);
 	//clif_misceffect2(&sd->bl, 159);
@@ -7138,5 +7154,5 @@
 	target_sd->duel_invite = did;
 	duel_list[did].invites_count++;
-	
+
 	// "Blue -- Player %s invites you to PVP duel (@accept/@reject) --"
 	sprintf(output, msg_txt(374), sd->status.name);
@@ -7156,16 +7172,16 @@
 {
 	char output[256];
-	
+
 	// " <- Player %s has left duel --"
 	sprintf(output, msg_txt(375), sd->status.name);
 	clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS);
-	
+
 	duel_list[did].members_count--;
-	
+
 	if(duel_list[did].members_count == 0) {
-		map_foreachpc(duel_leave_sub, did); 
+		map_foreachpc(duel_leave_sub, did);
 		duel_count--;
 	}
-	
+
 	sd->duel_group = 0;
 	duel_savetime(sd);
@@ -7177,10 +7193,10 @@
 {
 	char output[256];
-	
+
 	duel_list[did].members_count++;
 	sd->duel_group = sd->duel_invite;
 	duel_list[did].invites_count--;
 	sd->duel_invite = 0;
-	
+
 	// " -> Player %s has accepted duel --"
 	sprintf(output, msg_txt(376), sd->status.name);
@@ -7195,9 +7211,9 @@
 {
 	char output[256];
-	
+
 	// " -- Player %s has rejected duel --"
 	sprintf(output, msg_txt(377), sd->status.name);
 	clif_disp_message(&sd->bl, output, strlen(output), DUEL_WOS);
-	
+
 	duel_list[did].invites_count--;
 	sd->duel_invite = 0;
@@ -7297,5 +7313,5 @@
 		if (pc_split_str(line,split,4) < 4)
 			continue;
-		
+
 		job_count = pc_split_atoi(split[1],jobs,':',CLASS_COUNT);
 		if (job_count < 1)
@@ -7316,5 +7332,5 @@
 			maxlv = MAX_LEVEL;
 		}
-		
+
 		job = jobs[0] = pc_class2idx(job_id);
 		//We send one less and then one more because the last entry in the exp array should hold 0.
@@ -7477,5 +7493,5 @@
 			if (i > MAX_LEVEL)
 				break;
-			statp[i]=j;			
+			statp[i]=j;
 			i++;
 		}
@@ -7486,5 +7502,5 @@
 	for (; i <= MAX_LEVEL; i++) {
 		j += (i+15)/5;
-		statp[i] = j;		
+		statp[i] = j;
 	}
 
@@ -7518,5 +7534,5 @@
 	else
 		ShowWarning("In function pc_read_motd() -> File '"CL_WHITE"%s"CL_RESET"' not found.\n", motd_txt);
-	
+
 	return 0;
 }
Index: /src/map/pc.h
===================================================================
--- /src/map/pc.h (revision 13)
+++ /src/map/pc.h (revision 19)
@@ -1,3 +1,3 @@
-// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
+// Copyright (c) Athena Dev Teams - Licensed under GNU GPL =D
 // For more information, see LICENCE in the main folder
 
@@ -114,4 +114,7 @@
 		unsigned short autolootid; // [Zephyrus]
 		unsigned noks : 3; // [Zeph Kill Steal Protection]
+<<<<<<< .mine
+		unsigned showsummon : 1; //Show summoned monster stats [Brainstorm]
+=======
 		//Custom Jobs (blackmagic)
 		
@@ -122,4 +125,5 @@
 		unsigned god :1; //[Sketchy]
 		unsigned demon :1; //[Sketchy]
+>>>>>>> .r17
 		bool changemap;
 		struct guild *gmaster_flag;
Index: /src/map/mob.c
===================================================================
--- /src/map/mob.c (revision 5)
+++ /src/map/mob.c (revision 19)
@@ -548,6 +548,10 @@
 	barricade->amount = 0;
 	barricade->killable = killable;
-	barricade->shootable = shootable;
-	barricade->walkable = walkable;
+	
+	// A protection just in case setting a walkable - non shootable
+	if( (barricade->walkable = walkable) == true )
+		barricade->shootable = true;
+	else
+		barricade->shootable = shootable;
 	
 	for( i = 0; i < count; i++ )
@@ -570,6 +574,9 @@
 		}
 
-		if( !barricade->walkable ) map_setcell(m, x1, y1, CELL_WALKABLE, false);
-		map_setcell(m, x1, y1, CELL_SHOOTABLE, barricade->shootable);
+		if( !barricade->walkable )
+		{
+			map_setcell(m, x1, y1, CELL_WALKABLE, false);
+			map_setcell(m, x1, y1, CELL_SHOOTABLE, barricade->shootable);
+		}
 
 		clif_changemapcell(0, m, x1, y1, map_getcell(barricade->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP);
@@ -626,6 +633,9 @@
 		mob_barricade_nextxy(barricade->x, barricade->y, barricade->dir, i, &x1, &y1);
 
-		if( !barricade->walkable ) map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
-		map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, !barricade->shootable);
+		if( !barricade->shootable )
+			map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, true);
+		if( !barricade->walkable )
+			map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
+
 		clif_changemapcell(0, barricade->m, x1, y1, map_getcell(barricade->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP);
 	}
@@ -688,6 +698,9 @@
 			mob_barricade_nextxy(barricade->x, barricade->y, barricade->dir, i, &x1, &y1);
 
-			if( !barricade->walkable ) map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
-			map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, !barricade->shootable);
+			if( !barricade->shootable )
+				map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, true);
+			if( !barricade->walkable )
+				map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
+
 			clif_changemapcell(0, barricade->m, x1, y1, map_getcell(barricade->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP);
 		}
@@ -2015,8 +2028,6 @@
 		/*if (md2->master_id && battle_config.retaliate_to_master)
 			md->attacked_id = md2->master_id;*/
-//UNCOMMENT IF ERROR OCCURS WITH CUSTOM JOBS V
-//if (md2->master_id && battle_config.retaliate_to_master)
-		//BEGIN Custom Jobs (blackmagic)
-			{
+			if (md2->master_id && battle_config.retaliate_to_master)
+	{
 		//necro_retaliation config (same as above, but only works for adept/necro/warlock summons) [Brainstorm]
 		if(!battle_config.necro_retaliation && (md2->class_ >= 3100 && md2->class_ <= 3235))
@@ -2024,5 +2035,5 @@
 		else md->attacked_id = md2->master_id; //All normal summons
 	}
-			//end
+
 		else
 			md->attacked_id = src->id;
@@ -2825,5 +2836,4 @@
 }
 
-//Begin Custom Jobs (blackmagic)
 /// Count slaves with a certain master and class. by FlavioJS [Brain]
 static int mob_countslave_class_sub(struct block_list* bl, va_list ap)
@@ -2860,5 +2870,4 @@
 }
 
-//End
 
 /*==========================================
@@ -4023,9 +4032,7 @@
 		"mob_poring.txt",
 		"mob_boss.txt",
-		"mob_pouch.txt"
-		//Begin custom Jobs (blackmagic
-		"mob_familiar.txt" // familiar By FlavioJS [Brain]
+		"mob_pouch.txt",
+		"mob_familiar.txt"
 	};
-	//end
 
 	memset(&summon, 0, sizeof(summon));
Index: /src/map/map.h
===================================================================
--- /src/map/map.h (revision 5)
+++ /src/map/map.h (revision 19)
@@ -77,7 +77,5 @@
 	MAPID_XMAS,
 	MAPID_SUMMER,
-	//Begin custom Jobs (blackmagic)
 	MAPID_ADEPT = 0x0E,	// Adept [Brain]
-	//end
 //2_1 classes
 	MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
@@ -89,7 +87,5 @@
 	MAPID_ASSASSIN,
 	MAPID_STAR_GLADIATOR,
-	//Begin Custom Jobs (blackmagic)
 	MAPID_NECROMANCER = JOBL_2_1|0x0E,	// Necromancer [Brain]
-	//end
 //2_2 classes
 	MAPID_CRUSADER = JOBL_2_2|0x1,
@@ -100,7 +96,5 @@
 	MAPID_ROGUE,
 	MAPID_SOUL_LINKER,
-	//begin custom job (blackmagic)
 	MAPID_WARLOCK = JOBL_2_2|0x0E, // Warlock [Flavio]
-	//end
 //1-1, advanced
 	MAPID_NOVICE_HIGH = JOBL_UPPER|0x0,
@@ -463,5 +457,4 @@
 		unsigned partylock :1;
 		unsigned guildlock :1;
-		unsigned hostile : 1; //Sketchy
 	} flag;
 	struct point save;
Index: /src/map/mob.h
===================================================================
--- /src/map/mob.h (revision 5)
+++ /src/map/mob.h (revision 19)
@@ -270,8 +270,7 @@
 int mob_countslave(struct block_list *bl);
 int mob_convertslave(struct mob_data *md);
-
-//Begin custom Job (blackmagic)
 int mob_countslave_class(struct block_list* bl, int count, short* classes); // By FlavioJS [Brain]
-//end
+
+
 int mob_is_clone(int class_);
 
