From 9b4df1b7ef28781bcf9a601077986e8f24ced32b Mon Sep 17 00:00:00 2001
From: Jesusaves <cpntb1@ymail.com>
Date: Fri, 14 Dec 2018 22:15:40 -0200
Subject: Christmas is coming: Handle Christmas drops and items

---
 db/re/item_db.conf        | 16 +++++++++---
 npc/commands/event.txt    | 66 ++++++++++++++++++++++++++++++++---------------
 npc/functions/seasons.txt |  5 ++++
 3 files changed, 62 insertions(+), 25 deletions(-)

diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index e9418777c..afbffbec0 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -1477,8 +1477,12 @@ item_db: (
 	Delay: 500
 	UseEffect: "EFFECT_HEAL"
 	Script: <"
-		@min = 4;
+		@min = 100;
 		@max = 400;
+        if ($EVENT$ == "Christmas") {
+            @min=300;
+            @max=1200;
+        }
 		@delay = 3;
 		@type = 1;
 		doevent "rand_sc_heal::OnUse";
@@ -1497,9 +1501,13 @@ item_db: (
 	Delay: 500
 	UseEffect: "EFFECT_HEAL"
 	Script: <"
-		@min = 4;
-		@max = 400;
-		@delay = 3;
+		@min = 80;
+		@max = 350;
+        if ($EVENT$ == "Christmas") {
+            @min=240;
+            @max=1050;
+        }
+		@delay = 4;
 		@type = 1;
 		doevent "rand_sc_heal::OnUse";
 	">
diff --git a/npc/commands/event.txt b/npc/commands/event.txt
index 6f43705ae..a41af175f 100644
--- a/npc/commands/event.txt
+++ b/npc/commands/event.txt
@@ -14,6 +14,40 @@ function	script	DelItemFromEveryPlayer	{
     return;
 }
 
+// Christmas cannot be on GEM because it affects seasons system
+function	script	sChristmas {
+        // Add drops?
+        addmonsterdrop(Moggun,      XmasCake,  800);
+        addmonsterdrop(AlphaMouboo, XmasCake,  920);
+        addmonsterdrop(BlueSlime,   XmasCake, 1000);
+        addmonsterdrop(SantaSlime,  XmasCake, 1200);
+        addmonsterdrop(IcedFluffy,  XmasCake, 1500);
+        addmonsterdrop(Yeti,        XmasCake, 5000);
+
+        addmonsterdrop(Bandit,      XmasCandyCane,  300);
+        addmonsterdrop(Mouboo,      XmasCandyCane,  480);
+        addmonsterdrop(WhiteSlime,  XmasCandyCane,  500);
+        addmonsterdrop(RudolphSlime,XmasCandyCane, 1000);
+        addmonsterdrop(Fluffy,      XmasCandyCane, 2000);
+        addmonsterdrop(AzulSlime,   XmasCandyCane, 2000);
+
+        addmonsterdrop(Duck,        GingerBreadMan,  360);
+        addmonsterdrop(WaterFairy,  GingerBreadMan, 1000);
+
+
+        // Change maps?
+        addmapmask "009-1", MASK_CHRISTMAS;
+        addmapmask "017-2", MASK_CHRISTMAS;
+        addmapmask "017-2-1", MASK_CHRISTMAS;
+        addmapmask "017-3", MASK_CHRISTMAS;
+
+        // Enable event
+        set $EVENT$, "Christmas";
+        logmes "Enabled CHRISTMAS event.", LOGMES_ATCOMMAND;
+        return;
+    }
+    //MASK_CHRISTMAS
+
 function	script	GlobalEventMenu	{
 
     function rateManagement {
@@ -45,10 +79,6 @@ function	script	GlobalEventMenu	{
     }
 
     function sEaster {
-        // Delete all GoldenEasteregg and SilverEasteregg from every player
-        // WARNING, possibly dangerous.
-        DelItemFromEveryPlayer(GoldenEasteregg);
-        DelItemFromEveryPlayer(GoldenEasteregg);
 
         // Enable event
         set $EVENT$, "Easter";
@@ -56,25 +86,17 @@ function	script	GlobalEventMenu	{
         return;
     }
 
-    function sChristmas {
-        // Delete all Christmas stuff?
+    // WARNING, possibly dangerous.
+    function sClear {
+        // Delete all Easter Stuff from every player
         DelItemFromEveryPlayer(GoldenEasteregg);
         DelItemFromEveryPlayer(GoldenEasteregg);
 
-        // Add drops?
-
-        // Change maps?
-        addmapmask "009-1", MASK_CHRISTMAS;
-        addmapmask "017-2", MASK_CHRISTMAS;
-        addmapmask "017-2-1", MASK_CHRISTMAS;
-        addmapmask "017-3", MASK_CHRISTMAS;
-
-        // Enable event
-        set $EVENT$, "Christmas";
-        logmes "Enabled CHRISTMAS event.", LOGMES_ATCOMMAND;
-        return;
+        // Delete all Christmas stuff
+        DelItemFromEveryPlayer(ClosedChristmasBox);
+        DelItemFromEveryPlayer(OpenedChristmasBox);
     }
-    //MASK_CHRISTMAS
+
 
 
 
@@ -101,10 +123,11 @@ function	script	GlobalEventMenu	{
             l("Disable event"), -,
             l("Enable Easter"), -,
             l("Enable Worker's Day"), -,
+            l("Enable Christmas"), -,
             l("Reset Kill Saulc Event (Monthly)"), -;
 
         switch (@menu) {
-            case 1: set $EVENT$, "";$REFERRAL_ENABLED=0; logmes "Disabled events.", LOGMES_ATCOMMAND;
+            case 1: set $EVENT$, ""; sClear(); logmes "Disabled events.", LOGMES_ATCOMMAND;
                 break;
             case 2: sEaster(); break;
             case 3:
@@ -115,7 +138,8 @@ function	script	GlobalEventMenu	{
                 debugmes "Snakes are now dropping Pearls.";
                */
                 break;
-            case 4: DelItemFromEveryPlayer(MurdererCrown); break;
+            case 4: sChristmas(); break;
+            case 5: DelItemFromEveryPlayer(MurdererCrown); break;
         }
 
         return;
diff --git a/npc/functions/seasons.txt b/npc/functions/seasons.txt
index 5f7e02e25..030581417 100644
--- a/npc/functions/seasons.txt
+++ b/npc/functions/seasons.txt
@@ -78,6 +78,11 @@ function	script	SeasonReload	{
         donpcevent("#SeasonCore::OnAutumnEnd");
     }
 
+    // Non-season, but season-related
+    // Christmas have a special feature
+    if ($EVENT$ == "Christmas")
+        sChristmas();
+
     $@SEASON=season();
     return;
 }
-- 
cgit v1.2.3-70-g09d2