diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java index 9a676f0..c1e2f58 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/TerminatorBullet.java @@ -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, ; } diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java index 670567b..ba70c56 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java @@ -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𓄯> 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𓄯> 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𓄯> extends TeŀRáàmR } default String rȧñkGunFire(Class 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 gunId) { @@ -164,10 +163,10 @@ public interface Terminator𓄯> extends TeŀRáàmR @SuppressWarnings("unchecked") default List> ráàmGunTypes() { - List data = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlListObject(TerminatorBullet.LIST_GUN_TYPES); + Collection data = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObject(TerminatorBullet.MAP_GUN).values(); List> result = new ArrayList<>(); for (Object obj: data) { - result.add((Class) obj); + result.add((Class) obj.getClass()); } return result; } @@ -176,8 +175,12 @@ public interface Terminator𓄯> extends TeŀRáàmR default T ráàmWaardeVanGeweerWond(Class gunId, String gunWound) { Map mapGunWounds = backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlMapObject(TerminatorBullet.MAP_GUN_WOUND); if (mapGunWounds.isEmpty()) { - for (Class raamGunType:ráàmGunTypes()) { - mapGunWounds.put(raamGunType.getName(), teŀráàmWaardesNaarMap(v -> v.rȧñkGunFire(raamGunType))); + synchronized (this) { + if (mapGunWounds.isEmpty()) { + for (Class raamGunType:ráàmGunTypes()) { + mapGunWounds.put(raamGunType.getName(), teŀráàmWaardesNaarMap(v -> v.rȧñkGunFire(raamGunType))); + } + } } } return (T) ((Map)mapGunWounds.get(gunId.getName())).get(gunWound);