Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a proper language system #567

Merged
merged 39 commits into from
May 7, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
32c70cc
Support of Enter Room Scene
Akka0 May 5, 2022
023c5ba
Convert to the superior language system. (pt. 1)
KingRainbow44 May 6, 2022
f731196
Convert to the superior language system. (pt. 2)
KingRainbow44 May 6, 2022
d32d401
Choose Avatar & Enter Tower
Akka0 May 6, 2022
7d51e0d
Merge pull request #1 from Akka0/development
Akka0 May 6, 2022
744aa47
Add drowning. Better movement ticking.
gentlespoon May 6, 2022
a79e008
Add @Transient for temporary team
Akka0 May 6, 2022
696f629
Choose Avatar & Enter Tower
Akka0 May 6, 2022
39a49ae
Add @Transient for temporary team
Akka0 May 6, 2022
39c932b
Implementes auto HP recovery at the statues.
gentlespoon May 6, 2022
e319fd7
fix: lower logging level in SotSManager
gentlespoon May 6, 2022
5968ed3
Remove the red exclamation mark from achievements
May 6, 2022
092dee8
Merge branch 'development' of https://github.com/Grasscutters/Grasscu…
May 6, 2022
098cf37
Fix morphia error when saving player to db
May 6, 2022
0102a3c
The statues will now automatically regen their HP volume over time.
gentlespoon May 6, 2022
da99140
Stop WindSeedClientNotify and PlayerLuaShellNotify from being sent (#…
4Benj May 6, 2022
6144f47
Tower Dungeons Handoff between level and floor
Akka0 May 6, 2022
81ca860
Add some lua functions
Akka0 May 6, 2022
7279842
Merge pull request #2 from Grasscutters/development
Akka0 May 6, 2022
321a2a3
Merge branch 'tower' into development
Akka0 May 6, 2022
6b82a53
Merge pull request #3 from Akka0/development
Akka0 May 6, 2022
22df346
a little fix
Akka0 May 6, 2022
63a37ac
add config option to enable cors for dispatchserver (#579)
exzork May 6, 2022
19a2c9b
Implement Avatar Expedition System
CCasusensa May 6, 2022
6d89477
Merge pull request #594 from Akka0/tower
May 6, 2022
2b58d69
Improved fault tolerance for json file deserialization (#595)
cfuncode May 6, 2022
c4e1108
Add config option to change console server's signature, namecard, lev…
Arikatsu May 6, 2022
7109578
fix scence block loading bug
May 6, 2022
1d4a41f
Allow walking away from the statue within 2.5s to stop auto heal.
gentlespoon May 6, 2022
c582814
Fix #593: Accidental death of character
gentlespoon May 6, 2022
438f845
Convert to the superior language system. (pt. 3)
KingRainbow44 May 6, 2022
7899a60
Add the `en-US` language.
KingRainbow44 May 6, 2022
57a3d53
Add the `zh-TW` language.
KingRainbow44 May 6, 2022
686df18
Ensure we have a fallback for localization
KingRainbow44 May 6, 2022
d8719ec
Update .gitignore & remove files
KingRainbow44 May 6, 2022
80c9119
Merge `development` into `localization`
KingRainbow44 May 6, 2022
4264ca0
Update `Utils.java`
KingRainbow44 May 6, 2022
59b24aa
Rename `en-US` locale
KingRainbow44 May 7, 2022
e6cb97a
Bug fixes
KingRainbow44 May 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Choose Avatar & Enter Tower
  • Loading branch information
Akka0 committed May 6, 2022
commit d32d4014cd9fc09b17d83717b827800c0165494a
16 changes: 16 additions & 0 deletions proto/TowerBuffSelectReq.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

message TowerBuffSelectReq {
enum CmdId {
option allow_alias = true;
ENET_CHANNEL_ID = 0;
NONE = 0;
ENET_IS_RELIABLE = 1;
IS_ALLOW_CLIENT = 1;
CMD_ID = 2424;
}

uint32 tower_buff_id = 1;
}
16 changes: 16 additions & 0 deletions proto/TowerBuffSelectRsp.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

message TowerBuffSelectRsp {
enum CmdId {
option allow_alias = true;
NONE = 0;
ENET_CHANNEL_ID = 0;
ENET_IS_RELIABLE = 1;
CMD_ID = 2491;
}

int32 retcode = 1;
uint32 tower_buff_id = 2;
}
17 changes: 17 additions & 0 deletions proto/TowerCurLevelRecordChangeNotify.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

import "TowerCurLevelRecord.proto";

message TowerCurLevelRecordChangeNotify {
enum CmdId {
option allow_alias = true;
NONE = 0;
ENET_CHANNEL_ID = 0;
ENET_IS_RELIABLE = 1;
CMD_ID = 2489;
}

TowerCurLevelRecord cur_level_record = 1;
}
16 changes: 16 additions & 0 deletions proto/TowerEnterLevelReq.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

message TowerEnterLevelReq {
enum CmdId {
option allow_alias = true;
ENET_CHANNEL_ID = 0;
NONE = 0;
ENET_IS_RELIABLE = 1;
IS_ALLOW_CLIENT = 1;
CMD_ID = 2412;
}

uint32 enter_point_id = 1;
}
18 changes: 18 additions & 0 deletions proto/TowerEnterLevelRsp.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

message TowerEnterLevelRsp {
enum CmdId {
option allow_alias = true;
NONE = 0;
ENET_CHANNEL_ID = 0;
ENET_IS_RELIABLE = 1;
CMD_ID = 2426;
}

int32 retcode = 1;
uint32 floor_id = 2;
uint32 level_index = 3;
repeated uint32 tower_buff_id_list = 4;
}
9 changes: 9 additions & 0 deletions proto/TowerLevelStarCondData.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

message TowerLevelStarCondData {
uint32 star_cond_index = 3;
uint32 cond_value = 4;
bool is_pause = 5;
}
19 changes: 19 additions & 0 deletions proto/TowerLevelStarCondNotify.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

import "TowerLevelStarCondData.proto";

message TowerLevelStarCondNotify {
enum CmdId {
option allow_alias = true;
NONE = 0;
ENET_CHANNEL_ID = 0;
ENET_IS_RELIABLE = 1;
CMD_ID = 2492;
}

uint32 floor_id = 1;
uint32 level_index = 2;
repeated TowerLevelStarCondData cond_data_list = 3;
}
19 changes: 19 additions & 0 deletions proto/TowerTeamSelectReq.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

import "TowerTeam.proto";

message TowerTeamSelectReq {
enum CmdId {
option allow_alias = true;
ENET_CHANNEL_ID = 0;
NONE = 0;
ENET_IS_RELIABLE = 1;
IS_ALLOW_CLIENT = 1;
CMD_ID = 2401;
}

uint32 floor_id = 1;
repeated TowerTeam tower_team_list = 2;
}
15 changes: 15 additions & 0 deletions proto/TowerTeamSelectRsp.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

message TowerTeamSelectRsp {
enum CmdId {
option allow_alias = true;
NONE = 0;
ENET_CHANNEL_ID = 0;
ENET_IS_RELIABLE = 1;
CMD_ID = 2494;
}

int32 retcode = 1;
}
11 changes: 10 additions & 1 deletion src/main/java/emu/grasscutter/data/GameData.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ public class GameData {
private static final Int2ObjectMap<ShopGoodsData> shopGoodsDataMap = new Int2ObjectOpenHashMap<>();
private static final Int2ObjectMap<CombineData> combineDataMap = new Int2ObjectOpenHashMap<>();
private static final Int2ObjectMap<RewardPreviewData> rewardPreviewDataMap = new Int2ObjectOpenHashMap<>();

private static final Int2ObjectMap<TowerFloorData> towerFloorDataMap = new Int2ObjectOpenHashMap<>();
private static final Int2ObjectMap<TowerLevelData> towerLevelDataMap = new Int2ObjectOpenHashMap<>();

// Cache
private static Map<Integer, List<Integer>> fetters = new HashMap<>();
private static Map<Integer, List<ShopGoodsData>> shopGoods = new HashMap<>();
Expand Down Expand Up @@ -313,4 +315,11 @@ public static IntList getScenePointIdList() {
public static Int2ObjectMap<CombineData> getCombineDataMap() {
return combineDataMap;
}

public static Int2ObjectMap<TowerFloorData> getTowerFloorDataMap(){
return towerFloorDataMap;
}
public static Int2ObjectMap<TowerLevelData> getTowerLevelDataMap(){
return towerLevelDataMap;
}
}
73 changes: 73 additions & 0 deletions src/main/java/emu/grasscutter/data/def/TowerFloorData.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package emu.grasscutter.data.def;

import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;

@ResourceType(name = "TowerFloorExcelConfigData.json")
public class TowerFloorData extends GameResource {

private int FloorId;
private int FloorIndex;
private int LevelId;
private int OverrideMonsterLevel;
private int TeamNum;
private int FloorLevelConfigId;

@Override
public int getId() {
return this.FloorId;
}

@Override
public void onLoad() {
super.onLoad();
}

public int getFloorId() {
return FloorId;
}

public void setFloorId(int floorId) {
FloorId = floorId;
}

public int getFloorIndex() {
return FloorIndex;
}

public void setFloorIndex(int floorIndex) {
FloorIndex = floorIndex;
}

public int getLevelId() {
return LevelId;
}

public void setLevelId(int levelId) {
LevelId = levelId;
}

public int getOverrideMonsterLevel() {
return OverrideMonsterLevel;
}

public void setOverrideMonsterLevel(int overrideMonsterLevel) {
OverrideMonsterLevel = overrideMonsterLevel;
}

public int getTeamNum() {
return TeamNum;
}

public void setTeamNum(int teamNum) {
TeamNum = teamNum;
}

public int getFloorLevelConfigId() {
return FloorLevelConfigId;
}

public void setFloorLevelConfigId(int floorLevelConfigId) {
FloorLevelConfigId = floorLevelConfigId;
}
}
55 changes: 55 additions & 0 deletions src/main/java/emu/grasscutter/data/def/TowerLevelData.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package emu.grasscutter.data.def;

import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;

@ResourceType(name = "TowerLevelExcelConfigData.json")
public class TowerLevelData extends GameResource {

private int ID;
private int LevelId;
private int LevelIndex;
private int DungeonId;

@Override
public int getId() {
return this.ID;
}

@Override
public void onLoad() {
super.onLoad();
}

public int getID() {
return ID;
}

public void setID(int ID) {
this.ID = ID;
}

public int getLevelId() {
return LevelId;
}

public void setLevelId(int levelId) {
LevelId = levelId;
}

public int getLevelIndex() {
return LevelIndex;
}

public void setLevelIndex(int levelIndex) {
LevelIndex = levelIndex;
}

public int getDungeonId() {
return DungeonId;
}

public void setDungeonId(int dungeonId) {
DungeonId = dungeonId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ public void exitDungeon(Player player) {
prevPos.set(entry.getPointData().getTranPos());
}
}

// clean temp team if it has
player.getTeamManager().cleanTemporaryTeam();
// Transfer player back to world
player.getWorld().transferPlayerToScene(player, prevScene, prevPos);
player.sendPacket(new BasePacket(PacketOpcodes.PlayerQuitDungeonRsp));
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/emu/grasscutter/game/player/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import emu.grasscutter.game.props.PlayerProperty;
import emu.grasscutter.game.shop.ShopLimit;
import emu.grasscutter.game.managers.MapMarkManager.*;
import emu.grasscutter.game.tower.TowerManager;
import emu.grasscutter.game.world.Scene;
import emu.grasscutter.game.world.World;
import emu.grasscutter.net.packet.BasePacket;
Expand Down Expand Up @@ -88,6 +89,8 @@ public class Player {
@Transient private MessageHandler messageHandler;

private TeamManager teamManager;

private TowerManager towerManager;
private PlayerGachaInfo gachaInfo;
private PlayerProfile playerProfile;
private boolean showAvatar;
Expand Down Expand Up @@ -172,6 +175,7 @@ public Player(GameSession session) {
this.nickname = "Traveler";
this.signature = "";
this.teamManager = new TeamManager(this);
this.towerManager = new TowerManager(this);
this.birthday = new PlayerBirthday();
this.setProperty(PlayerProperty.PROP_PLAYER_LEVEL, 1);
this.setProperty(PlayerProperty.PROP_IS_SPRING_AUTO_USE, 1);
Expand Down Expand Up @@ -384,6 +388,10 @@ public TeamManager getTeamManager() {
return this.teamManager;
}

public TowerManager getTowerManager() {
return towerManager;
}

public PlayerGachaInfo getGachaInfo() {
return gachaInfo;
}
Expand Down Expand Up @@ -1020,6 +1028,9 @@ public void onLogin() {
if (this.getProfile().getUid() == 0) {
this.getProfile().syncWithCharacter(this);
}
if (this.getTowerManager() == null) {
this.towerManager = new TowerManager(this);
}

// Check if player object exists in server
// TODO - optimize
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/emu/grasscutter/game/player/TeamInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ public TeamInfo() {
this.avatars = new ArrayList<>(Grasscutter.getConfig().getGameServerOptions().MaxAvatarsInTeam);
}

public TeamInfo(List<Integer> avatars) {
this.name = "";
this.avatars = avatars;
}

public String getName() {
return name;
}
Expand Down
Loading