Copy some files from Grasscutter-Quests

NOT completely finished, nor is it completely done. Protocol issues remain! (including lack of packet IDs)
This commit is contained in:
KingRainbow44
2023-04-01 18:06:30 -04:00
parent 262ee38ded
commit daa51e53b7
381 changed files with 10285 additions and 9150 deletions

View File

@@ -1,7 +1,7 @@
package emu.grasscutter.game.tower;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.excels.TowerLevelData;
import emu.grasscutter.data.excels.tower.TowerLevelData;
import emu.grasscutter.game.dungeons.DungeonSettleListener;
import emu.grasscutter.game.dungeons.TowerDungeonSettleListener;
import emu.grasscutter.game.player.BasePlayerManager;
@@ -12,7 +12,6 @@ import java.util.List;
import java.util.Map;
public class TowerManager extends BasePlayerManager {
private static final List<DungeonSettleListener> towerDungeonSettleListener =
List.of(new TowerDungeonSettleListener());
@@ -21,20 +20,20 @@ public class TowerManager extends BasePlayerManager {
}
public TowerData getTowerData() {
return getPlayer().getTowerData();
return this.getPlayer().getTowerData();
}
public int getCurrentFloorId() {
return getTowerData().currentFloorId;
return this.getTowerData().currentFloorId;
}
public int getCurrentLevelId() {
return getTowerData().currentLevelId + getTowerData().currentLevel;
return this.getTowerData().currentLevelId + this.getTowerData().currentLevel;
}
/** form 1-3 */
public int getCurrentLevel() {
return getTowerData().currentLevel + 1;
return this.getTowerData().currentLevel + 1;
}
public Map<Integer, TowerLevelRecord> getRecordMap() {
@@ -103,7 +102,7 @@ public class TowerManager extends BasePlayerManager {
}
public void notifyCurLevelRecordChangeWhenDone(int stars) {
Map<Integer, TowerLevelRecord> recordMap = getRecordMap();
Map<Integer, TowerLevelRecord> recordMap = this.getRecordMap();
int currentFloorId = getTowerData().currentFloorId;
if (!recordMap.containsKey(currentFloorId)) {
recordMap.put(
@@ -114,9 +113,9 @@ public class TowerManager extends BasePlayerManager {
currentFloorId, recordMap.get(currentFloorId).setLevelStars(getCurrentLevelId(), stars));
}
getTowerData().currentLevel++;
this.getTowerData().currentLevel++;
if (!hasNextLevel()) {
if (!this.hasNextLevel()) {
// set up the next floor
var nextFloorId = this.getNextFloorId();
recordMap.computeIfAbsent(nextFloorId, TowerLevelRecord::new);
@@ -133,11 +132,18 @@ public class TowerManager extends BasePlayerManager {
}
public int getNextFloorId() {
return player.getServer().getTowerSystem().getNextFloorId(getTowerData().currentFloorId);
return this.player
.getServer()
.getTowerSystem()
.getNextFloorId(this.getTowerData().currentFloorId);
}
public boolean hasNextFloor() {
return player.getServer().getTowerSystem().getNextFloorId(getTowerData().currentFloorId) > 0;
return this.player
.getServer()
.getTowerSystem()
.getNextFloorId(this.getTowerData().currentFloorId)
> 0;
}
public void clearEntry() {
@@ -145,11 +151,13 @@ public class TowerManager extends BasePlayerManager {
}
public boolean canEnterScheduleFloor() {
Map<Integer, TowerLevelRecord> recordMap = getRecordMap();
if (!recordMap.containsKey(player.getServer().getTowerSystem().getLastEntranceFloor())) {
Map<Integer, TowerLevelRecord> recordMap = this.getRecordMap();
if (!recordMap.containsKey(this.player.getServer().getTowerSystem().getLastEntranceFloor())) {
return false;
}
return recordMap.get(player.getServer().getTowerSystem().getLastEntranceFloor()).getStarCount()
return recordMap
.get(this.player.getServer().getTowerSystem().getLastEntranceFloor())
.getStarCount()
>= 6;
}

View File

@@ -3,7 +3,7 @@ package emu.grasscutter.game.tower;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.DataLoader;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.excels.TowerScheduleData;
import emu.grasscutter.data.excels.tower.TowerScheduleData;
import emu.grasscutter.server.game.BaseGameSystem;
import emu.grasscutter.server.game.GameServer;
import java.util.ArrayList;