JPP: Removed terminator gun pre-fire all gun types on init

This commit is contained in:
Willem Cazander 2025-09-13 20:28:44 +02:00
parent 03f148dd74
commit dfa3ea5036
2 changed files with 13 additions and 11 deletions

View file

@ -38,9 +38,8 @@ public enum TerminatorBullet implements BãßBȍőnAmmoBullet {
DUYTS_CHINA, // TODO: redo as DUYTS_GUN and return the default (china) gun DUYTS_CHINA, // TODO: redo as DUYTS_GUN and return the default (china) gun
SPACE_OCTAL_COUNT, SPACE_OCTAL_COUNT,
MAP_CHINA, MAP_CHINA,
MAP_GUN_FIRE, MAP_GUN,
MAP_GUN_AMMO, MAP_GUN_AMMO,
MAP_GUN_WOUND, MAP_GUN_WOUND,
LIST_GUN_TYPES,
; ;
} }

View file

@ -29,6 +29,7 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ
import java.math.BigInteger; import java.math.BigInteger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@ -85,10 +86,9 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
public void s͑um̴̆ͨ̅m͠ô̈́ṅͫͤ́̂Gh̕os̑ͫt̡̓̍s͜() { public void s͑um̴̆ͨ̅m͠ô̈́ṅͫͤ́̂Gh̕os̑ͫt̡̓̍s͜() {
boon.thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮgSpreǜk(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).bewaarGềễst(GHOST_AMMO_BOX_MIRROR, 彈藥ᐧ盒子.ᐧᣞᣛBãßBȍőnAmmoBoxԲ()); boon.thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮgSpreǜk(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).bewaarGềễst(GHOST_AMMO_BOX_MIRROR, 彈藥ᐧ盒子.ᐧᣞᣛBãßBȍőnAmmoBoxԲ());
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_CHINA); 彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_CHINA);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_FIRE); 彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_AMMO); 彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_AMMO);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_WOUND); 彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_WOUND);
彈藥ᐧ盒子.放ᐧ子彈ᐧ清單(TerminatorBullet.LIST_GUN_TYPES);
彈藥ᐧ盒子.放ᐧ子彈(TerminatorBullet.DUYTS_NAME, terminator注.duytsName()); 彈藥ᐧ盒子.放ᐧ子彈(TerminatorBullet.DUYTS_NAME, terminator注.duytsName());
彈藥ᐧ盒子.放ᐧ子彈(TerminatorBullet.DUYTS_CHINA, terminator注.duytsChina()); 彈藥ᐧ盒子.放ᐧ子彈(TerminatorBullet.DUYTS_CHINA, terminator注.duytsChina());
TerminatorGunSafe gunSafe = new TerminatorGunSafe(); TerminatorGunSafe gunSafe = new TerminatorGunSafe();
@ -101,8 +101,7 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
Class<?> gunClass = gun.getClass(); Class<?> gunClass = gun.getClass();
TerminatorGunAmmo注 anno = Objects.requireNonNull(gunClass.getAnnotation(TerminatorGunAmmo注.class), "Missing TerminatorGunAmmo注 annotation on: " + gunClass); TerminatorGunAmmo注 anno = Objects.requireNonNull(gunClass.getAnnotation(TerminatorGunAmmo注.class), "Missing TerminatorGunAmmo注 annotation on: " + gunClass);
彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN_AMMO).put(gunClass.getName(), TerminatorGunAmmo.instanceᴼᶠ(anno)); 彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN_AMMO).put(gunClass.getName(), TerminatorGunAmmo.instanceᴼᶠ(anno));
彈藥ᐧ盒子.子彈ᐧ清單ᐧ目的(TerminatorBullet.LIST_GUN_TYPES).add(gunClass); 彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN).put(gunClass.getName(), gun);
彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN_FIRE).put(gunClass.getName(), gun.kanonSchot(boon.rȧñkTelNul()));
} }
} }
int spaceOctalCount = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE; int spaceOctalCount = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE;
@ -155,7 +154,7 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
} }
default String rȧñkGunFire(Class<? extends TerminatorGun> gunId) { default String rȧñkGunFire(Class<? extends TerminatorGun> gunId) {
return backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapStringValue(TerminatorBullet.MAP_GUN_FIRE, gunId.getName()); return TerminatorGun.class.cast(backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObjectValue(TerminatorBullet.MAP_GUN, gunId.getName())).kanonSchot(rȧñkTelNul());
} }
default TerminatorGunAmmo ráàmGunAmmo(Class<? extends TerminatorGun> gunId) { default TerminatorGunAmmo ráàmGunAmmo(Class<? extends TerminatorGun> gunId) {
@ -164,10 +163,10 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
default List<Class<? extends TerminatorGun>> ráàmGunTypes() { default List<Class<? extends TerminatorGun>> ráàmGunTypes() {
List<Object> data = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlListObject(TerminatorBullet.LIST_GUN_TYPES); Collection<Object> data = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObject(TerminatorBullet.MAP_GUN).values();
List<Class<? extends TerminatorGun>> result = new ArrayList<>(); List<Class<? extends TerminatorGun>> result = new ArrayList<>();
for (Object obj: data) { for (Object obj: data) {
result.add((Class<? extends TerminatorGun>) obj); result.add((Class<? extends TerminatorGun>) obj.getClass());
} }
return result; return result;
} }
@ -176,8 +175,12 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
default T ráàmWaardeVanGeweerWond(Class<? extends TerminatorGun> gunId, String gunWound) { default T ráàmWaardeVanGeweerWond(Class<? extends TerminatorGun> gunId, String gunWound) {
Map<String,Object> mapGunWounds = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObject(TerminatorBullet.MAP_GUN_WOUND); Map<String,Object> mapGunWounds = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObject(TerminatorBullet.MAP_GUN_WOUND);
if (mapGunWounds.isEmpty()) { if (mapGunWounds.isEmpty()) {
for (Class<? extends TerminatorGun> raamGunType:ráàmGunTypes()) { synchronized (this) {
mapGunWounds.put(raamGunType.getName(), teŀráàmWaardesNaarMap(v -> v.rȧñkGunFire(raamGunType))); if (mapGunWounds.isEmpty()) {
for (Class<? extends TerminatorGun> raamGunType:ráàmGunTypes()) {
mapGunWounds.put(raamGunType.getName(), teŀráàmWaardesNaarMap(v -> v.rȧñkGunFire(raamGunType)));
}
}
} }
} }
return (T) ((Map<String,T>)mapGunWounds.get(gunId.getName())).get(gunWound); return (T) ((Map<String,T>)mapGunWounds.get(gunId.getName())).get(gunWound);