summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHello TMW <hello@themanaworld.org>2024-12-17 00:22:44 +0000
committerLed Mitz <smoothshifter@tuta.io>2024-12-17 00:22:44 +0000
commitf67c3300144dda53711fb491f2027e0ffdf0de17 (patch)
tree7eeb99e9b26ef3ddff46b045aa701c0cf22a8e6c
parentc7963afd9f5ce57d3524b56d9709afeb68311158 (diff)
downloadserverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.tar.gz
serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.tar.bz2
serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.tar.xz
serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.zip
This adds actual SuperSlime splitting on top of "spawns on mob kill"
Extras for spawns on mob kill - actual **slime splitting** fun is **here**. The following extra spawns are in effect (compared to already merged): Mob -> to what it decays GreenSuperSlime -> AngryGreenSlime (same as GreenSlimeMother split) YellowSuperSlime -> YellowSlime RedSuperSlime -> RedSlime BlueSuperSlime -> BlueSlime (fewer than former as they're powerful)
-rw-r--r--world/map/npc/functions/spawns_on_mobkill.txt33
1 files changed, 25 insertions, 8 deletions
diff --git a/world/map/npc/functions/spawns_on_mobkill.txt b/world/map/npc/functions/spawns_on_mobkill.txt
index 1a1d03e8..0d9596db 100644
--- a/world/map/npc/functions/spawns_on_mobkill.txt
+++ b/world/map/npc/functions/spawns_on_mobkill.txt
@@ -1,23 +1,39 @@
-// Spawns some mobs on death of some other mob. Say split slime -> few smaller ones
+// Mob splitting/spawn logic By Hello=)
+
+// Spawns some mobs on death of other mob. E.g. split BIG slime -> few smaller ones
// This function meant to be called with player RID attached (usually in OnMobKillEvent)
// Inputs: nothing, but expects @mobID, @mobX and @mobY set (usually by server)
// Return: nothing, but spawns few things.
-// TODO: Add few big slime mobs and "split" these (this needs big slime GFX and making mob).
function|script|spawns_on_mobkill
{
if (@mobID == SeaSlimeMother) goto L_SplitSea;
- if (@mobID == GreenSlimeMother) goto L_SplitGreen;
+ if ((@mobID == GreenSlimeMother) || (@mobID == GreenSuperSlime)) goto L_SplitGreen;
+ if (@mobID == YellowSuperSlime) goto L_SplitYellow;
+ if (@mobID == RedSuperSlime) goto L_SplitRed;
+ if (@mobID == BlueSuperSlime) goto L_SplitBlue;
if (@mobID == Tormenta) goto L_TorWitchDead;
- if (@mobID == Blanc1) goto L_Blanc1Dead;
if ((@mobID == Luvia) && (getmap() != "052-2")) goto L_LuvWitchDead; // Skip spawns if its Illia
+ if (@mobID == Blanc1) goto L_Blanc1Dead;
return; // Not mob of interest -> do nothing
L_SplitSea:
- void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngrySeaSlime, rand(8, 20));
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngrySeaSlime, rand(8, 16));
return;
L_SplitGreen:
- void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngryGreenSlime, rand(8, 20));
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngryGreenSlime, rand(8, 16));
+ return;
+
+L_SplitYellow:
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, YellowSlime, rand(6, 16));
+ return;
+
+L_SplitRed:
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, RedSlime, rand(6, 16));
+ return;
+
+L_SplitBlue:
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, BlueSlime, rand(3, 6));
return;
L_TorWitchDead:
@@ -27,8 +43,9 @@ L_TorWitchDead:
return;
L_LuvWitchDead:
- void call("spawn_mobs_around", getmap(), @mobX, @mobY, VoidBat, rand(6, 10));
- void call("spawn_mobs_around", getmap(), @mobX, @mobY, DemonicSpirit, rand(4, 8));
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, VoidBat, rand(7, 12));
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, DemonicSpirit, rand(5, 8));
+ void call("spawn_mobs_around", getmap(), @mobX, @mobY, UndeadWitch, 1);
return;
L_Blanc1Dead: