summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/006-1/crazyfefe.txt59
1 files changed, 31 insertions, 28 deletions
diff --git a/npc/006-1/crazyfefe.txt b/npc/006-1/crazyfefe.txt
index 86047d367..806d7fcd1 100644
--- a/npc/006-1/crazyfefe.txt
+++ b/npc/006-1/crazyfefe.txt
@@ -133,7 +133,10 @@ L_Exit:
-
+// Recalc difficulty
+OnSumLevel:
+ if (ispcdead()) end;
+ $@FEFE_DIFFICULTY+=BaseLevel; end;
// Check if we're ready for next wave. Otherwise, do this check again after 5 seconds.
L_CaveLogic:
@@ -151,6 +154,10 @@ L_CaveLogic:
goto L_CleanUp;
}
+ // Recalculate difficulty
+ $@FEFE_DIFFICULTY=0;
+ areatimer "006-1", 20, 20, 70, 60, 10, "Crazyfefe::OnSumLevel";
+
// reset timer
initnpctimer;
end;
@@ -160,6 +167,7 @@ L_NextRound:
$@FEFE_WAVE = $@FEFE_WAVE + 1;
// Prepare next round, and reward survivors
$@FEFE_CAVE_LEVEL = $@FEFE_CAVE_LEVEL + $@FEFE_CAVE_PLAYER_COUNT + rand(1,3) + $@FEFE_WAVE;
+ $@FEFE_DIFFICULTY+=$@FEFE_CAVE_PLAYER_COUNT+$@FEFE_WAVE;
areatimer "006-1", 20, 20, 70, 60, 10, "Crazyfefe::OnReward";
mapannounce "006-1", "The wave nÂș "+$@FEFE_WAVE+" is starting with " + $@FEFE_CAVE_PLAYER_COUNT + " player(s) left alive." , 0;
@@ -170,57 +178,52 @@ L_Summon:
.@amount=($@FEFE_CAVE_LEVEL/rand(4,6))+1;
freeloop(true);
for (.@i = 0; .@i < .@amount; ++.@i) {
- .@mid=rand(1,22);
+
.@monsterId=Piou;
- switch (.@mid) {
+ .@lv=min(1, $@FEFE_DIFFICULTY/10);
+
+ // Luck shall interfer with .@lv (up to +20 random levels)
+ // This prevents from excess of House Maggots, for example
+ .@lv+=any(0, 0, 0, 1, 1, 2);
+
+ switch (.@lv) {
case 1:
- .@monsterId = CaveMaggot ; break;
case 2:
- //.@monsterId = Wolvern ; break;
- .@monsterId = FallenGuard2 ; break;
+ .@monsterId = any(HouseMaggot, SlimeBlast) ; break;
case 3:
- .@monsterId = DarkLizard ; break;
case 4:
- .@monsterId = MagicGoblin ; break;
+ //.@monsterId = Wolvern ; break;
+ .@monsterId = any(AngryScorpion, CaveMaggot, MagicGoblin, ViciousSquirrel, AngryBat) ; break;
case 5:
- .@monsterId = Bandit ; break;
case 6:
- .@monsterId = GreenSlime ; break;
+ .@monsterId = any(AngryBat, RedSlime, AngryRedScorpion, DesertBandit, Bandit, Sarracenus, VampireBat, Skeleton, GreenSlime) ; break;
case 7:
- .@monsterId = LavaSlime ; break;
case 8:
- .@monsterId = Snake ; break;
+ .@monsterId = any(GreenSlime, LavaSlime, Bluepar, RedMushroom, CandiedSlime, RobinBandit, AngryYellowSlime, OldSnake, GrassSnake, BlueSlime) ; break;
case 9:
- .@monsterId = DesertBandit ; break;
case 10:
- .@monsterId = Sarracenus ; break;
+ .@monsterId = any(BlueSlime, SaxsoGhost, Snake, BlackSlime, Wolvern, FireSkull, DarkLizard, BlackScorpion) ; break;
case 11:
- .@monsterId = AngryRedScorpion ; break;
case 12:
- .@monsterId = BlackScorpion ; break;
+ .@monsterId = any(BlackScorpion, DustRifle, DustGatling, DustRevolver) ; break;
case 13:
- .@monsterId = FallenGuard1 ; break;
case 14:
- .@monsterId = Yeti ; break;
+ .@monsterId = any(DustRifle, DustGatling, DustRevolver, MountainSnake, Yeti, FallenGuard1, FallenGuard2) ; break;
case 15:
- .@monsterId = BlackSlime ; break;
- //.@monsterId = JackO ; break;
case 16:
- .@monsterId = RobinBandit ; break;
+ .@monsterId = any(FallenGuard1, FallenGuard2, BanditLord, Yeti, WickedMushroom) ; break;
case 17:
- .@monsterId = CandiedSlime ; break;
case 18:
- .@monsterId = BlackMamba ; break;
+ .@monsterId = any(Forain, GreenDragon, Michel) ; break;
case 19:
- .@monsterId = WickedMushroom ; break;
case 20:
- .@monsterId = BlackSlime ; break;
- case 21:
- .@monsterId = RedMushroom ; break;
+ .@monsterId = any(FafiDragon, BlackMamba, JackO, Terranite) ; break;
default:
- .@monsterId = AngryScorpion ; break;
+ .@monsterId = any(Tipiu, GiantMutatedBat, Terranite, Reaper) ; break;
}
areamonster "006-1", 20, 20, 70, 60, strmobinfo(1, .@monsterId), .@monsterId, 1, "Crazyfefe::OnPetDeath";
+ // We must lower difficulty according to summoned monster. Only 80% is lowered.
+ $@FEFE_DIFFICULTY-=min(1, (.@lv-10)*8);
}
freeloop(false);
initnpctimer;