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
SPACE_OCTAL_COUNT,
MAP_CHINA,
MAP_GUN_FIRE,
MAP_GUN,
MAP_GUN_AMMO,
MAP_GUN_WOUND,
LIST_GUN_TYPES,
;
}

View file

@ -29,6 +29,7 @@ package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪ
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
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͜() {
boon.thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮgSpreǜk(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).bewaarGềễst(GHOST_AMMO_BOX_MIRROR, 彈藥ᐧ盒子.ᐧᣞᣛBãßBȍőnAmmoBoxԲ());
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_CHINA);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_FIRE);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_AMMO);
彈藥ᐧ盒子.放ᐧ子彈ᐧ地圖(TerminatorBullet.MAP_GUN_WOUND);
彈藥ᐧ盒子.放ᐧ子彈ᐧ清單(TerminatorBullet.LIST_GUN_TYPES);
彈藥ᐧ盒子.放ᐧ子彈(TerminatorBullet.DUYTS_NAME, terminator注.duytsName());
彈藥ᐧ盒子.放ᐧ子彈(TerminatorBullet.DUYTS_CHINA, terminator注.duytsChina());
TerminatorGunSafe gunSafe = new TerminatorGunSafe();
@ -101,8 +101,7 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
Class<?> gunClass = gun.getClass();
TerminatorGunAmmo注 anno = Objects.requireNonNull(gunClass.getAnnotation(TerminatorGunAmmo注.class), "Missing TerminatorGunAmmo注 annotation on: " + gunClass);
彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN_AMMO).put(gunClass.getName(), TerminatorGunAmmo.instanceᴼᶠ(anno));
彈藥ᐧ盒子.子彈ᐧ清單ᐧ目的(TerminatorBullet.LIST_GUN_TYPES).add(gunClass);
彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN_FIRE).put(gunClass.getName(), gun.kanonSchot(boon.rȧñkTelNul()));
彈藥ᐧ盒子.子彈ᐧ地圖ᐧ目的(TerminatorBullet.MAP_GUN).put(gunClass.getName(), gun);
}
}
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) {
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) {
@ -164,10 +163,10 @@ public interface Terminator𓄯<T extends Terminator𓄯<T>> extends TeŀRáàmR
@SuppressWarnings("unchecked")
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<>();
for (Object obj: data) {
result.add((Class<? extends TerminatorGun>) obj);
result.add((Class<? extends TerminatorGun>) obj.getClass());
}
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) {
Map<String,Object> mapGunWounds = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObject(TerminatorBullet.MAP_GUN_WOUND);
if (mapGunWounds.isEmpty()) {
for (Class<? extends TerminatorGun> raamGunType:ráàmGunTypes()) {
mapGunWounds.put(raamGunType.getName(), teŀráàmWaardesNaarMap(v -> v.rȧñkGunFire(raamGunType)));
synchronized (this) {
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);