From 324fe48df2c32bca4484784e24b4beb82ad6863a Mon Sep 17 00:00:00 2001 From: P0nk Date: Thu, 9 Sep 2021 21:56:15 +0200 Subject: [PATCH] Rename and clean up MapleFitness --- src/main/java/client/Character.java | 8 +- src/main/java/server/events/gm/Fitness.java | 128 ++++++++++++++++++ .../java/server/events/gm/MapleFitness.java | 128 ------------------ src/main/java/server/maps/MapleMap.java | 2 +- 4 files changed, 133 insertions(+), 133 deletions(-) create mode 100644 src/main/java/server/events/gm/Fitness.java delete mode 100644 src/main/java/server/events/gm/MapleFitness.java diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index 52ab7f1402..13ec10d5f5 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -61,7 +61,7 @@ import server.*; import server.MapleItemInformationProvider.ScriptedItem; import server.events.MapleEvents; import server.events.RescueGaga; -import server.events.gm.MapleFitness; +import server.events.gm.Fitness; import server.events.gm.MapleOla; import server.life.MapleMonster; import server.life.MaplePlayerNPC; @@ -11185,7 +11185,7 @@ public class Character extends AbstractCharacterObject { //EVENTS private byte team = 0; - private MapleFitness fitness; + private Fitness fitness; private MapleOla ola; private long snowballattack; @@ -11205,11 +11205,11 @@ public class Character extends AbstractCharacterObject { this.ola = ola; } - public MapleFitness getFitness() { + public Fitness getFitness() { return fitness; } - public void setFitness(MapleFitness fit) { + public void setFitness(Fitness fit) { this.fitness = fit; } diff --git a/src/main/java/server/events/gm/Fitness.java b/src/main/java/server/events/gm/Fitness.java new file mode 100644 index 0000000000..31bf84486d --- /dev/null +++ b/src/main/java/server/events/gm/Fitness.java @@ -0,0 +1,128 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +package server.events.gm; + +import client.Character; +import server.TimerManager; +import tools.PacketCreator; + +import java.util.concurrent.ScheduledFuture; + +/** + * @author kevintjuh93 + */ +public class Fitness { + private final Character chr; + private long time = 0; + private long timeStarted = 0; + private ScheduledFuture schedule = null; + private ScheduledFuture schedulemsg = null; + + public Fitness(final Character chr) { + this.chr = chr; + this.schedule = TimerManager.getInstance().schedule(() -> { + if (chr.getMapId() >= 109040000 && chr.getMapId() <= 109040004) { + chr.changeMap(chr.getMap().getReturnMap()); + } + }, 900000); + } + + public void startFitness() { + chr.getMap().startEvent(); + chr.getClient().sendPacket(PacketCreator.getClock(900)); + this.timeStarted = System.currentTimeMillis(); + this.time = 900000; + checkAndMessage(); + + chr.getMap().getPortal("join00").setPortalStatus(true); + chr.sendPacket(PacketCreator.serverNotice(0, "The portal has now opened. Press the up arrow key at the portal to enter.")); + } + + public boolean isTimerStarted() { + return time > 0 && timeStarted > 0; + } + + public long getTime() { + return time; + } + + public void resetTimes() { + this.time = 0; + this.timeStarted = 0; + schedule.cancel(false); + schedulemsg.cancel(false); + } + + public long getTimeLeft() { + return time - (System.currentTimeMillis() - timeStarted); + } + + public void checkAndMessage() { + this.schedulemsg = TimerManager.getInstance().register(() -> { + if (chr.getFitness() == null) { + resetTimes(); + } + if (chr.getMap().getId() >= 109040000 && chr.getMap().getId() <= 109040004) { + if (getTimeLeft() > 9000 && getTimeLeft() < 11000) { + chr.sendPacket(PacketCreator.serverNotice(0, "You have 10 sec left. Those of you unable to beat the game, we hope you beat it next time! Great job everyone!! See you later~")); + } else if (getTimeLeft() > 99000 && getTimeLeft() < 101000) { + chr.sendPacket(PacketCreator.serverNotice(0, "Alright, you don't have much time remaining. Please hurry up a little!")); + } else if (getTimeLeft() > 239000 && getTimeLeft() < 241000) { + chr.sendPacket(PacketCreator.serverNotice(0, "The 4th stage is the last one for [The Maple Physical Fitness Test]. Please don't give up at the last minute and try your best. The reward is waiting for you at the very top!")); + } else if (getTimeLeft() > 299000 && getTimeLeft() < 301000) { + chr.sendPacket(PacketCreator.serverNotice(0, "The 3rd stage offers traps where you may see them, but you won't be able to step on them. Please be careful of them as you make your way up.")); + } else if (getTimeLeft() > 359000 && getTimeLeft() < 361000) { + chr.sendPacket(PacketCreator.serverNotice(0, "For those who have heavy lags, please make sure to move slowly to avoid falling all the way down because of lags.")); + } else if (getTimeLeft() > 499000 && getTimeLeft() < 501000) { + chr.sendPacket(PacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. If you're running out of HP, either take a potion or recover HP first before moving on.")); + } else if (getTimeLeft() > 599000 && getTimeLeft() < 601000) { + chr.sendPacket(PacketCreator.serverNotice(0, "The most important thing you'll need to know to avoid the bananas thrown by the monkeys is *Timing* Timing is everything in this!")); + } else if (getTimeLeft() > 659000 && getTimeLeft() < 661000) { + chr.sendPacket(PacketCreator.serverNotice(0, "The 2nd stage offers monkeys throwing bananas. Please make sure to avoid them by moving along at just the right timing.")); + } else if (getTimeLeft() > 699000 && getTimeLeft() < 701000) { + chr.sendPacket(PacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. You still have plenty of time left, so either take a potion or recover HP first before moving on.")); + } else if (getTimeLeft() > 779000 && getTimeLeft() < 781000) { + chr.sendPacket(PacketCreator.serverNotice(0, "Everyone that clears [The Maple Physical Fitness Test] on time will be given an item, regardless of the order of finish, so just relax, take your time, and clear the 4 stages.")); + } else if (getTimeLeft() > 839000 && getTimeLeft() < 841000) { + chr.sendPacket(PacketCreator.serverNotice(0, "There may be a heavy lag due to many users at stage 1 all at once. It won't be difficult, so please make sure not to fall down because of heavy lag.")); + } else if (getTimeLeft() > 869000 && getTimeLeft() < 871000) { + chr.sendPacket(PacketCreator.serverNotice(0, "[MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that.")); + } + } else { + resetTimes(); + } + }, 5000, 29500); + } + // 14:30 [Notice][MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that. + // 14:00 [Notice]There may be a heavy lag due to many users at stage 1 all at once. It won't be difficult, so please make sure not to fall down because of heavy lag. + // 13:00 [Notice]Everyone that clears [The Maple Physical Fitness Test] on time will be given an item, regardless of the order of finish, so just relax, take your time, and clear the 4 stages. + // 11:40 [Notice]Please remember that if you die during the event, you'll be eliminated from the game. You still have plenty of time left, so either take a potion or recover HP first before moving on. + // 11:00 [Notice]The 2nd stage offers monkeys throwing bananas. Please make sure to avoid them by moving along at just the right timing. + // 10:00 [Notice]The most important thing you'll need to know to avoid the bananas thrown by the monkeys is *Timing* Timing is everything in this! + // 8:20 [Notice]Please remember that if you die during the event, you'll be eliminated from the game. If you're running out of HP, either take a potion or recover HP first before moving on. + // 6:00 [Notice]For those who have heavy lags, please make sure to move slowly to avoid falling all the way down because of lags. + // 5:00 [Notice]The 3rd stage offers traps where you may see them, but you won't be able to step on them. Please be careful of them as you make your way up. + // 4:00 [Notice]The 4th stage is the last one for [The Maple Physical Fitness Test]. Please don't give up at the last minute and try your best. The reward is waiting for you at the very top! + // 1:40 [Notice]Alright, you don't have much time remaining. Please hurry up a little! + // 0:10 [Notice]You have 10 sec left. Those of you unable to beat the game, we hope you beat it next time! Great job everyone!! See you later~ +} diff --git a/src/main/java/server/events/gm/MapleFitness.java b/src/main/java/server/events/gm/MapleFitness.java deleted file mode 100644 index db4785b17a..0000000000 --- a/src/main/java/server/events/gm/MapleFitness.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - This file is part of the OdinMS Maple Story Server - Copyright (C) 2008 Patrick Huy - Matthias Butz - Jan Christian Meyer - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as - published by the Free Software Foundation version 3 as published by - the Free Software Foundation. You may not use, modify or distribute - this program under any other version of the GNU Affero General Public - License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package server.events.gm; - -import client.Character; -import server.TimerManager; -import tools.PacketCreator; - -import java.util.concurrent.ScheduledFuture; - -/** - * - * @author kevintjuh93 - */ -public class MapleFitness { - private Character chr; - private long time = 0; - private long timeStarted = 0; - private ScheduledFuture schedule = null; - private ScheduledFuture schedulemsg = null; - - public MapleFitness(final Character chr) { - this.chr = chr; - this.schedule = TimerManager.getInstance().schedule(() -> { - if (chr.getMapId() >= 109040000 && chr.getMapId() <= 109040004) - chr.changeMap(chr.getMap().getReturnMap()); - }, 900000); - } - - public void startFitness() { - chr.getMap().startEvent(); - chr.getClient().sendPacket(PacketCreator.getClock(900)); - this.timeStarted = System.currentTimeMillis(); - this.time = 900000; - checkAndMessage(); - - chr.getMap().getPortal("join00").setPortalStatus(true); - chr.sendPacket(PacketCreator.serverNotice(0, "The portal has now opened. Press the up arrow key at the portal to enter.")); - } - - public boolean isTimerStarted() { - return time > 0 && timeStarted > 0; - } - - public long getTime() { - return time; - } - - public void resetTimes() { - this.time = 0; - this.timeStarted = 0; - schedule.cancel(false); - schedulemsg.cancel(false); - } - - public long getTimeLeft() { - return time - (System.currentTimeMillis() - timeStarted); - } - - public void checkAndMessage() { - this.schedulemsg = TimerManager.getInstance().register(() -> { - if (chr.getFitness() == null) { - resetTimes(); - } - if (chr.getMap().getId() >= 109040000 && chr.getMap().getId() <= 109040004) { - if (getTimeLeft() > 9000 && getTimeLeft() < 11000) { - chr.sendPacket(PacketCreator.serverNotice(0, "You have 10 sec left. Those of you unable to beat the game, we hope you beat it next time! Great job everyone!! See you later~")); - } else if (getTimeLeft() > 99000 && getTimeLeft() < 101000) { - chr.sendPacket(PacketCreator.serverNotice(0, "Alright, you don't have much time remaining. Please hurry up a little!")); - } else if (getTimeLeft() > 239000 && getTimeLeft() < 241000) { - chr.sendPacket(PacketCreator.serverNotice(0, "The 4th stage is the last one for [The Maple Physical Fitness Test]. Please don't give up at the last minute and try your best. The reward is waiting for you at the very top!")); - } else if (getTimeLeft() > 299000 && getTimeLeft() < 301000) { - chr.sendPacket(PacketCreator.serverNotice(0, "The 3rd stage offers traps where you may see them, but you won't be able to step on them. Please be careful of them as you make your way up.")); - } else if (getTimeLeft() > 359000 && getTimeLeft() < 361000) { - chr.sendPacket(PacketCreator.serverNotice(0, "For those who have heavy lags, please make sure to move slowly to avoid falling all the way down because of lags.")); - } else if (getTimeLeft() > 499000 && getTimeLeft() < 501000) { - chr.sendPacket(PacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. If you're running out of HP, either take a potion or recover HP first before moving on.")); - } else if (getTimeLeft() > 599000 && getTimeLeft() < 601000) { - chr.sendPacket(PacketCreator.serverNotice(0, "The most important thing you'll need to know to avoid the bananas thrown by the monkeys is *Timing* Timing is everything in this!")); - } else if (getTimeLeft() > 659000 && getTimeLeft() < 661000) { - chr.sendPacket(PacketCreator.serverNotice(0, "The 2nd stage offers monkeys throwing bananas. Please make sure to avoid them by moving along at just the right timing.")); - } else if (getTimeLeft() > 699000 && getTimeLeft() < 701000) { - chr.sendPacket(PacketCreator.serverNotice(0, "Please remember that if you die during the event, you'll be eliminated from the game. You still have plenty of time left, so either take a potion or recover HP first before moving on.")); - } else if (getTimeLeft() > 779000 && getTimeLeft() < 781000) { - chr.sendPacket(PacketCreator.serverNotice(0, "Everyone that clears [The Maple Physical Fitness Test] on time will be given an item, regardless of the order of finish, so just relax, take your time, and clear the 4 stages.")); - } else if (getTimeLeft() > 839000 && getTimeLeft() < 841000) { - chr.sendPacket(PacketCreator.serverNotice(0, "There may be a heavy lag due to many users at stage 1 all at once. It won't be difficult, so please make sure not to fall down because of heavy lag.")); - } else if (getTimeLeft() > 869000 && getTimeLeft() < 871000) { - chr.sendPacket(PacketCreator.serverNotice(0, "[MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that.")); - } - } else { - resetTimes(); - } - }, 5000, 29500); - } - // 14:30 [Notice][MapleStory Physical Fitness Test] consists of 4 stages, and if you happen to die during the game, you'll be eliminated from the game, so please be careful of that. - // 14:00 [Notice]There may be a heavy lag due to many users at stage 1 all at once. It won't be difficult, so please make sure not to fall down because of heavy lag. - // 13:00 [Notice]Everyone that clears [The Maple Physical Fitness Test] on time will be given an item, regardless of the order of finish, so just relax, take your time, and clear the 4 stages. - // 11:40 [Notice]Please remember that if you die during the event, you'll be eliminated from the game. You still have plenty of time left, so either take a potion or recover HP first before moving on. - // 11:00 [Notice]The 2nd stage offers monkeys throwing bananas. Please make sure to avoid them by moving along at just the right timing. - // 10:00 [Notice]The most important thing you'll need to know to avoid the bananas thrown by the monkeys is *Timing* Timing is everything in this! - // 8:20 [Notice]Please remember that if you die during the event, you'll be eliminated from the game. If you're running out of HP, either take a potion or recover HP first before moving on. - // 6:00 [Notice]For those who have heavy lags, please make sure to move slowly to avoid falling all the way down because of lags. - // 5:00 [Notice]The 3rd stage offers traps where you may see them, but you won't be able to step on them. Please be careful of them as you make your way up. - // 4:00 [Notice]The 4th stage is the last one for [The Maple Physical Fitness Test]. Please don't give up at the last minute and try your best. The reward is waiting for you at the very top! - // 1:40 [Notice]Alright, you don't have much time remaining. Please hurry up a little! - // 0:10 [Notice]You have 10 sec left. Those of you unable to beat the game, we hope you beat it next time! Great job everyone!! See you later~ -} diff --git a/src/main/java/server/maps/MapleMap.java b/src/main/java/server/maps/MapleMap.java index 7157bc253c..056d088066 100644 --- a/src/main/java/server/maps/MapleMap.java +++ b/src/main/java/server/maps/MapleMap.java @@ -3894,7 +3894,7 @@ public class MapleMap { setCoconut(new Coconut(this)); coconut.startEvent(); } else if (this.mapid == 109040000) { - chr.setFitness(new MapleFitness(chr)); + chr.setFitness(new Fitness(chr)); chr.getFitness().startFitness(); } else if (this.mapid == 109030101 || this.mapid == 109030201 || this.mapid == 109030301 || this.mapid == 109030401) { chr.setOla(new MapleOla(chr));