HT spawn sequence + Banner length
Improved the Horntail spawn sequence to better fit the end of the animation with the HT parts assembly. Thanks to Arnah and Zenns. Improved the usage of visual space by the "hint banners" throughout the source.
This commit is contained in:
@@ -84,6 +84,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
private Map<Pair<Integer, Integer>, Integer> skillsUsed = new HashMap<>();
|
||||
private List<Integer> stolenItems = new ArrayList<>();
|
||||
private int team;
|
||||
private int parentMobOid = 0;
|
||||
private final HashMap<Integer, AtomicInteger> takenDamage = new HashMap<>();
|
||||
|
||||
private Lock externalLock = new MonitoredReentrantLock(MonitoredLockType.MOB_EXT);
|
||||
@@ -128,6 +129,14 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
public void setMap(MapleMap map) {
|
||||
this.map = map;
|
||||
}
|
||||
|
||||
public int getParentMobOid() {
|
||||
return parentMobOid;
|
||||
}
|
||||
|
||||
public void setParentMobOid(int parentMobId) {
|
||||
this.parentMobOid = parentMobId;
|
||||
}
|
||||
|
||||
public int getHp() {
|
||||
return hp.get();
|
||||
@@ -497,6 +506,9 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
for (Integer mid : toSpawn) {
|
||||
final MapleMonster mob = MapleLifeFactory.getMonster(mid);
|
||||
mob.setPosition(getPosition());
|
||||
mob.setFh(getFh());
|
||||
mob.setParentMobOid(getObjectId());
|
||||
|
||||
if (dropsDisabled()) {
|
||||
mob.disableDrops();
|
||||
}
|
||||
|
||||
@@ -3534,50 +3534,48 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
public void spawnHorntailOnGroundBelow(final Point targetPoint) { // ayy lmao
|
||||
spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8810026), targetPoint);
|
||||
TimerManager.getInstance().schedule(new Runnable() {
|
||||
MapleMonster htIntro = MapleLifeFactory.getMonster(8810026);
|
||||
spawnMonsterOnGroundBelow(htIntro, targetPoint);
|
||||
|
||||
final MapleMonster ht = MapleLifeFactory.getMonster(8810018);
|
||||
ht.setParentMobOid(htIntro.getObjectId());
|
||||
ht.addListener(new MonsterListener() {
|
||||
@Override
|
||||
public void run() {
|
||||
final MapleMonster ht = MapleLifeFactory.getMonster(8810018);
|
||||
ht.addListener(new MonsterListener() {
|
||||
@Override
|
||||
public void monsterKilled(int aniTime) {}
|
||||
public void monsterKilled(int aniTime) {}
|
||||
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
ht.addHp(trueDmg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void monsterHealed(int trueHeal) {
|
||||
ht.addHp(-trueHeal);
|
||||
}
|
||||
});
|
||||
spawnMonsterOnGroundBelow(ht, targetPoint);
|
||||
|
||||
for (int x = 8810002; x <= 8810009; x++) {
|
||||
MapleMonster m = MapleLifeFactory.getMonster(x);
|
||||
|
||||
m.addListener(new MonsterListener() {
|
||||
@Override
|
||||
public void monsterKilled(int aniTime) {}
|
||||
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
ht.applyAndGetHpDamage(trueDmg, true);
|
||||
ht.broadcastMobHpBar(from);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void monsterHealed(int trueHeal) {
|
||||
ht.addHp(trueHeal);
|
||||
}
|
||||
});
|
||||
|
||||
spawnMonsterOnGroundBelow(m, targetPoint);
|
||||
}
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
ht.addHp(trueDmg);
|
||||
}
|
||||
|
||||
}, 5 * 1000);
|
||||
@Override
|
||||
public void monsterHealed(int trueHeal) {
|
||||
ht.addHp(-trueHeal);
|
||||
}
|
||||
});
|
||||
spawnMonsterOnGroundBelow(ht, targetPoint);
|
||||
|
||||
for (int x = 8810002; x <= 8810009; x++) {
|
||||
MapleMonster m = MapleLifeFactory.getMonster(x);
|
||||
m.setParentMobOid(htIntro.getObjectId());
|
||||
|
||||
m.addListener(new MonsterListener() {
|
||||
@Override
|
||||
public void monsterKilled(int aniTime) {}
|
||||
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
ht.applyAndGetHpDamage(trueDmg, true);
|
||||
ht.broadcastMobHpBar(from);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void monsterHealed(int trueHeal) {
|
||||
ht.addHp(trueHeal);
|
||||
}
|
||||
});
|
||||
|
||||
spawnMonsterOnGroundBelow(m, targetPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user