java - 如何创建像电子游戏一样的 LootBox 系统
问题描述
我想练习 java 创建一个 LootBox 开放系统。我刚试过这个。
- 创建一个名为 Tier 的接口。- 创建实现层接口的 UltimateTier、PremiumTier、StandardTier 类。- 创建扩展 UltimateTier 的 Gold、Titanium 扩展 UltimateTier、Silver 扩展 PremiumTier 等的类。
然后我使用 org.reflections 查找从另一个继承的类,以创造机会使用此代码获得黄金等稀有物品
Tier[] tierItem = new Tier[3];
for (int i = 0; i < 3; i++) {
int itemQuality = (int)(1 + Math.random()* 10);
int itemQuality = 1;
if (itemQuality == 1) {
tierItem[i] = new UltimateItemTier().getItem();
}
if (itemQuality >= 2 && itemQuality <= 4) {
tierItem[i] = new PremiumItemTier();
}
if (itemQuality >= 5) {
tierItem[i] = new StandardItemTier();
}
}
return tierItem;
它返回给我一个包含 3 个 TIERITEMS 的列表,但我需要根据列表中的每一层随机选择其中的 1 个。
例如,如果有 10 个 PremiumItems,当我打开 StandarBox 时,列表返回“PremiumTier”、“PremiumTier”、“StandardTier”,代码必须选择继承或匹配该层的任何随机项目。
所以列表必须返回(例如)“Silver(PremiumTier), PremiumMetal(PremiumTier), Wood(StandardTier)
解决方案
推荐阅读
- azure-cosmosdb-emulator - 自动化 CosmosDB 模拟器设置
- c++ - 来自 boost::asio::ip::tcp::socket 奇怪行为的字符串
- html - 如何创建使用用户 google 帐户查看网站的嵌入 | html
- python - 将字典列表转换为熊猫数据框时,“_io.TextIOWrapper”对象没有属性“DataFrame”
- html - 有没有办法为不同的转换设置不同的转换?
- c# - SQL 异常:用户登录失败
- c# - 如何检查文件是否存在于 C# 中?
- html - 在 Facebook 和 LinkedIn 上共享单个网页会导致查找来自主页,而不是特定于页面
- python - 如何使我的命令仅对所有者有效?
- java - 在视图边界之外,在多个父视图组上绘制