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