From 49988ac53690a0194d111a57603db68941ae3558 Mon Sep 17 00:00:00 2001
From: Kenpachi Developer <Kenpachi.Developer@gmx.de>
Date: Sat, 2 May 2020 05:05:12 +0200
Subject: Implement SC_RESIST_PROPERTY_FIRE logic

---
 src/map/status.c | 7 +++++++
 1 file changed, 7 insertions(+)

(limited to 'src/map')

diff --git a/src/map/status.c b/src/map/status.c
index 069fd0580..41805b1e2 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -867,6 +867,7 @@ static void initChangeTables(void)
 	status->dbs->ChangeFlagTable[SC_ARMOR_RESIST] |= SCB_ALL;
 	status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_WATER] |= SCB_ALL;
 	status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_GROUND] |= SCB_ALL;
+	status->dbs->ChangeFlagTable[SC_RESIST_PROPERTY_FIRE] |= SCB_ALL;
 	status->dbs->ChangeFlagTable[SC_ATKER_BLOOD] |= SCB_ALL;
 	status->dbs->ChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED;
 	status->dbs->ChangeFlagTable[SC_TARGET_BLOOD] |= SCB_ALL;
@@ -3039,6 +3040,10 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o
 			sd->subele[ELE_EARTH] += sc->data[SC_RESIST_PROPERTY_GROUND]->val1;
 			sd->subele[ELE_FIRE] += sc->data[SC_RESIST_PROPERTY_GROUND]->val2;
 		}
+		if (sc->data[SC_RESIST_PROPERTY_FIRE] != NULL) { // Fireproof Potion
+			sd->subele[ELE_FIRE] += sc->data[SC_RESIST_PROPERTY_FIRE]->val1;
+			sd->subele[ELE_WATER] += sc->data[SC_RESIST_PROPERTY_FIRE]->val2;
+		}
 		if (sc->data[SC_FIRE_CLOAK_OPTION]) {
 			i = sc->data[SC_FIRE_CLOAK_OPTION]->val2;
 			sd->subele[ELE_FIRE] += i;
@@ -7765,6 +7770,7 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl
 			case SC_ARMOR_RESIST:
 			case SC_RESIST_PROPERTY_WATER:
 			case SC_RESIST_PROPERTY_GROUND:
+			case SC_RESIST_PROPERTY_FIRE:
 				break;
 			case SC_GOSPEL:
 				//Must not override a casting gospel char.
@@ -8739,6 +8745,7 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl
 				break;
 			case SC_RESIST_PROPERTY_WATER:
 			case SC_RESIST_PROPERTY_GROUND:
+			case SC_RESIST_PROPERTY_FIRE:
 				if (val1 <= 0)
 					flag |= SCFLAG_NOICON;
 
-- 
cgit v1.2.3-70-g09d2