添加各种兜底空值判断
This commit is contained in:
parent
aba336eb43
commit
14b22a2efd
2 changed files with 19 additions and 3 deletions
|
@ -71,7 +71,13 @@ public class GunData {
|
|||
perk = new Perks(this);
|
||||
|
||||
ammo = new IntValue(data, "Ammo");
|
||||
fireMode = new StringEnumValue<>(data, "FireMode", defaultGunData().defaultFireMode, FireMode::fromValue);
|
||||
|
||||
var defaultFireMode = defaultGunData().defaultFireMode;
|
||||
if (defaultFireMode == null) {
|
||||
defaultFireMode = FireMode.SEMI;
|
||||
}
|
||||
|
||||
fireMode = new StringEnumValue<>(data, "FireMode", defaultFireMode, FireMode::fromValue);
|
||||
level = new IntValue(data, "Level");
|
||||
exp = new DoubleValue(data, "Exp");
|
||||
upgradePoint = new DoubleValue(data, "UpgradePoint");
|
||||
|
@ -203,7 +209,10 @@ public class GunData {
|
|||
}
|
||||
|
||||
public ProjectileInfo projectileInfo() {
|
||||
return defaultGunData().projectile;
|
||||
var info = defaultGunData().projectile;
|
||||
if (info == null) return new ProjectileInfo();
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
public String projectileType() {
|
||||
|
@ -227,6 +236,8 @@ public class GunData {
|
|||
}
|
||||
|
||||
public Set<ReloadType> reloadTypes() {
|
||||
if (defaultGunData().reloadTypes == null) return Set.of();
|
||||
|
||||
return defaultGunData().reloadTypes;
|
||||
}
|
||||
|
||||
|
@ -356,7 +367,7 @@ public class GunData {
|
|||
|
||||
public AmmoTypeInfo ammoTypeInfo() {
|
||||
var ammoType = defaultGunData().ammoType;
|
||||
if (ammoType.isEmpty()) {
|
||||
if (ammoType == null || ammoType.isEmpty()) {
|
||||
return new AmmoTypeInfo(AmmoConsumeType.INVALID, "");
|
||||
}
|
||||
|
||||
|
@ -542,6 +553,8 @@ public class GunData {
|
|||
}
|
||||
|
||||
public Set<FireMode> getAvailableFireModes() {
|
||||
if (defaultGunData().availableFireModes == null) return Set.of();
|
||||
|
||||
return defaultGunData().availableFireModes;
|
||||
}
|
||||
|
||||
|
|
|
@ -142,6 +142,9 @@ public class DamageModify {
|
|||
* @return 计算后的伤害值
|
||||
*/
|
||||
public float compute(float damage) {
|
||||
// 类型出错默认视为免疫
|
||||
if (type == null) return 0;
|
||||
|
||||
return switch (type) {
|
||||
case IMMUNITY -> 0;
|
||||
case REDUCE -> Math.max(damage - value, 0);
|
||||
|
|
Loading…
Add table
Reference in a new issue