Rename and clean up MapleSnowball
This commit is contained in:
@@ -25,7 +25,7 @@ import client.Character;
|
|||||||
import client.Client;
|
import client.Client;
|
||||||
import net.AbstractPacketHandler;
|
import net.AbstractPacketHandler;
|
||||||
import net.packet.InPacket;
|
import net.packet.InPacket;
|
||||||
import server.events.gm.MapleSnowball;
|
import server.events.gm.Snowball;
|
||||||
import server.maps.MapleMap;
|
import server.maps.MapleMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,8 +38,8 @@ public final class SnowballHandler extends AbstractPacketHandler {
|
|||||||
//D3 00 02 00 00 A5 01
|
//D3 00 02 00 00 A5 01
|
||||||
Character chr = c.getPlayer();
|
Character chr = c.getPlayer();
|
||||||
MapleMap map = chr.getMap();
|
MapleMap map = chr.getMap();
|
||||||
final MapleSnowball snowball = map.getSnowball(chr.getTeam());
|
final Snowball snowball = map.getSnowball(chr.getTeam());
|
||||||
final MapleSnowball othersnowball = map.getSnowball(chr.getTeam() == 0 ? (byte) 1 : 0);
|
final Snowball othersnowball = map.getSnowball(chr.getTeam() == 0 ? (byte) 1 : 0);
|
||||||
int what = p.readByte();
|
int what = p.readByte();
|
||||||
//slea.skip(4);
|
//slea.skip(4);
|
||||||
|
|
||||||
|
|||||||
@@ -30,31 +30,33 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author kevintjuh93
|
* @author kevintjuh93
|
||||||
*/
|
*/
|
||||||
public class MapleSnowball {
|
public class Snowball {
|
||||||
private MapleMap map;
|
private final MapleMap map;
|
||||||
private int position = 0;
|
private int position = 0;
|
||||||
private int hits = 3;
|
private int hits = 3;
|
||||||
private int snowmanhp = 1000;
|
private int snowmanhp = 1000;
|
||||||
private boolean hittable = false;
|
private boolean hittable = false;
|
||||||
private int team;
|
private final int team;
|
||||||
private boolean winner = false;
|
private boolean winner = false;
|
||||||
List<Character> characters = new LinkedList<>();
|
List<Character> characters = new LinkedList<>();
|
||||||
|
|
||||||
public MapleSnowball(int team, MapleMap map) {
|
public Snowball(int team, MapleMap map) {
|
||||||
this.map = map;
|
this.map = map;
|
||||||
this.team = team;
|
this.team = team;
|
||||||
|
|
||||||
for (Character chr : map.getCharacters()) {
|
for (Character chr : map.getCharacters()) {
|
||||||
if (chr.getTeam() == team)
|
if (chr.getTeam() == team) {
|
||||||
characters.add(chr);
|
characters.add(chr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startEvent() {
|
public void startEvent() {
|
||||||
if (hittable == true) return;
|
if (hittable == true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (Character chr : characters) {
|
for (Character chr : characters) {
|
||||||
if (chr != null) {
|
if (chr != null) {
|
||||||
@@ -66,14 +68,16 @@ public class MapleSnowball {
|
|||||||
TimerManager.getInstance().schedule(() -> {
|
TimerManager.getInstance().schedule(() -> {
|
||||||
if (map.getSnowball(team).getPosition() > map.getSnowball(team == 0 ? 1 : 0).getPosition()) {
|
if (map.getSnowball(team).getPosition() > map.getSnowball(team == 0 ? 1 : 0).getPosition()) {
|
||||||
for (Character chr : characters) {
|
for (Character chr : characters) {
|
||||||
if (chr != null)
|
if (chr != null) {
|
||||||
chr.sendPacket(PacketCreator.rollSnowBall(false, 3, map.getSnowball(0), map.getSnowball(0)));
|
chr.sendPacket(PacketCreator.rollSnowBall(false, 3, map.getSnowball(0), map.getSnowball(0)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
winner = true;
|
winner = true;
|
||||||
} else if (map.getSnowball(team == 0 ? 1 : 0).getPosition() > map.getSnowball(team).getPosition()) {
|
} else if (map.getSnowball(team == 0 ? 1 : 0).getPosition() > map.getSnowball(team).getPosition()) {
|
||||||
for (Character chr : characters) {
|
for (Character chr : characters) {
|
||||||
if (chr != null)
|
if (chr != null) {
|
||||||
chr.sendPacket(PacketCreator.rollSnowBall(false, 4, map.getSnowball(0), map.getSnowball(0)));
|
chr.sendPacket(PacketCreator.rollSnowBall(false, 4, map.getSnowball(0), map.getSnowball(0)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
winner = true;
|
winner = true;
|
||||||
} //Else
|
} //Else
|
||||||
@@ -81,7 +85,7 @@ public class MapleSnowball {
|
|||||||
}, 600000);
|
}, 600000);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isHittable() {
|
public boolean isHittable() {
|
||||||
return hittable;
|
return hittable;
|
||||||
}
|
}
|
||||||
@@ -103,31 +107,34 @@ public class MapleSnowball {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void hit(int what, int damage) {
|
public void hit(int what, int damage) {
|
||||||
if (what < 2)
|
if (what < 2) {
|
||||||
if (damage > 0)
|
if (damage > 0) {
|
||||||
this.hits--;
|
this.hits--;
|
||||||
else {
|
} else {
|
||||||
if (this.snowmanhp - damage < 0) {
|
if (this.snowmanhp - damage < 0) {
|
||||||
this.snowmanhp = 0;
|
this.snowmanhp = 0;
|
||||||
|
|
||||||
TimerManager.getInstance().schedule(() -> {
|
TimerManager.getInstance().schedule(() -> {
|
||||||
setSnowmanHP(7500);
|
setSnowmanHP(7500);
|
||||||
message(5);
|
message(5);
|
||||||
}, 10000);
|
}, 10000);
|
||||||
} else
|
} else {
|
||||||
this.snowmanhp -= damage;
|
this.snowmanhp -= damage;
|
||||||
map.broadcastMessage(PacketCreator.rollSnowBall(false, 1, map.getSnowball(0), map.getSnowball(1)));
|
}
|
||||||
|
map.broadcastMessage(PacketCreator.rollSnowBall(false, 1, map.getSnowball(0), map.getSnowball(1)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.hits == 0) {
|
if (this.hits == 0) {
|
||||||
this.position += 1;
|
this.position += 1;
|
||||||
if (this.position == 45)
|
if (this.position == 45) {
|
||||||
map.getSnowball(team == 0 ? 1 : 0).message(1);
|
map.getSnowball(team == 0 ? 1 : 0).message(1);
|
||||||
else if (this.position == 290)
|
} else if (this.position == 290) {
|
||||||
map.getSnowball(team == 0 ? 1 : 0).message(2);
|
map.getSnowball(team == 0 ? 1 : 0).message(2);
|
||||||
else if (this.position == 560)
|
} else if (this.position == 560) {
|
||||||
map.getSnowball(team == 0 ? 1 : 0).message(3);
|
map.getSnowball(team == 0 ? 1 : 0).message(3);
|
||||||
|
}
|
||||||
|
|
||||||
this.hits = 3;
|
this.hits = 3;
|
||||||
map.broadcastMessage(PacketCreator.rollSnowBall(false, 0, map.getSnowball(0), map.getSnowball(1)));
|
map.broadcastMessage(PacketCreator.rollSnowBall(false, 0, map.getSnowball(0), map.getSnowball(1)));
|
||||||
map.broadcastMessage(PacketCreator.rollSnowBall(false, 1, map.getSnowball(0), map.getSnowball(1)));
|
map.broadcastMessage(PacketCreator.rollSnowBall(false, 1, map.getSnowball(0), map.getSnowball(1)));
|
||||||
@@ -137,17 +144,19 @@ public class MapleSnowball {
|
|||||||
|
|
||||||
public void message(int message) {
|
public void message(int message) {
|
||||||
for (Character chr : characters) {
|
for (Character chr : characters) {
|
||||||
if (chr != null)
|
if (chr != null) {
|
||||||
chr.sendPacket(PacketCreator.snowballMessage(team, message));
|
chr.sendPacket(PacketCreator.snowballMessage(team, message));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void warpOut() {
|
public void warpOut() {
|
||||||
TimerManager.getInstance().schedule(() -> {
|
TimerManager.getInstance().schedule(() -> {
|
||||||
if (winner == true)
|
if (winner == true) {
|
||||||
map.warpOutByTeam(team, 109050000);
|
map.warpOutByTeam(team, 109050000);
|
||||||
else
|
} else {
|
||||||
map.warpOutByTeam(team, 109050001);
|
map.warpOutByTeam(team, 109050001);
|
||||||
|
}
|
||||||
|
|
||||||
map.setSnowball(team, null);
|
map.setSnowball(team, null);
|
||||||
}, 10000);
|
}, 10000);
|
||||||
@@ -144,8 +144,8 @@ public class MapleMap {
|
|||||||
|
|
||||||
// events
|
// events
|
||||||
private boolean eventstarted = false, isMuted = false;
|
private boolean eventstarted = false, isMuted = false;
|
||||||
private MapleSnowball snowball0 = null;
|
private Snowball snowball0 = null;
|
||||||
private MapleSnowball snowball1 = null;
|
private Snowball snowball1 = null;
|
||||||
private Coconut coconut;
|
private Coconut coconut;
|
||||||
|
|
||||||
//CPQ
|
//CPQ
|
||||||
@@ -3842,7 +3842,7 @@ public class MapleMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BEGIN EVENTS
|
// BEGIN EVENTS
|
||||||
public void setSnowball(int team, MapleSnowball ball) {
|
public void setSnowball(int team, Snowball ball) {
|
||||||
switch (team) {
|
switch (team) {
|
||||||
case 0:
|
case 0:
|
||||||
this.snowball0 = ball;
|
this.snowball0 = ball;
|
||||||
@@ -3855,7 +3855,7 @@ public class MapleMap {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapleSnowball getSnowball(int team) {
|
public Snowball getSnowball(int team) {
|
||||||
switch (team) {
|
switch (team) {
|
||||||
case 0:
|
case 0:
|
||||||
return snowball0;
|
return snowball0;
|
||||||
@@ -3904,8 +3904,8 @@ public class MapleMap {
|
|||||||
getOx().sendQuestion();
|
getOx().sendQuestion();
|
||||||
setOxQuiz(true);
|
setOxQuiz(true);
|
||||||
} else if (this.mapid == 109060000 && getSnowball(chr.getTeam()) == null) {
|
} else if (this.mapid == 109060000 && getSnowball(chr.getTeam()) == null) {
|
||||||
setSnowball(0, new MapleSnowball(0, this));
|
setSnowball(0, new Snowball(0, this));
|
||||||
setSnowball(1, new MapleSnowball(1, this));
|
setSnowball(1, new Snowball(1, this));
|
||||||
getSnowball(chr.getTeam()).startEvent();
|
getSnowball(chr.getTeam()).startEvent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ import server.CashShop.CashItem;
|
|||||||
import server.CashShop.CashItemFactory;
|
import server.CashShop.CashItemFactory;
|
||||||
import server.CashShop.SpecialCashItem;
|
import server.CashShop.SpecialCashItem;
|
||||||
import server.*;
|
import server.*;
|
||||||
import server.events.gm.MapleSnowball;
|
import server.events.gm.Snowball;
|
||||||
import server.life.MapleMonster;
|
import server.life.MapleMonster;
|
||||||
import server.life.MapleNPC;
|
import server.life.MapleNPC;
|
||||||
import server.life.MaplePlayerNPC;
|
import server.life.MaplePlayerNPC;
|
||||||
@@ -6792,7 +6792,7 @@ public class PacketCreator {
|
|||||||
return OutPacket.create(SendOpcode.LEFT_KNOCK_BACK);
|
return OutPacket.create(SendOpcode.LEFT_KNOCK_BACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Packet rollSnowBall(boolean entermap, int state, MapleSnowball ball0, MapleSnowball ball1) {
|
public static Packet rollSnowBall(boolean entermap, int state, Snowball ball0, Snowball ball1) {
|
||||||
OutPacket p = OutPacket.create(SendOpcode.SNOWBALL_STATE);
|
OutPacket p = OutPacket.create(SendOpcode.SNOWBALL_STATE);
|
||||||
if (entermap) {
|
if (entermap) {
|
||||||
p.skip(21);
|
p.skip(21);
|
||||||
|
|||||||
Reference in New Issue
Block a user