diff --git a/scripts/reactor/5511000.js b/scripts/reactor/5511000.js index 748aabe1aa..810e44d48c 100644 --- a/scripts/reactor/5511000.js +++ b/scripts/reactor/5511000.js @@ -2,14 +2,9 @@ * 5511000.js: Summons Targa. */ -function summonBoss() { - rm.spawnMonster(9420542,-527,637); - rm.changeMusic("Bgm09/TimeAttack"); - rm.mapMessage(6, "Beware! The furious Targa has shown himself!"); -} - function act() { - if (rm.getReactor().getMap().getMonsterById(9420542) == null) { - rm.schedule("summonBoss", 3200); + const targaMobId = 9420542; + if (rm.getReactor().getMap().getMonsterById(targaMobId) == null) { + rm.summonBossDelayed(targaMobId, 3200, -527, 637, "Bgm09/TimeAttack", "Beware! The furious Targa has shown himself!"); } } \ No newline at end of file diff --git a/scripts/reactor/5511001.js b/scripts/reactor/5511001.js index 8dc042274d..e4dc2313ac 100644 --- a/scripts/reactor/5511001.js +++ b/scripts/reactor/5511001.js @@ -2,14 +2,9 @@ * 5511001.js: Summons Scarlion. */ -function summonBoss() { - rm.spawnMonster(9420547,-238,636); - rm.changeMusic("Bgm09/TimeAttack"); - rm.mapMessage(6, "Beware! The furious Scarlion has shown himself!"); -} - function act() { - if (rm.getReactor().getMap().getMonsterById(9420547) == null) { - rm.schedule("summonBoss", 3200); - } + const scarlionMobId = 9420547; + if (rm.getReactor().getMap().getMonsterById(scarlionMobId) == null) { + rm.summonBossDelayed(scarlionMobId, 3200, -238, 636, "Bgm09/TimeAttack", "Beware! The furious Scarlion has shown himself!"); + } } \ No newline at end of file diff --git a/src/main/java/scripting/reactor/ReactorActionManager.java b/src/main/java/scripting/reactor/ReactorActionManager.java index 60faa1afea..b5246a69af 100644 --- a/src/main/java/scripting/reactor/ReactorActionManager.java +++ b/src/main/java/scripting/reactor/ReactorActionManager.java @@ -29,8 +29,6 @@ import client.inventory.MapleInventoryType; import config.YamlConfig; import constants.inventory.ItemConstants; import scripting.AbstractPlayerInteraction; -import scripting.event.EventInstanceManager; -import scripting.event.EventManager; import server.MapleItemInformationProvider; import server.TimerManager; import server.life.MapleLifeFactory; @@ -44,14 +42,11 @@ import server.partyquest.MapleCarnivalFactory.MCSkill; import tools.MaplePacketCreator; import javax.script.Invocable; -import javax.script.ScriptException; import java.awt.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.ScheduledFuture; -import java.util.logging.Level; -import java.util.logging.Logger; /** * @author Lerk @@ -311,29 +306,21 @@ public class ReactorActionManager extends AbstractPlayerInteraction { public void spawnFakeMonster(int id) { reactor.getMap().spawnFakeMonsterOnGroundBelow(MapleLifeFactory.getMonster(id), getPosition()); } - - public ScheduledFuture schedule(String methodName, long delay) { - return schedule(methodName, null, delay); + + /** + * Used for Targa and Scarlion + */ + public void summonBossDelayed(final int mobId, final int delayMs, final int x, final int y, final String bgm, + final String summonMessage) { + TimerManager.getInstance().schedule(() -> { + summonBoss(mobId, x, y, bgm, summonMessage); + }, delayMs); } - public ScheduledFuture schedule(final String methodName, final EventInstanceManager eim, long delay) { - return TimerManager.getInstance().schedule(() -> { - try { - iv.invokeFunction(methodName, eim); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } - }, delay); - } - - public ScheduledFuture scheduleAtTimestamp(final String methodName, long timestamp) { - return TimerManager.getInstance().scheduleAtTimestamp(() -> { - try { - iv.invokeFunction(methodName, (Object) null); - } catch (ScriptException | NoSuchMethodException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } - }, timestamp); + private void summonBoss(int mobId, int x, int y, String bgmName, String summonMessage) { + spawnMonster(mobId, x, y); + changeMusic(bgmName); + mapMessage(6, summonMessage); } public void dispelAllMonsters(int num, int team) { //dispels all mobs, cpq diff --git a/src/main/java/scripting/reactor/ReactorScriptManager.java b/src/main/java/scripting/reactor/ReactorScriptManager.java index 7a072d50af..e380b64036 100644 --- a/src/main/java/scripting/reactor/ReactorScriptManager.java +++ b/src/main/java/scripting/reactor/ReactorScriptManager.java @@ -23,7 +23,6 @@ package scripting.reactor; import client.MapleClient; import scripting.AbstractScriptManager; -import scripting.SynchronizedInvocable; import server.maps.MapleReactor; import server.maps.ReactorDropEntry; import tools.DatabaseConnection; @@ -136,7 +135,7 @@ public class ReactorScriptManager extends AbstractScriptManager { return null; } - Invocable iv = SynchronizedInvocable.of((Invocable) engine); + Invocable iv = (Invocable) engine; ReactorActionManager rm = new ReactorActionManager(c, reactor, iv); engine.put("rm", rm);