From 47f521de90c1c1f9c2d59d43dd3162597bfaf08b Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sun, 25 Nov 2018 20:40:24 +0100 Subject: [PATCH] alt bomber loop, new hazmats, radaways, radX --- assets/hbm/lang/de_DE.lang | 20 +++++- assets/hbm/lang/en_US.lang | 20 +++++- assets/hbm/sounds.json | 1 + assets/hbm/sounds/entity/bomber2.ogg | Bin 0 -> 15928 bytes assets/hbm/textures/armor/hazmat_1_grey.png | Bin 0 -> 1281 bytes assets/hbm/textures/armor/hazmat_1_red.png | Bin 0 -> 1497 bytes assets/hbm/textures/armor/hazmat_2_grey.png | Bin 0 -> 693 bytes assets/hbm/textures/armor/hazmat_2_red.png | Bin 0 -> 773 bytes assets/hbm/textures/gui/potions.png | Bin 1895 -> 2243 bytes assets/hbm/textures/items/cap_rad.png | Bin 0 -> 271 bytes .../hbm/textures/items/hazmat_boots_grey.png | Bin 0 -> 230 bytes .../hbm/textures/items/hazmat_boots_red.png | Bin 0 -> 237 bytes .../hbm/textures/items/hazmat_cloth_grey.png | Bin 0 -> 349 bytes .../hbm/textures/items/hazmat_cloth_red.png | Bin 0 -> 357 bytes .../hbm/textures/items/hazmat_helmet_grey.png | Bin 0 -> 254 bytes .../hbm/textures/items/hazmat_helmet_red.png | Bin 0 -> 254 bytes .../hbm/textures/items/hazmat_legs_grey.png | Bin 0 -> 203 bytes assets/hbm/textures/items/hazmat_legs_red.png | Bin 0 -> 207 bytes .../hbm/textures/items/hazmat_plate_grey.png | Bin 0 -> 249 bytes .../hbm/textures/items/hazmat_plate_red.png | Bin 0 -> 266 bytes assets/hbm/textures/items/radaway_flush.png | Bin 0 -> 321 bytes assets/hbm/textures/items/radaway_strong.png | Bin 0 -> 322 bytes assets/hbm/textures/items/radx.png | Bin 0 -> 258 bytes assets/hbm/textures/models/ModelHazGrey.png | Bin 0 -> 815 bytes assets/hbm/textures/models/ModelHazRed.png | Bin 0 -> 879 bytes com/hbm/blocks/fluid/MudBlock.java | 16 +---- com/hbm/blocks/fluid/ToxicBlock.java | 4 +- com/hbm/blocks/generic/BlockOre.java | 24 ++++--- com/hbm/entity/effect/EntityFalloutRain.java | 24 +++++-- .../entity/logic/EntityNukeExplosionMK4.java | 12 +++- com/hbm/entity/mob/EntityNuclearCreeper.java | 4 +- com/hbm/handler/HazmatRegistry.java | 60 ++++++++++++++++++ com/hbm/items/ModItems.java | 45 +++++++++++++ com/hbm/items/food/ItemEnergy.java | 32 ++++++++++ com/hbm/items/food/ItemPill.java | 21 ++++++ com/hbm/items/gear/ArmorHazmat.java | 12 ++++ com/hbm/items/gear/ArmorModel.java | 18 +++++- com/hbm/items/special/ItemRadioactive.java | 51 +++++++++------ com/hbm/items/special/ItemSyringe.java | 57 ++++++++++++++++- com/hbm/lib/Library.java | 39 +++++++++++- com/hbm/lib/RefStrings.java | 2 +- com/hbm/main/CraftingManager.java | 16 ++++- com/hbm/main/MainRegistry.java | 55 ++++++++++++++++ com/hbm/main/ModEventHandler.java | 52 ++++++++++++++- com/hbm/packet/LoopedEntitySoundPacket.java | 26 +++++++- com/hbm/potion/HbmPotion.java | 20 ++++-- com/hbm/saveddata/RadEntitySavedData.java | 9 +++ .../tileentity/bomb/TileEntitySellafield.java | 2 +- .../TileEntityMachineReactorSmall.java | 12 +++- .../TileEntityMachineReactorSmallOld.java | 12 +++- .../machine/TileEntityReactorMultiblock.java | 12 +++- 51 files changed, 597 insertions(+), 81 deletions(-) create mode 100644 assets/hbm/sounds/entity/bomber2.ogg create mode 100644 assets/hbm/textures/armor/hazmat_1_grey.png create mode 100644 assets/hbm/textures/armor/hazmat_1_red.png create mode 100644 assets/hbm/textures/armor/hazmat_2_grey.png create mode 100644 assets/hbm/textures/armor/hazmat_2_red.png create mode 100644 assets/hbm/textures/items/cap_rad.png create mode 100644 assets/hbm/textures/items/hazmat_boots_grey.png create mode 100644 assets/hbm/textures/items/hazmat_boots_red.png create mode 100644 assets/hbm/textures/items/hazmat_cloth_grey.png create mode 100644 assets/hbm/textures/items/hazmat_cloth_red.png create mode 100644 assets/hbm/textures/items/hazmat_helmet_grey.png create mode 100644 assets/hbm/textures/items/hazmat_helmet_red.png create mode 100644 assets/hbm/textures/items/hazmat_legs_grey.png create mode 100644 assets/hbm/textures/items/hazmat_legs_red.png create mode 100644 assets/hbm/textures/items/hazmat_plate_grey.png create mode 100644 assets/hbm/textures/items/hazmat_plate_red.png create mode 100644 assets/hbm/textures/items/radaway_flush.png create mode 100644 assets/hbm/textures/items/radaway_strong.png create mode 100644 assets/hbm/textures/items/radx.png create mode 100644 assets/hbm/textures/models/ModelHazGrey.png create mode 100644 assets/hbm/textures/models/ModelHazRed.png create mode 100644 com/hbm/handler/HazmatRegistry.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 4349c72d6..e07fc8c9e 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -36,8 +36,9 @@ achievement.fiend2.desc=Sei gemeiner. potion.hbm_taint=Verdorben potion.hbm_mutation=Verdorbenes Herz -potion.hbm_radiation=Strahlenkrankheit +potion.hbm_radiation=Kontaminiert potion.hbm_bang=! ! ! +potion.hbm_radx=Rad-X hbmfluid.none=Nichts hbmfluid.water=Wasser @@ -875,6 +876,8 @@ item.pellet_rtg.name=Plutonium 238 Pellet item.pellet_rtg_weak.name=Schwaches Uran RTG-Pellet item.rtg_unit.name=RTG Einheit item.hazmat_cloth.name=Strahlenschutzanzugsstoff +item.hazmat_cloth_red.name=Verbesserter Strahlenschutzanzugsstoff +item.hazmat_cloth_grey.name=Blei-verstärkter Strahlenschutzanzugsstoff item.asbestos_cloth.name=Hitzeschutzanzugsstoff item.filter_coal.name=Aktivkohlefilter item.tritium_deuterium_cake.name=Tritium-Deuterium-Kuchen @@ -1313,7 +1316,10 @@ item.syringe_metal_psycho.name=Psycho item.syringe_metal_super.name=Super Stimpak item.syringe_taint.name=Wässrige Schmutzinjektion item.med_bag.name=Ärztetasche -item.radaway.name=Radaway +item.radaway.name=RadAway +item.radaway_strong.name=Starkes RadAway +item.radaway_flush.name=Elite-RadAway +item.radx.name=Rad-X item.pill_iodine.name=Iodpille item.plan_c.name=Plan C item.med_ipecac.name=Ipecac-Sirup @@ -1456,6 +1462,14 @@ item.hazmat_helmet.name=Strahlenschutzhelm item.hazmat_plate.name=Strahlenschutzbrustplatte item.hazmat_legs.name=Strahlenschutzhose item.hazmat_boots.name=Strahlenschutzstiefel +item.hazmat_helmet_red.name=Verbesserter Strahlenschutzhelm +item.hazmat_plate_red.name=Verbesserte Strahlenschutzbrustplatte +item.hazmat_legs_red.name=Verbesserte Strahlenschutzhose +item.hazmat_boots_red.name=Verbesserte Strahlenschutzstiefel +item.hazmat_helmet_grey.name=Hochleistungs-Strahlenschutzhelm +item.hazmat_plate_grey.name=Hochleistungs-Strahlenschutzbrustplatte +item.hazmat_legs_grey.name=Hochleistungs-Strahlenschutzhose +item.hazmat_boots_grey.name=Hochleistungs-Strahlenschutzstiefel item.hazmat_paa_helmet.name=PaA-Kampfschutzanzug Helm item.hazmat_paa_plate.name=PaA-Kampfschutzanzug Brustplatte item.hazmat_paa_legs.name=PaA-Kampfschutzanzug Hose @@ -1666,6 +1680,7 @@ item.bottle_nuka.name=Nuka-Cola Flasche item.bottle_cherry.name=Nuka-Cherry Flasche item.bottle_quantum.name=Nuka Cola Quantum item.bottle_sparkle.name=S~Cola +item.bottle_rad.name=S~Cola RAD item.bottle2_empty.name=Leere Glasflasche item.bottle2_korl.name=Korl item.bottle2_fritz.name=Fritz-Kola @@ -1676,6 +1691,7 @@ item.chocolate_milk.name=Schokomilch item.cap_nuka.name=Nuka-Cola Kronkorken item.cap_quantum.name=Nuka Cola Quantum Kronkorken item.cap_sparkle.name=S~Cola Kronkorken +item.cap_rad.name=S~Cola RAD Kronkorken item.cap_korl.name=Korl Kronkorken item.cap_fritz.name=Fritz-Kola Kronkorken item.cap_sunset.name=Sunset Sarsaparilla Kronkorken diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 2d2c20735..811150c93 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -36,8 +36,9 @@ achievement.fiend2.desc=Be meaner. potion.hbm_taint=Tainted potion.hbm_mutation=Tainted Heart -potion.hbm_radiation=Radiation Sickness +potion.hbm_radiation=Contaminated potion.hbm_bang=! ! ! +potion.hbm_radx=Rad-X hbmfluid.none=None hbmfluid.water=Water @@ -875,6 +876,8 @@ item.pellet_rtg.name=Plutonium 238 Fuel Pellet item.pellet_rtg_weak.name=Weak Uranium RTG Pellet item.rtg_unit.name=RTG Unit item.hazmat_cloth.name=Hazmat Cloth +item.hazmat_cloth_red.name=Advanced Hazmat Cloth +item.hazmat_cloth_grey.name=Lead-Reinforced Hazmat Cloth item.asbestos_cloth.name=Fire Proximity Cloth item.filter_coal.name=Activated Carbon Filter item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake @@ -1313,7 +1316,10 @@ item.syringe_metal_psycho.name=Psycho item.syringe_metal_super.name=Super Stimpak item.syringe_taint.name=Watery Taint Injection item.med_bag.name=Doctor's Bag -item.radaway.name=Radaway +item.radaway.name=RadAway +item.radaway_strong.name=Strong RadAway +item.radaway_flush.name=Elite RadAway +item.radx.name=Rad-X item.pill_iodine.name=Iodine Pill item.plan_c.name=Plan C item.med_ipecac.name=Ipecac Syrup @@ -1456,6 +1462,14 @@ item.hazmat_helmet.name=Hazmat Helmet item.hazmat_plate.name=Hazmat Chestplate item.hazmat_legs.name=Hazmat Leggings item.hazmat_boots.name=Hazmat Boots +item.hazmat_helmet_red.name=Advanced Hazmat Helmet +item.hazmat_plate_red.name=Advanced Hazmat Chestplate +item.hazmat_legs_red.name=Advanced Hazmat Leggings +item.hazmat_boots_red.name=Advanced Hazmat Boots +item.hazmat_helmet_grey.name=High-Performance Hazmat Helmet +item.hazmat_plate_grey.name=High-Performance Hazmat Chestplate +item.hazmat_legs_grey.name=High-Performance Hazmat Leggings +item.hazmat_boots_grey.name=High-Performance Hazmat Boots item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings @@ -1666,6 +1680,7 @@ item.bottle_nuka.name=Bottle of Nuka Cola item.bottle_cherry.name=Bottle of Nuka Cherry item.bottle_quantum.name=Bottle of Nuka Cola Quantum item.bottle_sparkle.name=Bottle of S~Cola +item.bottle_rad.name=Bottle of S~Cola RAD item.bottle2_empty.name=Empty Bottle item.bottle2_korl.name=Korl item.bottle2_fritz.name=Fritz Cola @@ -1676,6 +1691,7 @@ item.chocolate_milk.name=Chocolate Milk item.cap_nuka.name=Nuka Cola Bottle Cap item.cap_quantum.name=Nuka Cola Quantum Bottle Cap item.cap_sparkle.name=S~Cola Bottle Cap +item.cap_rad.name=S~Cola RAD Bottle Cap item.cap_korl.name=Korl Bottle Cap item.cap_fritz.name=Fritz Cola Bottle Cap item.cap_sunset.name=Sunset Sarsaparilla Bottle Cap diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 4aede01f1..95f82d736 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -106,6 +106,7 @@ "entity.bombDet": {"category": "player", "sounds": ["entity/bombDet1", "entity/bombDet2", "entity/bombDet3"]}, "entity.bombWhistle": {"category": "player", "sounds": [{"name": "entity/bombWhistle", "stream": false}]}, "entity.bomberLoop": {"category": "player", "sounds": [{"name": "entity/bomber1", "stream": false}]}, + "entity.bomberSmallLoop": {"category": "player", "sounds": [{"name": "entity/bomber2", "stream": false}]}, "entity.planeCrash": {"category": "player", "sounds": [{"name": "entity/planeCrash", "stream": false}]}, "entity.planeShotDown": {"category": "player", "sounds": [{"name": "entity/planeShotDown", "stream": false}]}, diff --git a/assets/hbm/sounds/entity/bomber2.ogg b/assets/hbm/sounds/entity/bomber2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8dec8797d7080bb363e115152a74a5bcbfd0988b GIT binary patch literal 15928 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/armor/hazmat_1_grey.png b/assets/hbm/textures/armor/hazmat_1_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..330e8ed036cc954381859d581a85c70f68b5a99d GIT binary patch literal 1281 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/armor/hazmat_2_grey.png b/assets/hbm/textures/armor/hazmat_2_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..56b58025bf6d8482c9be69469b7b4abc0c7b4fe9 GIT binary patch literal 693 zcmV;m0!safP)N2bZe?^J zG%heMGBNQWX_Wu~0y0TNK~!i%?U?C`!Y~wt^9;VG`@WNh7tzQ8wxDwI&2DK+dxI4>j6mv$fyrs0pcFCTp`$B zuh-PRf&hRJ@xAd};(*2XCCJ)9MG!Aa8Sk5Y0I)t!p9U$+Ii?SI$UqT{A?+&&09byb zfHFVNX0sIa1&pm@G6t!uZ#Pk8&jk}(H+vkino2N2bZe?^J zG%heMGBNQWX_Wu~0)k0IK~!i%?U(CL0x=MUc_g_kAoplAYSj3I3L-&JL@@r~>FRv5 z9U=bNY`EBHO`2`pc01?H%$cE3h<}lR$UtNuG7uSv3`7PZ1CfEqKx7~?5E+OJ{Cft* z^~6oub@$RccC(X)+chB%M~QoG*4(&W)hAb^?kX&hY_pQ$}O)uVq~&&gZjma z`?%@2*=a)wp2&SXxi1I;Ud8jDcRd}JLzs)-KWE1p9qGA{^y17POoEw{LA zD_GXdZ9Nje@3JN;m_r8p-_Dx44jo^neSiSa@~Zu<#LN*YQ)zOQHG7GQ`9(|5{7T4X zBFedekjC49#`}O~4Zt)#67@Eqc@GH-*~@^8oY#f79Uv&ad0ag#;MKzdmfVLB-lGj# zvg8a=fnJ1%D5pgLCdUCuNV8TCZ>;e?f(IForHa0Tv_C-rG>kSMAzlXu0$$VpYIeS*ir&P~Ul4G_jv^q*K3` z&b72^daYYv?BE;LgJ8!&G{$;>RN*l)ZAeV<0W&CV80z~3nimtrb?cn=4XkZgMImj7 zE5Ed{@m8&l5$e8=jy;{W|;tg(syNV%xGZ00000NkvXXu0mjf D7u8Ki literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/potions.png b/assets/hbm/textures/gui/potions.png index c78d8398809b0e229bc9efeb05ed6cf6a1e43a28..36b990af867dee91406666bc77890e07c2812df3 100644 GIT binary patch delta 2025 zcmV#==E^0su8$4_f z11VCT9(Lc!%6S&r9 zo_nHH&+q^7W7niT8cFGV-5T=$@@8vCd)vDk7e_kZ9S^trNr+{{v`S1Z=bm8=T;hx_AwesX(Xk$eX8aC_U|kJ>$T&dH_KLw zv(Xr=&-Tt2(>Y#}f8=N$9a@dox?Pp*7cXAyyL@hL?wVEoe!cwYR4)`NvoC8Xq0BFmDlR^BrDseTHctOE5k+uuu<&-FrDLNe;&!n zwA!zGH(ty_PNrE)lKpuki&-eu>t6MGz4X4ZE7kIPypHjX9SPLy_43c(-;*r1 zvg?8IzH!c;f0{~?eD6mYSOlu`N|JMVBT3o?r*qx1fyJmtXJM<2kB^sRsR;byr#~F| zI=}}XeUf8G_Liy$9Q)138@O z94`mcEc^3FRTOeAZ{$D@=U|${=8~n)amxJsmGk@6Z~ic3_mvJk{%Y;1XWyz-Mc~+x zz2%ObH|Ex_-H<1reXG_v{7;tV{IAvP$%V$!f>tYMr>0iK?QNe{R$eHC&9E(5n#-R| zvooSZEGK7UL8^sjBX)i6+0Yv~l58H;VT+Bi) z=Ta``Qddvk`?}KG`!}CXW?x^L0-QZH)gIRFf4X-zxn-#rZ2l~1Oeg8n!&OP2Brki+eDLoK$_e7bv4dq|sPYGS!4^x3XgmDuO= ze_qD2v;Djp5iI2WuI1J9UaKX4Wj)D1Ha3=-nVIa|xicSs{Bhp@%C`Lc;cu6Lqkx`& z_pb5roSmOfT1zQDH8H>D_JNJ+DgYO{onsq z8B_%Nw$Ft|^3_(VPX}f*JG6aZvkaU9R73yoV`V3?C> z*5>j;*Rrwf%tGGpTGspeuQ@ibFs;`6uhrz_WV!98o7&0$>}Q{4Y-}tqzx;C7e+c4( z|NL*wF?ZcNyJ9*3pNAC%pz3|A03~QfVZ11=5OkQdazc)j5e{rj_>)!sKefK(=M{A2&DEH-1k}IQt-l6}H*=-gK2cF z@Aq}!&Tj#BUI46gP6hh){=E*S*)9UT1z=duziiVA!0Fw)%WXH`oL}F5e|yfHIg=-E zxFM78yfaerSDyx~);`Un)eem`TP?jmSJ!lomp`YJ7xQU(J{L;AFV#%vczH3O4&A0h zDHj^0F`ZJ*bw3)@OOK3@oCnh^&*wsUGOw5Cb73vV?>d(?Jcio0Z(sSaUN5J2?=Giz z@7~bIamyd)t=c{%%a4v9e-Ob{Go9nBCe~WE=}?j@Z|I)HANfsvFwJ%W7$Nz)&Sk)3 zRe!(ht_>%Cr$)!|2enTlD~rHp{BrKi){e5(;%qbq>(g}&pqg_J+hH*aYZ-P|YDv;M zx+2NeHJn{OX6bl7ifa4PXW6Ruz5Vv44#8VVt@>h5>uC47M#na-e=Plqu-0ms0oaW>;uj*M>mm-P-aU!*vzUEmuSXOxpkcd~A^IHT{) zrr2tCh7srbjI+@gtk2LN0|5X40000000000003LaR=YEdIM-*KjmBVo{2CChW80G} zqkxUv(M23_HX4V|U*Gnvc4ruIuFp8`2y~5XwL8OzbA86yXbjfJH2?qr0000000000 z008)+*lKr%5$F1hv(Xr=k6#1Ab<7=s#Mv@&00000xH|q1^Jy`HoONQH00000NkvXX Hu0mjfSVc+T delta 1673 zcmV;426p+w5$6t&Gk*sjNklGq;a{F7-;LNNw{u;O7u zU}0-0Zx7jbGBZ0fyED5n`{(n4Vc);cye#uPzvq45nKuCd0Fkr7e}Ijya;FdAPMd!1 zSW!+t@rxI3+yCRj)XwJn?47ta(EIFs>Oynh^Y_)8%ePXTYp?I!_MgQqt5&NOt*<+M zJju<(Z%zIr`Sb6O-L_+EEdayX`P7ACtHxPt42Cn(I&(OuiX=IaXZu#;)oxcN`?YJ= zx-OrYnYm+CzuRd4f8$@iP?>)1Sh3bl;N;OqiX{2;>h&Cd^?f578&4lO#X*X?hlc^0<=Z z+}3h>(3@IlH59%ZyovH$t%k?KAou?f5?#>$dSzCjTNr}468Hw@6Cf* z%tDf+mY*d_7PF9h^I&s*k{rm9t{q91lD{Z!)__W-eRZSJXcmD%PY3GtdhzcoN#oNZ zFaG@N`K#n-6S=G3%K6M?F$-DDLdtXPB+KSY{YL+b=k_<-{@stBP41bvxy^IQ#Ni}e zM(8r>f0N`&F6Bxtbv@2-w6X%H+%Ki&|U${bNf-q04ri%EZ2sOQ~j8bGqyZ=JH9~ z@^ZS`Q&SNf93h7A1-tOYzA!w;B+P{_oQ01CVzR( zeIQ4g$v>MjJ^#cWzBSpa*|jYBlk`gdLGLdYS;d#5&hOb%yt{8- zTk=<{)g;OETOU=P_~Ca7MS#sA~Q5K+9t%+Ywe-+7JI``z0&5^%b@=w3@ zk&&NGp=$>)n={S!dp(pF|4O?bJ-e#?e@^7t%6#UE$8#u2_byuOV+IboZqvjxPQlv{PuwdGCMn)<9FYk`iCD%em1SP4xmi_@^)Icuimy^e;ar^ zC%Xn+`et8Id_IxMsi{mpw|txZV~ws~0P1GxIGRPEw2I^}|wLJye|EvuEgEt*yr|f8H)k?JTxxoVCVaIBgw3dCuK$hxyE{cH~W#M%Aek z%aUxUwz=#CTBZk4ZeMg+wxaP5KG5p3<@iv4Mb`50i`Egce))WJ`BsXv9>11ka3h{n za|hxK5+vIDGX+HrkV6#Mz#4JQ3&)*=SFO5odeGS!)c2 z;~D?}00000000000001N78~u!Fyd^_IBSi;aQqq&wlPlx5@*B20RR91;P&`GLykrT T3RLfW00000NkvXXu0mjfH>QV> diff --git a/assets/hbm/textures/items/cap_rad.png b/assets/hbm/textures/items/cap_rad.png new file mode 100644 index 0000000000000000000000000000000000000000..cc9e232e4afb7e26f471883746de3e1b7daa3f1e GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyUv+`~D1(qgR#uY&}@n-z)mvJK%Ze%@bakBi0qIWgi)=%7wO;2s<_vUijzf zn}6Z{q$f{n<@H%!b*$?4e7uZtN=KlQVu*6~dL8j&XD3hFb-v{3AFcgY`At5kPcqx_ zwQSR^Yy6x4*1T+#f3fJuhDxIgpO+rbt99#CY4=*R=)jBz3)kIuo7nvH$g7Mwy__*( zyADs#)3dew!MuA%jAcP$em&EH2{ZE^Pw1NGB6;JOVp6if)cZ5K;_j?Xm}?_n?c=hf T=x?7s&_@iOu6{1-oD!M<^3rn3 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/hazmat_boots_grey.png b/assets/hbm/textures/items/hazmat_boots_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..56478847d15ef251f53a897e393a43a9a4363041 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf!uhIGueqJ;pJGRb+_{yN42+-5nf`Fz_w1UmwkbkWg4XTr^yu{Xde8sp^@U${e}5SFnDvo35O<35|+xzhBY;z5^!$(wARsTOWX=nrj z+wD@Tg9|&8B|a1vX@|A$IAX}7AR2IAMu!7*@@&SGPJ=dk^Sd22WQ%mvv4FO#p)!T2BA~ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/hazmat_cloth_grey.png b/assets/hbm/textures/items/hazmat_cloth_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..cfdc8090121e0ade9ead396f28400d50f697fc12 GIT binary patch literal 349 zcmV-j0iyniP)1sx5JkVe=>!g_GZ%9d1bd7*9F03#v*cnLcJ za!{NM0JPQ#td1YWrdW(IFvdVc;Jn}CySnK3mG>Ur`%^uJ1i;bnGvl^xcs#x#rA+Ge z5x?uYS7AUzaLz#p0q5NF7D|z0S!00000NkvXXu0mjf{X&ve literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/hazmat_cloth_red.png b/assets/hbm/textures/items/hazmat_cloth_red.png new file mode 100644 index 0000000000000000000000000000000000000000..ca885a91bf20c3b79c47d1ed6e69882bc506d064 GIT binary patch literal 357 zcmV-r0h<1aP)Y%-YpdXR7&?##^$#bC}ku6i8 zXclBD9RdO21SfWEcPKHkEhj^ICrkJo?h_AgOyC|qUtel~EX{datpY!CMR5NZ0g&$s zvNQ*{C>s>G$#+HbJzXqYOn40j2&0fN3dz!(IG)sAfiI_H$>~`3?p;YEIL|u-Rz<~p zy+KOZZg;LfetNi6hAhpo)*^(!T01;~ud*9sOuqsAy|n$=d!haI!26d$DTUUWva~@< zFkLKznf_+J-cS`4RZ+3u9(tl~eSkanAf;rcb@S7QdTu>#w?1?hDUK(#loBBX#u&6C zQ%WI(AW4$e2)z}J<4N6xj4@u=D{wO!jaysSh5seLPH&XtL#zZj>;6{%fENoEns0bN+0gw(ghons#g!9N?OM0_S)zo2Z?Md9!-)YaZ%QyH`>3s4#dT&*j(g-) z_UAE1wY`fDShAa*{^WQ3@G6Dfj0`IxKkT?a=}pbfM?XLPHv93YxsCs*@Xm-0?HhU3kcCN}I50{BEm5tT^*G~KYhT@1V*N;CIaK6d6c=aBIwrBn4_Zv;|^!iu-?~i4dqR$PJ&CkP( zH#`qZmbj#JSYHNj7C!E-nEC_x>g)R($7QEqkL8Xyt!jyR!e46&3$JfB5hxJt^te`6EYIp6i>L w{p*+Oh~RC^oHAv~AAO)jht%&`Dzh^%{8h74`LEV02lN1gr>mdKI;Vst09Kx6W&i*H literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/hazmat_legs_grey.png b/assets/hbm/textures/items/hazmat_legs_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..7218a03cfc82645ec60b650d83754de35558c182 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf{7FKV14ws#ozgG>9%)s{Wf*(n`W)YJ| zvGmQ1j~vG(W^Y&(w6>IKLmSVui8DKAR=d7oi(WdVZ1eYfUuN=(MYwpl?BYGsz{>W3 zVaJ@$pBr}nV(wuGHSJyd_vOT>^8LTsug_u>^3h3`7W14AbPa>2tDnm{r-UW|^mt2y literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/hazmat_legs_red.png b/assets/hbm/textures/items/hazmat_legs_red.png new file mode 100644 index 0000000000000000000000000000000000000000..2c07c2b19b3ca01a17252f35e52e5a6f387834c0 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfuKDqkq*q(5(QC-mtNzxr@Xbx*J$eVS7<@i|etuqZzJ2|<8(&|G zzho2OcH=#ebO31JMy(^NeG?}X9JOBf#leh$!7fin;n2kS&wwss@O1TaS?83{1ON&L BQMLd8 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/hazmat_plate_grey.png b/assets/hbm/textures/items/hazmat_plate_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d6b6ff56d5e616d4aa3e3fa918024554648bd8 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfL zoq<6b%cG+-ZqM8FcC*8co0$v;o?HHDIs7hfr6T)t5!NO8^~=uf%;?cLP(7dZ@=bom z*$>amXlCsC`)t=fmL*0E*KWP&?sJS-0aUYo)v-B}mk$W+xN|GCmN9Z$gvXRzjy#}e O7(8A5T-G@yGywq4PjMRn literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/radaway_flush.png b/assets/hbm/textures/items/radaway_flush.png new file mode 100644 index 0000000000000000000000000000000000000000..517f340d39a1b6db0c96e651dab09ac89f43ea44 GIT binary patch literal 321 zcmV-H0lxl;P)~o5ZFE7ii=W16b{Xc)o45Obf5Xy|dvTGk+)#w)SoXW0`? z06Ait6YR}a@&vUfxg;r-A zfiVWg7&zw$!_Xwt8$9AiQG_4}Ktyn=ZrE5F8>$qBtoHbSYA}$P@AaKY)_!{D264;MVRet?~vw z;)WlXjuaG#+XBQD*Ik-`WOJuDZamGMMzgcCcMCikfs6cRZLhhOdwjgVF7&HwqE@37 zX#xOHLLk-}N(j9C8ox#2!sN*pO$jld9ERQz772nN@D{b)|7|c~eLT+huIs@2J)Rvp z?+8*#NGYL|LZ0V7ncHBBUlawhECUfCGUhgeX-*;nGlPh{-2u-VM8*KS9XJf<&au`Q z99rihl~rTcpWFF2B4aQdzMPBXMXg3#R*gNSsV%E!v6(mHoFw-Z^JZi3F8&XG0AlH2 U?}YwT2mk;807*qoM6N<$g6Um>JOBUy literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/radx.png b/assets/hbm/textures/items/radx.png new file mode 100644 index 0000000000000000000000000000000000000000..0026e2c0c698b10cdc972af74345e448f4aad367 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4>XAZ&d+Uo*Gu z*fov&oWpSg2T#wJ`zKAh^ndpCZ-2srf_~LMJ0rO!u|YKC=Zin~#m{(T?(f<5+si_v9WpZI52$su*_FyOYY7l!H69}N=F$OTns$6InT2H3iJenr>mdKI;Vst E0E(AvJOBUy literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/ModelHazGrey.png b/assets/hbm/textures/models/ModelHazGrey.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2ef63ae4a840503d4717a7873bf307ff12af88 GIT binary patch literal 815 zcmV+~1JL}5P)N2bZe?^J zG%heMGBNQWX_Wu~0<1|yK~z{r?UhT40x=MVa|Tc1LKlJviVG10K@hxy?4?6 zX)=C+zbP|zw>mw$Srkb+srvtVwkwrNE=!inrJqixezV#5#bV)CtCipFc46giJRXOA zn&jEf1Vxe+;g3Aq2>~fB^>>0_>>)!kk8+kQ4xB!!Izti9lKk3L!udD(`rW5D~uZ z_xryuLbaQ`C9m`OJb2Hl_8SZa9vKdYVO4wP7U66*3;iwGZnue101##Xfa~=->;Yv@ zbXXJ4@$lS$Canj?+}>Ra-v9w)>Y(>fcfxNQ-B9J#nk_cGO)pj-ofQo=pUa)IiMoUnj?WgmQVvCpmtNgTRnlrYu+4j_gZrOe*eCB*X#Ad znkT&LcDw%B`%b5m*kB)@W7`1~frR$Y2*hvF2(;VngaG^aoJv5Eh`kai0C^+e_#K`C z)@rpLgl}1qNFwlC0su9eP2XrVe7#=x<#IU?;agTDk{VDQ*bre%9A5$YkJfI}kBduv>&P}r4%R004gZ}Fo~QecbF zhCeM54iGB4TCF~W*?Rp>3SLc>-Z?5Z2Ita(zLSEF2q@I=D%8(20`@;YL002ovPDHLkV1jUNSSN2bZe?^J zG%heMGBNQWX_Wu~0_;gdK~z{r?Ug}qQb81j-`` zw)@)2-StV!vG$?Sei)ZT>ipz7V5`-ti2LD%yBl=e{hN-Ffq>S3y}fXR=8#GPq&A4a z@AsE>I01q0-P0m#0JRp9fL!YQrX{ zwtsFOK;|+6M=1ed$WQH2!NQMuCjw<9I0^wupt_>~fg-&7cKPDzO^DMi)3w~x^{Uyl zxjom{Z#J7bVm_bSQ`a+TvQPew3xIom<1;o;e=q>Vjqd^MS^B4q{n|2bSwG;N!oKx$ zdd5|g9`SH?RUgUNpnFSQak)$d2{?-6bZil+LADG-{=uAC3vksVo5$3M<(G!^C|0H`AD6(V4n zm-LYg5WvjoYj=x)6j0_e6mwLN57Z??aGDhaQhlUQAj}*xkP1rxs0gS8kVoP;d&);Z zAk{}UN+1^?E(m?RH(K({Z(0&4}=>N{PY)@LB+6XA%kVs`89P0drI(>Sym-xeE<^MO!yc@cKtT_$Fu7}hwl4N;4gfapFzsYWY7Qr002ovPDHLk FV1icGkzW7+ literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/fluid/MudBlock.java b/com/hbm/blocks/fluid/MudBlock.java index 6e1b931f3..77cdc58a8 100644 --- a/com/hbm/blocks/fluid/MudBlock.java +++ b/com/hbm/blocks/fluid/MudBlock.java @@ -91,21 +91,7 @@ public class MudBlock extends BlockFluidClassic { * Library.damageSuit(((EntityPlayer)entity), 3); */ - } else if (entity instanceof EntityCreeper) { - EntityNuclearCreeper creep = new EntityNuclearCreeper(world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - if (!entity.isDead) - if (!world.isRemote) - world.spawnEntityInWorld(creep); - entity.setDead(); - } else if (entity instanceof EntityVillager) { - EntityZombie creep = new EntityZombie(world); - creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); - entity.setDead(); - if (!world.isRemote) - world.spawnEntityInWorld(creep); - } else if (entity instanceof EntityLivingBase && !(entity instanceof EntityNuclearCreeper) - && !(entity instanceof EntityMooshroom) && !(entity instanceof EntityZombie)) { + } else { entity.attackEntityFrom(ModDamageSource.mudPoisoning, 8); } } diff --git a/com/hbm/blocks/fluid/ToxicBlock.java b/com/hbm/blocks/fluid/ToxicBlock.java index a9c93411e..438c59038 100644 --- a/com/hbm/blocks/fluid/ToxicBlock.java +++ b/com/hbm/blocks/fluid/ToxicBlock.java @@ -109,7 +109,9 @@ public class ToxicBlock extends BlockFluidClassic { // entity.attackEntityFrom(ModDamageSource.radiation, 2.5F); // } - Library.applyRadiation(entity, 2 * 60 * 20, 50, 60 * 20, 35); + //Library.applyRadiation(entity, 2 * 60 * 20, 50, 60 * 20, 35); + + Library.applyRadData(entity, 1.0F); } @Override diff --git a/com/hbm/blocks/generic/BlockOre.java b/com/hbm/blocks/generic/BlockOre.java index f1f10d587..93235a45d 100644 --- a/com/hbm/blocks/generic/BlockOre.java +++ b/com/hbm/blocks/generic/BlockOre.java @@ -230,38 +230,42 @@ public class BlockOre extends Block { { ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 60 * 20, 2)); } - /*if (entity instanceof EntityLivingBase && this == ModBlocks.block_trinitite) + if (entity instanceof EntityLivingBase && this == ModBlocks.block_trinitite) { - Library.applyRadiation((EntityLivingBase)entity, 45, 19, 30, 14); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); } if (entity instanceof EntityLivingBase && this == ModBlocks.block_waste) { - Library.applyRadiation((EntityLivingBase)entity, 60, 19, 40, 14); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); } if (entity instanceof EntityLivingBase && (this == ModBlocks.waste_trinitite || this == ModBlocks.waste_trinitite_red)) { - Library.applyRadiation((EntityLivingBase)entity, 30, 9, 15, 4); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 0)); } if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_0) { - Library.applyRadiation((EntityLivingBase)entity, 30, 10, 20, 5); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 0)); } if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_1) { - Library.applyRadiation((EntityLivingBase)entity, 60, 25, 40, 20); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 1)); } if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_2) { - Library.applyRadiation((EntityLivingBase)entity, 2 * 60, 40, 90, 30); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); } if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_3) { - Library.applyRadiation((EntityLivingBase)entity, 3 * 60, 60, 2 * 60, 40); + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 3)); } if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_4) { - Library.applyRadiation((EntityLivingBase)entity, 4 * 60, 80, 2 * 90, 60); - }*/ + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 4)); + } + if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_core) + { + ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 5)); + } if(this == ModBlocks.block_meteor_molten) entity.setFire(5); diff --git a/com/hbm/entity/effect/EntityFalloutRain.java b/com/hbm/entity/effect/EntityFalloutRain.java index 40f3fb27b..7aa3d0477 100644 --- a/com/hbm/entity/effect/EntityFalloutRain.java +++ b/com/hbm/entity/effect/EntityFalloutRain.java @@ -5,11 +5,13 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.NukeEnvironmentalEffect; import com.hbm.lib.Library; +import com.hbm.potion.HbmPotion; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @@ -75,16 +77,20 @@ public class EntityFalloutRain extends Entity { EntityLivingBase entity = (EntityLivingBase) o; if(Math.sqrt(Math.pow(entity.posX - posX, 2) + Math.pow(entity.posZ - posZ, 2)) <= getScale()) { - Library.applyRadiation(entity, 30, 9, 0, 0); + //Library.applyRadiation(entity, 30, 9, 0, 0); + + entity.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 30 * 20, 2)); } } } - } - - if(this.age >= this.maxAge) - { - this.age = 0; - this.setDead(); + + if(this.age >= this.maxAge) + { + this.age = 0; + this.setDead(); + } + + System.out.println(age + " " + maxAge); } } @@ -96,11 +102,15 @@ public class EntityFalloutRain extends Entity { @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { age = p_70037_1_.getShort("age"); + setScale(p_70037_1_.getInteger("scale")); + maxAge = p_70037_1_.getShort("maxAge"); } @Override protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { p_70014_1_.setShort("age", (short)age); + p_70014_1_.setInteger("scale", getScale()); + p_70014_1_.setShort("maxAge", (short)maxAge); } diff --git a/com/hbm/entity/logic/EntityNukeExplosionMK4.java b/com/hbm/entity/logic/EntityNukeExplosionMK4.java index b243c6fdf..7ca8fed12 100644 --- a/com/hbm/entity/logic/EntityNukeExplosionMK4.java +++ b/com/hbm/entity/logic/EntityNukeExplosionMK4.java @@ -5,6 +5,7 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeRay; import com.hbm.main.MainRegistry; +import com.hbm.saveddata.RadiationSavedData; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; @@ -45,6 +46,15 @@ public class EntityNukeExplosionMK4 extends Entity { return; } + if(!worldObj.isRemote && fallout && explosion != null) { + RadiationSavedData data = RadiationSavedData.getData(worldObj); + + float radMax = (float) (length / 2F * Math.pow(length, 2) / 35F); + System.out.println(radMax); + float rad = radMax / 4F; + data.incrementRad(worldObj, (int)this.posX, (int)this.posZ, rad, radMax); + } + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); if(rand.nextInt(5) == 0) this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); @@ -73,7 +83,7 @@ public class EntityNukeExplosionMK4 extends Entity { explosion.processTip(1024); } else if(fallout) { - EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj, (int)(this.length * 1.8) * 25 * MainRegistry.falloutDura / 100); + EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj, (int)(this.length * 0.9) * 2 * MainRegistry.falloutDura / 100); fallout.posX = this.posX; fallout.posY = this.posY; fallout.posZ = this.posZ; diff --git a/com/hbm/entity/mob/EntityNuclearCreeper.java b/com/hbm/entity/mob/EntityNuclearCreeper.java index ca29ab36b..403d740aa 100644 --- a/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -258,7 +258,9 @@ public class EntityNuclearCreeper extends EntityMob { { if(entity instanceof EntityLivingBase && !(entity instanceof EntityNuclearCreeper)) { - Library.applyRadiation(entity, 20, 9, 5, 2); + //Library.applyRadiation(entity, 20, 9, 5, 2); + + Library.applyRadData(entity, 0.25F); } } } diff --git a/com/hbm/handler/HazmatRegistry.java b/com/hbm/handler/HazmatRegistry.java new file mode 100644 index 000000000..c1b99e149 --- /dev/null +++ b/com/hbm/handler/HazmatRegistry.java @@ -0,0 +1,60 @@ +package com.hbm.handler; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.potion.HbmPotion; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; + +public class HazmatRegistry { + + public static final HazmatRegistry instance = new HazmatRegistry(); + private static List entries = new ArrayList(); + + private class HazmatEntry { + + private Item item; + private float resistance; + + private HazmatEntry(Item item, float resistance) { + this.item = item; + this.resistance = resistance; + } + } + + public void registerHazmat(Item item, float resistance) { + + entries.add(new HazmatEntry(item, resistance)); + } + + public float getResistance(Item item) { + + for(HazmatEntry entry : entries) { + + if(entry.item == item) + return entry.resistance; + } + + return 0.0F; + } + + public float getResistance(EntityPlayer player) { + + float res = 0.0F; + + for(int i = 0; i < 4; i++) { + if(player.inventory.armorInventory[i] != null) { + res += getResistance(player.inventory.armorInventory[i].getItem()); + } + } + + if(player.isPotionActive(HbmPotion.radx)) + res += 0.4F; + + return res; + + } + +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 7bca29bef..a153239c7 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -128,6 +128,8 @@ public class ModItems { public static Item nugget_beryllium; public static Item plate_gold; public static Item hazmat_cloth; + public static Item hazmat_cloth_red; + public static Item hazmat_cloth_grey; public static Item asbestos_cloth; public static Item filter_coal; public static Item plate_advanced_alloy; @@ -522,6 +524,9 @@ public class ModItems { public static Item syringe_metal_super; public static Item syringe_taint; public static Item radaway; + public static Item radaway_strong; + public static Item radaway_flush; + public static Item radx; public static Item med_bag; public static Item pill_iodine; public static Item plan_c; @@ -541,6 +546,7 @@ public class ModItems { public static Item bottle_cherry; public static Item bottle_quantum; public static Item bottle_sparkle; + public static Item bottle_rad; public static Item bottle2_empty; public static Item bottle2_korl; public static Item bottle2_fritz; @@ -551,6 +557,7 @@ public class ModItems { public static Item cap_nuka; public static Item cap_quantum; public static Item cap_sparkle; + public static Item cap_rad; public static Item cap_korl; public static Item cap_fritz; public static Item cap_sunset; @@ -1134,6 +1141,14 @@ public class ModItems { public static Item hazmat_plate; public static Item hazmat_legs; public static Item hazmat_boots; + public static Item hazmat_helmet_red; + public static Item hazmat_plate_red; + public static Item hazmat_legs_red; + public static Item hazmat_boots_red; + public static Item hazmat_helmet_grey; + public static Item hazmat_plate_grey; + public static Item hazmat_legs_grey; + public static Item hazmat_boots_grey; public static Item hazmat_paa_helmet; public static Item hazmat_paa_plate; @@ -1495,6 +1510,8 @@ public class ModItems { nugget_schrabidium = new ItemCustomLore().setUnlocalizedName("nugget_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium"); nugget_beryllium = new Item().setUnlocalizedName("nugget_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_beryllium"); hazmat_cloth = new Item().setUnlocalizedName("hazmat_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth"); + hazmat_cloth_red = new Item().setUnlocalizedName("hazmat_cloth_red").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_red"); + hazmat_cloth_grey = new Item().setUnlocalizedName("hazmat_cloth_grey").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hazmat_cloth_grey"); asbestos_cloth = new Item().setUnlocalizedName("asbestos_cloth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":asbestos_cloth"); filter_coal = new Item().setUnlocalizedName("filter_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":filter_coal"); ingot_hes = new ItemRadioactive().setUnlocalizedName("ingot_hes").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_hes"); @@ -1830,6 +1847,9 @@ public class ModItems { syringe_taint = new ItemSyringe().setUnlocalizedName("syringe_taint").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_taint"); med_bag = new ItemSyringe().setUnlocalizedName("med_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_bag"); radaway = new ItemSyringe().setUnlocalizedName("radaway").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway"); + radaway_strong = new ItemSyringe().setUnlocalizedName("radaway_strong").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway_strong"); + radaway_flush = new ItemSyringe().setUnlocalizedName("radaway_flush").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway_flush"); + radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx"); pill_iodine = new ItemPill(0).setUnlocalizedName("pill_iodine").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_iodine"); plan_c = new ItemPill(0).setUnlocalizedName("plan_c").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plan_c"); stealth_boy = new ItemStarterKit().setUnlocalizedName("stealth_boy").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":stealth_boy"); @@ -1848,6 +1868,7 @@ public class ModItems { bottle_cherry = new ItemEnergy().setUnlocalizedName("bottle_cherry").setContainerItem(ModItems.bottle_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle_cherry"); bottle_quantum = new ItemEnergy().setUnlocalizedName("bottle_quantum").setContainerItem(ModItems.bottle_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle_quantum"); bottle_sparkle = new ItemEnergy().setUnlocalizedName("bottle_sparkle").setContainerItem(ModItems.bottle_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle_sparkle"); + bottle_rad = new ItemEnergy().setUnlocalizedName("bottle_rad").setContainerItem(ModItems.bottle_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle_rad"); bottle2_empty = new Item().setUnlocalizedName("bottle2_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle2_empty"); bottle2_korl = new ItemEnergy().setUnlocalizedName("bottle2_korl").setContainerItem(ModItems.bottle2_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle2_korl"); bottle2_fritz = new ItemEnergy().setUnlocalizedName("bottle2_fritz").setContainerItem(ModItems.bottle2_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bottle2_fritz"); @@ -1858,6 +1879,7 @@ public class ModItems { cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); cap_sparkle = new Item().setUnlocalizedName("cap_sparkle").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_sparkle"); + cap_rad = new Item().setUnlocalizedName("cap_rad").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_rad"); cap_korl = new Item().setUnlocalizedName("cap_korl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_korl"); cap_fritz = new Item().setUnlocalizedName("cap_fritz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_fritz"); cap_sunset = new Item().setUnlocalizedName("cap_sunset").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_sunset"); @@ -2494,6 +2516,14 @@ public class ModItems { hazmat_plate = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat, 9, 1).setUnlocalizedName("hazmat_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_plate"); hazmat_legs = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat, 9, 2).setUnlocalizedName("hazmat_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_legs"); hazmat_boots = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat, 9, 3).setUnlocalizedName("hazmat_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_boots"); + hazmat_helmet_red = new ArmorModel(MainRegistry.enumArmorMaterialHazmat2, 9, 0).setUnlocalizedName("hazmat_helmet_red").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_helmet_red"); + hazmat_plate_red = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat2, 9, 1).setUnlocalizedName("hazmat_plate_red").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_plate_red"); + hazmat_legs_red = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat2, 9, 2).setUnlocalizedName("hazmat_legs_red").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_legs_red"); + hazmat_boots_red = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat2, 9, 3).setUnlocalizedName("hazmat_boots_red").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_boots_red"); + hazmat_helmet_grey = new ArmorModel(MainRegistry.enumArmorMaterialHazmat3, 9, 0).setUnlocalizedName("hazmat_helmet_grey").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_helmet_grey"); + hazmat_plate_grey = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat3, 9, 1).setUnlocalizedName("hazmat_plate_grey").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_plate_grey"); + hazmat_legs_grey = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat3, 9, 2).setUnlocalizedName("hazmat_legs_grey").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_legs_grey"); + hazmat_boots_grey = new ArmorHazmat(MainRegistry.enumArmorMaterialHazmat3, 9, 3).setUnlocalizedName("hazmat_boots_grey").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_boots_grey"); hazmat_paa_helmet = new ArmorHazmat(MainRegistry.enumArmorMaterialPaa, 9, 0).setUnlocalizedName("hazmat_paa_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_paa_helmet"); hazmat_paa_plate = new ArmorHazmat(MainRegistry.enumArmorMaterialPaa, 9, 1).setUnlocalizedName("hazmat_paa_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_paa_plate"); hazmat_paa_legs = new ArmorHazmat(MainRegistry.enumArmorMaterialPaa, 9, 2).setUnlocalizedName("hazmat_paa_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_paa_legs"); @@ -2902,6 +2932,8 @@ public class ModItems { //Other Plates GameRegistry.registerItem(hazmat_cloth, hazmat_cloth.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_cloth_red, hazmat_cloth_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_cloth_grey, hazmat_cloth_grey.getUnlocalizedName()); GameRegistry.registerItem(asbestos_cloth, asbestos_cloth.getUnlocalizedName()); GameRegistry.registerItem(filter_coal, filter_coal.getUnlocalizedName()); @@ -3751,6 +3783,9 @@ public class ModItems { GameRegistry.registerItem(syringe_taint, syringe_taint.getUnlocalizedName()); GameRegistry.registerItem(med_bag, med_bag.getUnlocalizedName()); GameRegistry.registerItem(radaway, radaway.getUnlocalizedName()); + GameRegistry.registerItem(radaway_strong, radaway_strong.getUnlocalizedName()); + GameRegistry.registerItem(radaway_flush, radaway_flush.getUnlocalizedName()); + GameRegistry.registerItem(radx, radx.getUnlocalizedName()); GameRegistry.registerItem(pill_iodine, pill_iodine.getUnlocalizedName()); GameRegistry.registerItem(plan_c, plan_c.getUnlocalizedName()); GameRegistry.registerItem(stealth_boy, stealth_boy.getUnlocalizedName()); @@ -3790,6 +3825,7 @@ public class ModItems { GameRegistry.registerItem(bottle_cherry, bottle_cherry.getUnlocalizedName()); GameRegistry.registerItem(bottle_quantum, bottle_quantum.getUnlocalizedName()); GameRegistry.registerItem(bottle_sparkle, bottle_sparkle.getUnlocalizedName()); + GameRegistry.registerItem(bottle_rad, bottle_rad.getUnlocalizedName()); GameRegistry.registerItem(bottle2_empty, bottle2_empty.getUnlocalizedName()); GameRegistry.registerItem(bottle2_korl, bottle2_korl.getUnlocalizedName()); GameRegistry.registerItem(bottle2_fritz, bottle2_fritz.getUnlocalizedName()); @@ -3802,6 +3838,7 @@ public class ModItems { GameRegistry.registerItem(cap_nuka, cap_nuka.getUnlocalizedName()); GameRegistry.registerItem(cap_quantum, cap_quantum.getUnlocalizedName()); GameRegistry.registerItem(cap_sparkle, cap_sparkle.getUnlocalizedName()); + GameRegistry.registerItem(cap_rad, cap_rad.getUnlocalizedName()); GameRegistry.registerItem(cap_korl, cap_korl.getUnlocalizedName()); GameRegistry.registerItem(cap_fritz, cap_fritz.getUnlocalizedName()); GameRegistry.registerItem(cap_sunset, cap_sunset.getUnlocalizedName()); @@ -3899,6 +3936,14 @@ public class ModItems { GameRegistry.registerItem(hazmat_plate, hazmat_plate.getUnlocalizedName()); GameRegistry.registerItem(hazmat_legs, hazmat_legs.getUnlocalizedName()); GameRegistry.registerItem(hazmat_boots, hazmat_boots.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_helmet_red, hazmat_helmet_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_plate_red, hazmat_plate_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_legs_red, hazmat_legs_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_boots_red, hazmat_boots_red.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_helmet_grey, hazmat_helmet_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_plate_grey, hazmat_plate_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_legs_grey, hazmat_legs_grey.getUnlocalizedName()); + GameRegistry.registerItem(hazmat_boots_grey, hazmat_boots_grey.getUnlocalizedName()); GameRegistry.registerItem(hazmat_paa_helmet, hazmat_paa_helmet.getUnlocalizedName()); GameRegistry.registerItem(hazmat_paa_plate, hazmat_paa_plate.getUnlocalizedName()); GameRegistry.registerItem(hazmat_paa_legs, hazmat_paa_legs.getUnlocalizedName()); diff --git a/com/hbm/items/food/ItemEnergy.java b/com/hbm/items/food/ItemEnergy.java index d60d1baa1..895ffa599 100644 --- a/com/hbm/items/food/ItemEnergy.java +++ b/com/hbm/items/food/ItemEnergy.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; @@ -74,12 +75,14 @@ public class ItemEnergy extends Item { player.heal(4F); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1)); player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 30 * 20, 1)); + Library.applyRadDirect(player, 5.0F); } if(this == ModItems.bottle_cherry) { player.heal(6F); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.jump.id, 30 * 20, 2)); + Library.applyRadDirect(player, 5.0F); } if(this == ModItems.bottle_quantum) { @@ -87,6 +90,7 @@ public class ItemEnergy extends Item { player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1)); player.addPotionEffect(new PotionEffect(Potion.resistance.id, 30 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 1)); + Library.applyRadDirect(player, 15.0F); } if(this == ModItems.bottle2_korl) { @@ -123,6 +127,17 @@ public class ItemEnergy extends Item { player.addPotionEffect(new PotionEffect(Potion.resistance.id, 120 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); + Library.applyRadDirect(player, 5.0F); + } + if(this == ModItems.bottle_rad) + { + player.heal(10F); + player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 120 * 20, 1)); + player.addPotionEffect(new PotionEffect(Potion.resistance.id, 120 * 20, 2)); + player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 120 * 20, 0)); + player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 4)); + player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); + Library.applyRadDirect(player, 15.0F); } if(this == ModItems.bottle2_sunset) { @@ -198,6 +213,16 @@ public class ItemEnergy extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_empty)); } + if(this == ModItems.bottle_rad) { + player.inventory.addItemStackToInventory(new ItemStack(ModItems.cap_rad)); + if (stack.stackSize <= 0) + { + return new ItemStack(ModItems.bottle_empty); + } + + player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_empty)); + } + if(this == ModItems.bottle2_sunset) { if(world.rand.nextInt(10) == 0) @@ -318,6 +343,13 @@ public class ItemEnergy extends Item { else list.add("The most delicious beverage in the wasteland!"); } + if(this == ModItems.bottle_sparkle) + { + if(MainRegistry.polaroidID == 11) + list.add("Now with 400% more radiation!"); + else + list.add("Tastes like radish and radiation."); + } if(this == ModItems.bottle2_sunset) { if(MainRegistry.polaroidID == 11) { diff --git a/com/hbm/items/food/ItemPill.java b/com/hbm/items/food/ItemPill.java index d4ac70645..c4e9afb5c 100644 --- a/com/hbm/items/food/ItemPill.java +++ b/com/hbm/items/food/ItemPill.java @@ -11,6 +11,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; public class ItemPill extends ItemFood { @@ -43,6 +44,10 @@ public class ItemPill extends ItemFood { for(int i = 0; i < 10; i++) player.attackEntityFrom(rand.nextBoolean() ? ModDamageSource.euthanizedSelf : ModDamageSource.euthanizedSelf2, 1000); } + + if(this == ModItems.radx) { + player.addPotionEffect(new PotionEffect(HbmPotion.radx.id, 3 * 60 * 20, 0)); + } } } @@ -55,6 +60,22 @@ public class ItemPill extends ItemFood { if(this == ModItems.plan_c) { list.add("Deadly"); } + if(this == ModItems.radx) { + list.add("Increases radiation resistance by 0.4 for 3 minutes"); + } + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 10; + } + + @Override + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { + + p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); + + return p_77659_1_; } } diff --git a/com/hbm/items/gear/ArmorHazmat.java b/com/hbm/items/gear/ArmorHazmat.java index 563fe855d..bbd256364 100644 --- a/com/hbm/items/gear/ArmorHazmat.java +++ b/com/hbm/items/gear/ArmorHazmat.java @@ -39,6 +39,18 @@ public class ArmorHazmat extends ItemArmor { if(stack.getItem().equals(ModItems.hazmat_paa_legs)) { return (RefStrings.MODID + ":textures/armor/hazmat_paa_2.png"); } + if(stack.getItem().equals(ModItems.hazmat_helmet_red) || stack.getItem().equals(ModItems.hazmat_plate_red) || stack.getItem().equals(ModItems.hazmat_boots_red)) { + return (RefStrings.MODID + ":textures/armor/hazmat_1_red.png"); + } + if(stack.getItem().equals(ModItems.hazmat_legs_red)) { + return (RefStrings.MODID + ":textures/armor/hazmat_2_red.png"); + } + if(stack.getItem().equals(ModItems.hazmat_helmet_grey) || stack.getItem().equals(ModItems.hazmat_plate_grey) || stack.getItem().equals(ModItems.hazmat_boots_grey)) { + return (RefStrings.MODID + ":textures/armor/hazmat_1_grey.png"); + } + if(stack.getItem().equals(ModItems.hazmat_legs_grey)) { + return (RefStrings.MODID + ":textures/armor/hazmat_2_grey.png"); + } else return null; } diff --git a/com/hbm/items/gear/ArmorModel.java b/com/hbm/items/gear/ArmorModel.java index 892c0f6db..89d4f8b32 100644 --- a/com/hbm/items/gear/ArmorModel.java +++ b/com/hbm/items/gear/ArmorModel.java @@ -63,6 +63,12 @@ public class ArmorModel extends ItemArmor { if (this == ModItems.gas_mask_m65) { return armorType == 0; } + if (this == ModItems.hazmat_helmet_red) { + return armorType == 0; + } + if (this == ModItems.hazmat_helmet_grey) { + return armorType == 0; + } if (this == ModItems.oxy_mask) { return armorType == 0; } @@ -118,7 +124,7 @@ public class ArmorModel extends ItemArmor { return this.modelGas; } } - if (this == ModItems.gas_mask_m65) { + if (this == ModItems.gas_mask_m65 || this == ModItems.hazmat_helmet_red || this == ModItems.hazmat_helmet_grey) { if (armorSlot == 0) { if (this.modelM65 == null) { this.modelM65 = new ModelM65(); @@ -164,6 +170,12 @@ public class ArmorModel extends ItemArmor { if (stack.getItem() == ModItems.gas_mask_m65) { return "hbm:textures/models/ModelM65.png"; } + if (stack.getItem() == ModItems.hazmat_helmet_red) { + return "hbm:textures/models/ModelHazRed.png"; + } + if (stack.getItem() == ModItems.hazmat_helmet_grey) { + return "hbm:textures/models/ModelHazGrey.png"; + } if (stack.getItem() == ModItems.oxy_mask) { return null; } @@ -206,7 +218,7 @@ public class ArmorModel extends ItemArmor { @SideOnly(Side.CLIENT) public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){ - if(this != ModItems.goggles && this != ModItems.gas_mask && this != ModItems.gas_mask_m65) + if(this != ModItems.goggles && this != ModItems.gas_mask && this != ModItems.gas_mask_m65 && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey) return; @@ -216,7 +228,7 @@ public class ArmorModel extends ItemArmor { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_ALPHA_TEST); - if(this == ModItems.goggles || this == ModItems.gas_mask_m65) { + if(this == ModItems.goggles || this == ModItems.gas_mask_m65 || this == ModItems.hazmat_helmet_red || this == ModItems.hazmat_helmet_grey) { switch((int)((double)stack.getItemDamage() / (double)stack.getMaxDamage() * 6D)) { case 0: Minecraft.getMinecraft().getTextureManager().bindTexture(goggleBlur0); break; diff --git a/com/hbm/items/special/ItemRadioactive.java b/com/hbm/items/special/ItemRadioactive.java index 414d8fe9e..c7f9db5ae 100644 --- a/com/hbm/items/special/ItemRadioactive.java +++ b/com/hbm/items/special/ItemRadioactive.java @@ -4,6 +4,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.RadEntitySavedData; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -20,11 +21,11 @@ public class ItemRadioactive extends Item { public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { if((entity instanceof EntityPlayer && !Library.checkForHazmat((EntityPlayer)entity)) || !(entity instanceof EntityPlayer)) { - doRadiationDamage(entity); + doRadiationDamage(entity, stack.stackSize); } } - public void doRadiationDamage(Entity entity) { + public void doRadiationDamage(Entity entity, float mod) { //Ultra Deadly: Watz Fuel //Strong: U235, Pu239, Pu240, all fuels except Schrabidium @@ -44,7 +45,8 @@ public class ItemRadioactive extends Item { this == ModItems.pellet_mes || this == ModItems.pellet_neptunium || this == ModItems.pellet_schrabidium) { - Library.applyRadiation(living, 80, 24, 60, 19); + //Library.applyRadiation(living, 80, 24, 60, 19); + Library.applyRadData(living, 100F/20F * mod); } //Strong @@ -78,7 +80,8 @@ public class ItemRadioactive extends Item { this == ModItems.gadget_core || this == ModItems.man_core || this == ModItems.nuclear_waste) { - Library.applyRadiation(living, 60, 19, 40, 14); + //Library.applyRadiation(living, 60, 19, 40, 14); + Library.applyRadData(living, 25F/20F * mod); } //Strong Nuggets @@ -98,7 +101,8 @@ public class ItemRadioactive extends Item { this == ModItems.rod_uranium_fuel_depleted || this == ModItems.rod_plutonium_fuel_depleted || this == ModItems.rod_mox_fuel_depleted) { - Library.applyRadiation(living, 45, 19, 30, 14); + //Library.applyRadiation(living, 45, 19, 30, 14); + Library.applyRadData(living, 15F/20F * mod); } //Medium @@ -116,7 +120,8 @@ public class ItemRadioactive extends Item { this == ModItems.mike_core || this == ModItems.tsar_core || this == ModItems.trinitite) { - Library.applyRadiation(living, 30, 14, 15, 9); + //Library.applyRadiation(living, 30, 14, 15, 9); + Library.applyRadData(living, 10F/20F * mod); } //Medium Nuggets @@ -128,7 +133,8 @@ public class ItemRadioactive extends Item { this == ModItems.rod_pu238 || this == ModItems.rod_plutonium || this == ModItems.pellet_rtg_weak) { - Library.applyRadiation(living, 20, 14, 5, 9); + //Library.applyRadiation(living, 20, 14, 5, 9); + Library.applyRadData(living, 5F/20F * mod); } //Weak @@ -141,7 +147,8 @@ public class ItemRadioactive extends Item { this == ModItems.rod_dual_u238 || this == ModItems.rod_quad_pu238 || this == ModItems.rod_dual_pu238) { - Library.applyRadiation(living, 20, 4, 5, 0); + //Library.applyRadiation(living, 20, 4, 5, 0); + Library.applyRadData(living, 5F/20F * mod); } //Weak Nuggets @@ -151,7 +158,8 @@ public class ItemRadioactive extends Item { this == ModItems.rod_uranium || this == ModItems.rod_u238 || this == ModItems.powder_yellowcake) { - Library.applyRadiation(living, 10, 4, 0, 0); + //Library.applyRadiation(living, 10, 4, 0, 0); + Library.applyRadData(living, 1F/20F * mod); } //Tritium @@ -160,19 +168,22 @@ public class ItemRadioactive extends Item { this == ModItems.rod_tritium || this == ModItems.rod_dual_tritium || this == ModItems.rod_quad_tritium) { - Library.applyRadiation(living, 10, 4, 0, 0); + //Library.applyRadiation(living, 10, 4, 0, 0); + Library.applyRadData(living, 2.5F/20F * mod); } //Powder if (this == ModItems.powder_neptunium || this == ModItems.powder_plutonium) { - Library.applyRadiation(living, 60, 19, 45, 14); + //Library.applyRadiation(living, 60, 19, 45, 14); + Library.applyRadData(living, 10F/20F * mod); living.setFire(5); } if (this == ModItems.powder_uranium) { - Library.applyRadiation(living, 20, 4, 0, 0); + //Library.applyRadiation(living, 20, 4, 0, 0); + Library.applyRadData(living, 5F/20F * mod); living.setFire(5); } @@ -196,7 +207,8 @@ public class ItemRadioactive extends Item { this == ModItems.rod_dual_schrabidium_fuel || this == ModItems.rod_quad_schrabidium_fuel) { living.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 20, 0)); - Library.applyRadiation(living, 100, 29, 75, 24); + //Library.applyRadiation(living, 100, 29, 75, 24); + Library.applyRadData(living, 35F/20F * mod); } if (this == ModItems.nugget_schrabidium || @@ -204,19 +216,22 @@ public class ItemRadioactive extends Item { this == ModItems.nugget_schrabidium_fuel || this == ModItems.nugget_hes || this == ModItems.nugget_les) { - living.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 20, 0)); - Library.applyRadiation(living, 75, 29, 60, 24); + //living.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 20, 0)); + Library.applyRadData(living, 20F/20F * mod); + //Library.applyRadiation(living, 75, 29, 60, 24); } if (this == ModItems.plate_schrabidium || this == ModItems.wire_schrabidium) { - living.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 20, 0)); - Library.applyRadiation(living, 80, 29, 60, 24); + //living.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 20, 0)); + Library.applyRadData(living, 25F/20F * mod); + //Library.applyRadiation(living, 80, 29, 60, 24); } if (this == ModItems.powder_schrabidium) { living.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 20, 0)); - Library.applyRadiation(living, 100, 29, 75, 24); + //Library.applyRadiation(living, 100, 29, 75, 24); + Library.applyRadData(living, 35F/20F * mod); living.setFire(5); } } diff --git a/com/hbm/items/special/ItemSyringe.java b/com/hbm/items/special/ItemSyringe.java index 3d0f9c04f..779cbd4dc 100644 --- a/com/hbm/items/special/ItemSyringe.java +++ b/com/hbm/items/special/ItemSyringe.java @@ -215,10 +215,55 @@ public class ItemSyringe extends Item { { if (!world.isRemote) { - player.removePotionEffect(HbmPotion.radiation.id); + //player.removePotionEffect(HbmPotion.radiation.id); RadEntitySavedData entityData = RadEntitySavedData.getData(world); - entityData.setRadForEntity(player, 0); + + float rad = entityData.getRadFromEntity(player); + rad -= 140F; + + if(rad < 0) + rad = 0; + + entityData.setRadForEntity(player, rad); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); + } + } + + if(this == ModItems.radaway_strong) + { + if (!world.isRemote) + { + RadEntitySavedData entityData = RadEntitySavedData.getData(world); + + float rad = entityData.getRadFromEntity(player); + rad -= 350F; + + if(rad < 0) + rad = 0; + + entityData.setRadForEntity(player, rad); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); + } + } + + if(this == ModItems.radaway_flush) + { + if (!world.isRemote) + { + RadEntitySavedData entityData = RadEntitySavedData.getData(world); + + float rad = entityData.getRadFromEntity(player); + rad -= 1000F; + + if(rad < 0) + rad = 0; + + entityData.setRadForEntity(player, rad); stack.stackSize--; world.playSoundAtEntity(player, "hbm:item.radaway", 1.0F, 1.0F); @@ -545,7 +590,13 @@ public class ItemSyringe extends Item { list.add("Removes negative effects"); } if(this == ModItems.radaway) { - list.add("Removes radiation effect"); + list.add("Removes 140 RAD"); + } + if(this == ModItems.radaway_strong) { + list.add("Removes 350 RAD"); + } + if(this == ModItems.radaway_flush) { + list.add("Removes 1000 RAD"); } if(this == ModItems.syringe_taint) { list.add("Tainted I for 60 seconds"); diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index f042682d1..f39ca2a4c 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -10,6 +10,7 @@ import com.hbm.calc.UnionOfTileEntitiesAndBooleansForOil; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.handler.HazmatRegistry; import com.hbm.interfaces.IConductor; import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; @@ -26,6 +27,7 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.RadEntitySavedData; import com.hbm.tileentity.conductor.TileEntityCable; import com.hbm.tileentity.conductor.TileEntityFluidDuct; import com.hbm.tileentity.conductor.TileEntityGasDuct; @@ -226,7 +228,7 @@ public class Library { //radLevel: Radiation level (0 = I) //maskDura: Radiation duration when wearing gasmask //maskLevel: Radiation level when wearing gasmask - public static void applyRadiation(Entity e, int radDura, int radLevel, int maskDura, int maskLevel) { + /*public static void applyRadiation(Entity e, int radDura, int radLevel, int maskDura, int maskLevel) { if(!(e instanceof EntityLivingBase)) return; @@ -253,6 +255,33 @@ public class Library { } entity.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, radDura * 20, radLevel)); + }*/ + + public static void applyRadData(Entity e, float f) { + + if(!(e instanceof EntityLivingBase)) + return; + + EntityLivingBase entity = (EntityLivingBase)e; + + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)entity; + + float koeff = 5.0F; + f *= (float) Math.pow(koeff, -HazmatRegistry.instance.getResistance(player)); + } + + RadEntitySavedData data = RadEntitySavedData.getData(entity.worldObj); + data.increaseRad(entity, f); + } + + public static void applyRadDirect(Entity e, float f) { + + if(!(e instanceof EntityLivingBase)) + return; + + RadEntitySavedData data = RadEntitySavedData.getData(e.worldObj); + data.increaseRad(e, f); } public static boolean checkForHazmat(EntityPlayer player) { @@ -298,6 +327,14 @@ public class Library { { return true; } + if(checkArmorPiece(player, ModItems.hazmat_helmet_red, 3)) + { + return true; + } + if(checkArmorPiece(player, ModItems.hazmat_helmet_grey, 3)) + { + return true; + } if(checkArmorPiece(player, ModItems.hazmat_paa_helmet, 3)) { return true; diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 008870638..e6ed8d1ef 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (2951)"; + public static final String VERSION = "1.0.27 BETA (2968)"; //HBM's Beta Naming Convention: //V T (X-Y-Z) //V -> next release version diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index d63d4c4f5..4920e380b 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -50,6 +50,8 @@ public class CraftingManager { //GameRegistry.addRecipe(new ItemStack(ModItems.wire_magnetized_tungsten, 6), new Object[] { "CCC", 'S', Items.string, 'C', ModItems.ingot_magnetized_tungsten }); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hazmat_cloth, 4), new Object[] { "LN", "LN", 'L', Items.leather, 'N', "nuggetLead" })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hazmat_cloth, 4), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', Items.leather, 'C', "dustLead" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', "dustRedstone" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', "plateIron", 'L', "plateLead", 'I', ModItems.plate_polymer })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.asbestos_cloth, 4), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', Blocks.wool, 'C', "dustNetherQuartz" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.asbestos_cloth, 16), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', ModItems.powder_bromine, 'C', Blocks.wool })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.filter_coal, 1), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', Items.paper, 'C', "dustCoal" })); @@ -892,6 +894,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.syringe_metal_psycho, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.glowstone_dust, 'S', ModItems.syringe_metal_empty }); GameRegistry.addRecipe(new ItemStack(ModItems.pill_iodine, 8), new Object[] { "IF", 'I', ModItems.powder_iodine, 'F', ModItems.fluorite }); GameRegistry.addRecipe(new ItemStack(ModItems.plan_c, 1), new Object[] { "PFP", 'P', ModItems.powder_poison, 'F', ModItems.fluorite }); + GameRegistry.addRecipe(new ItemStack(ModItems.radx, 1), new Object[] { "P", "F", 'P', ModItems.powder_coal, 'F', ModItems.fluorite }); GameRegistry.addRecipe(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); GameRegistry.addRecipe(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); GameRegistry.addRecipe(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', Items.leather, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); @@ -903,6 +906,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', "plateSteel", 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', "plateSteel", 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer })); GameRegistry.addRecipe(new ItemStack(ModItems.radaway, 1), new Object[] { "S", "M", "W", 'S', ModItems.plate_polymer, 'M', ModBlocks.mush, 'W', Items.potionitem }); + GameRegistry.addRecipe(new ItemStack(ModItems.radaway_strong, 1), new Object[] { "S", "M", "W", 'S', Items.pumpkin_seeds, 'M', ModBlocks.mush, 'W', ModItems.radaway }); + GameRegistry.addRecipe(new ItemStack(ModItems.radaway_flush, 1), new Object[] { "S", "M", "W", 'S', ModItems.powder_iodine, 'M', ModBlocks.mush, 'W', ModItems.radaway_strong }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Item.getItemFromBlock(Blocks.stone_button), 'L', Items.leather, 'I', "ingotSteel", 'C', ModItems.circuit_red_copper })); @@ -1097,6 +1102,14 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.hazmat_cloth }); GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.hazmat_cloth }); GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.hazmat_cloth }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hazmat_helmet_red, 1), new Object[] { "EEE", "IEI", "EFE", 'E', ModItems.hazmat_cloth_red, 'I', "paneGlass", 'P', "plateSteel", 'F', ModItems.gas_mask_filter })); + GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_plate_red, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.hazmat_cloth_red }); + GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_legs_red, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.hazmat_cloth_red }); + GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_boots_red, 1), new Object[] { "E E", "E E", 'E', ModItems.hazmat_cloth_red }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hazmat_helmet_grey, 1), new Object[] { "EEE", "IEI", "EFE", 'E', ModItems.hazmat_cloth_grey, 'I', "paneGlass", 'P', "plateSteel", 'F', ModItems.gas_mask_filter })); + GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_plate_grey, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.hazmat_cloth_grey }); + GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_legs_grey, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.hazmat_cloth_grey }); + GameRegistry.addRecipe(new ItemStack(ModItems.hazmat_boots_grey, 1), new Object[] { "E E", "E E", 'E', ModItems.hazmat_cloth_grey }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.asbestos_helmet, 1), new Object[] { "EEE", "EIE", 'E', ModItems.asbestos_cloth, 'I', "plateGold" })); GameRegistry.addRecipe(new ItemStack(ModItems.asbestos_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.asbestos_cloth }); GameRegistry.addRecipe(new ItemStack(ModItems.asbestos_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.asbestos_cloth }); @@ -1296,7 +1309,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', "ingotIron", 'D', "ingotRedstoneAlloy", 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', ModItems.ingot_starmetal, 'D', "ingotDesh", 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', ModItems.ingot_starmetal, 'D', "ingotDesh", 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 })); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_sparkle), new Object[] { ModItems.bottle_quantum, Items.carrot, Items.gold_nugget }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_sparkle), new Object[] { ModItems.bottle_nuka, Items.carrot, Items.gold_nugget }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_rad), new Object[] { ModItems.bottle_quantum, Items.carrot, Items.gold_nugget }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_nuke), new Object[] { "CGC", "CGC", "PAP", 'C', ModBlocks.det_charge, 'G', ModItems.grenade_mk2, 'P', "plateAdvanced", 'A', Blocks.anvil })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.radiobox), new Object[] { "-C-", "8OI", "EUE", '-', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier4, '8', ModItems.coil_gold, 'O', ModItems.pellet_rtg, 'I', ModItems.fuse, 'E', "plateSteel", 'U', ModItems.rtg_unit })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', "plateSteel", 'C', ModItems.circuit_red_copper, 'I', "ingotPolymer" })); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 3b993833e..0468a04bb 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -193,6 +193,7 @@ import com.hbm.entity.projectile.EntitySparkBeam; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.handler.FuelHandler; import com.hbm.handler.GUIHandler; +import com.hbm.handler.HazmatRegistry; import com.hbm.inventory.FluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.MachineRecipes; @@ -375,6 +376,8 @@ public class MainRegistry public static ArmorMaterial enumArmorMaterialSchrabidium = EnumHelper.addArmorMaterial("SCHRABIDIUM", 100, new int[] {3, 8, 6, 3}, 50); public static ArmorMaterial enumArmorMaterialEuphemium = EnumHelper.addArmorMaterial("EUPHEMIUM", 2100000000, new int[] {3, 8, 6, 3}, 100); public static ArmorMaterial enumArmorMaterialHazmat = EnumHelper.addArmorMaterial("HAZMAT", 60, new int[] {2, 5, 4, 1}, 5); + public static ArmorMaterial enumArmorMaterialHazmat2 = EnumHelper.addArmorMaterial("HAZMAT2", 60, new int[] {2, 5, 4, 1}, 5); + public static ArmorMaterial enumArmorMaterialHazmat3 = EnumHelper.addArmorMaterial("HAZMAT3", 60, new int[] {2, 5, 4, 1}, 5); public static ArmorMaterial enumArmorMaterialT45 = EnumHelper.addArmorMaterial("T45", 1000, new int[] {2, 5, 4, 1}, 0); public static ArmorMaterial enumArmorMaterialSteel = EnumHelper.addArmorMaterial("STEEL", 20, new int[] {2, 6, 5, 2}, 5); public static ArmorMaterial enumArmorMaterialTitanium = EnumHelper.addArmorMaterial("TITANIUM", 25, new int[] {3, 8, 6, 3}, 9); @@ -545,6 +548,7 @@ public class MainRegistry public static int radiationID = 63; public static int bangID = 64; public static int mutationID = 65; + public static int radxID = 66; public static int x; public static int y; @@ -590,6 +594,8 @@ public class MainRegistry enumArmorMaterialSchrabidium.customCraftingMaterial = ModItems.ingot_schrabidium; enumArmorMaterialHazmat.customCraftingMaterial = ModItems.hazmat_cloth; + enumArmorMaterialHazmat2.customCraftingMaterial = ModItems.hazmat_cloth_red; + enumArmorMaterialHazmat3.customCraftingMaterial = ModItems.hazmat_cloth_grey; enumArmorMaterialT45.customCraftingMaterial = ModItems.plate_titanium; enumArmorMaterialTitanium.customCraftingMaterial = ModItems.ingot_titanium; enumArmorMaterialSteel.customCraftingMaterial = ModItems.ingot_steel; @@ -1533,6 +1539,52 @@ public class MainRegistry FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), FluidType.getEnum(i), 1000)); FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), FluidType.getEnum(i), 16000)); } + + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_helmet, 0.2F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_plate, 0.4F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_legs, 0.3F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_boots, 0.1F); + + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_helmet_red, 0.3F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_plate_red, 0.6F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_legs_red, 0.45F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_boots_red, 0.15F); + + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_helmet_grey, 0.4F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_plate_grey, 0.8F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_legs_grey, 0.6F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_boots_grey, 0.2F); + + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_paa_helmet, 0.6F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_paa_plate, 1.2F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_paa_legs, 0.9F); + HazmatRegistry.instance.registerHazmat(ModItems.hazmat_paa_boots, 0.3F); + + HazmatRegistry.instance.registerHazmat(ModItems.jackt, 0.3F); + HazmatRegistry.instance.registerHazmat(ModItems.jackt2, 0.3F); + + HazmatRegistry.instance.registerHazmat(ModItems.gas_mask, 0.15F); + HazmatRegistry.instance.registerHazmat(ModItems.gas_mask_m65, 0.175F); + + HazmatRegistry.instance.registerHazmat(ModItems.steel_helmet, 0.04F); + HazmatRegistry.instance.registerHazmat(ModItems.steel_plate, 0.08F); + HazmatRegistry.instance.registerHazmat(ModItems.steel_legs, 0.06F); + HazmatRegistry.instance.registerHazmat(ModItems.steel_boots, 0.02F); + + HazmatRegistry.instance.registerHazmat(ModItems.alloy_helmet, 0.08F); + HazmatRegistry.instance.registerHazmat(ModItems.alloy_plate, 0.16F); + HazmatRegistry.instance.registerHazmat(ModItems.alloy_legs, 0.12F); + HazmatRegistry.instance.registerHazmat(ModItems.alloy_boots, 0.04F); + + HazmatRegistry.instance.registerHazmat(ModItems.schrabidium_helmet, 1.2F); + HazmatRegistry.instance.registerHazmat(ModItems.schrabidium_plate, 2.4F); + HazmatRegistry.instance.registerHazmat(ModItems.schrabidium_legs, 1.8F); + HazmatRegistry.instance.registerHazmat(ModItems.schrabidium_boots, 0.6F); + + HazmatRegistry.instance.registerHazmat(ModItems.euphemium_helmet, 6F); + HazmatRegistry.instance.registerHazmat(ModItems.euphemium_plate, 12F); + HazmatRegistry.instance.registerHazmat(ModItems.euphemium_legs, 9F); + HazmatRegistry.instance.registerHazmat(ModItems.euphemium_boots, 3F); } @EventHandler @@ -1740,6 +1792,9 @@ public class MainRegistry Property propMutationID = config.get(Configuration.CATEGORY_GENERAL, "8.03_mutationPotionID", 65); propMutationID.comment = "What potion ID the taint mutation effect will have"; mutationID = propMutationID.getInt(); + Property propRadxID = config.get(Configuration.CATEGORY_GENERAL, "8.04_radxPotionID", 66); + propRadxID.comment = "What potion ID the Rad-X effect will have"; + radxID = propRadxID.getInt(); config.save(); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index aec3cd156..1a71510f3 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -8,6 +8,7 @@ import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.projectile.EntityMeteor; import com.hbm.items.ModItems; +import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; @@ -39,6 +40,7 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.event.entity.EntityEvent.EnteringChunk; import net.minecraftforge.event.entity.living.LivingSpawnEvent; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; public class ModEventHandler { @@ -56,6 +58,13 @@ public class ModEventHandler showMessage = !showMessage; } + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + + RadEntitySavedData eData = RadEntitySavedData.getData(event.entityPlayer.worldObj); + eData.setRadForEntity(event.entityPlayer, 0); + } + @SubscribeEvent public void spawnMob(LivingSpawnEvent event) { EntityLivingBase entity = event.entityLiving; @@ -163,13 +172,52 @@ public class ModEventHandler float rad = data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition); if(rad > 0) { - eData.setRadForEntity(entity, eData.getRadFromEntity(entity) + rad * 0.5F); + //eData.increaseRad(entity, rad / 2); + + if(!entity.isPotionActive(HbmPotion.mutation)) + Library.applyRadData(entity, rad / 2); } } float eRad = eData.getRadFromEntity(entity); - if(eRad < 200) + if(entity instanceof EntityCreeper && eRad >= 200 && entity.getHealth() > 0) { + + if(event.world.rand.nextInt(3) == 0 ) { + EntityNuclearCreeper creep = new EntityNuclearCreeper(event.world); + creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); + + if(!entity.isDead) + if(!event.world.isRemote) + event.world.spawnEntityInWorld(creep); + entity.setDead(); + } else { + entity.attackEntityFrom(ModDamageSource.radiation, 100F); + } + continue; + + } else if(entity instanceof EntityCow && !(entity instanceof EntityMooshroom) && eRad >= 50) { + EntityMooshroom creep = new EntityMooshroom(event.world); + creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); + + if(!entity.isDead) + if(!event.world.isRemote) + event.world.spawnEntityInWorld(creep); + entity.setDead(); + continue; + + } else if(entity instanceof EntityVillager && eRad >= 500) { + EntityZombie creep = new EntityZombie(event.world); + creep.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); + + if(!entity.isDead) + if(!event.world.isRemote) + event.world.spawnEntityInWorld(creep); + entity.setDead(); + continue; + } + + if(eRad < 200 || entity instanceof EntityNuclearCreeper || entity instanceof EntityMooshroom || entity instanceof EntityZombie || entity instanceof EntitySkeleton) continue; if(eRad >= 1000) { diff --git a/com/hbm/packet/LoopedEntitySoundPacket.java b/com/hbm/packet/LoopedEntitySoundPacket.java index 2ceed5d8d..95e7aeee2 100644 --- a/com/hbm/packet/LoopedEntitySoundPacket.java +++ b/com/hbm/packet/LoopedEntitySoundPacket.java @@ -1,6 +1,9 @@ package com.hbm.packet; +import org.lwjgl.opengl.GL11; + import com.hbm.entity.logic.EntityBomber; +import com.hbm.main.ResourceManager; import com.hbm.sound.MovingSoundBomber; import com.hbm.sound.SoundLoopAssembler; import com.hbm.sound.SoundLoopBroadcaster; @@ -63,7 +66,23 @@ public class LoopedEntitySoundPacket implements IMessage { Entity e = Minecraft.getMinecraft().theWorld.getEntityByID(m.entityID); if(e instanceof EntityBomber) { - + + int n = 1; + int x = e.getDataWatcher().getWatchableObjectByte(16); + + switch(x) { + case 0: + case 1: + case 2: + case 3: + case 4: n = 2; break; + case 5: + case 6: + case 7: + case 8: n = 1; break; + default: n = 2; break; + } + boolean flag = true; for(int i = 0; i < MovingSoundBomber.globalSoundList.size(); i++) { if(MovingSoundBomber.globalSoundList.get(i).bomber == e && !MovingSoundBomber.globalSoundList.get(i).isDonePlaying()) @@ -71,7 +90,10 @@ public class LoopedEntitySoundPacket implements IMessage { } if(flag) { - Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberLoop"), (EntityBomber)e)); + if(n == 2) + Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberSmallLoop"), (EntityBomber)e)); + if(n == 1) + Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberLoop"), (EntityBomber)e)); } } diff --git a/com/hbm/potion/HbmPotion.java b/com/hbm/potion/HbmPotion.java index 9d558c4d2..1c447b299 100644 --- a/com/hbm/potion/HbmPotion.java +++ b/com/hbm/potion/HbmPotion.java @@ -4,8 +4,10 @@ import java.lang.reflect.Field; import com.hbm.entity.mob.EntityTaintedCreeper; import com.hbm.explosion.ExplosionLarge; +import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; +import com.hbm.saveddata.RadEntitySavedData; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; @@ -22,6 +24,7 @@ public class HbmPotion extends Potion { public static HbmPotion radiation; public static HbmPotion bang; public static HbmPotion mutation; + public static HbmPotion radx; public HbmPotion(int id, boolean isBad, int color) { super(id, isBad, color); @@ -32,6 +35,7 @@ public class HbmPotion extends Potion { radiation = registerPotion(MainRegistry.radiationID, true, 8700200, "potion.hbm_radiation", 1, 0); bang = registerPotion(MainRegistry.bangID, true, 1118481, "potion.hbm_bang", 3, 0); mutation = registerPotion(MainRegistry.mutationID, false, 8388736, "potion.hbm_mutation", 2, 0); + radx = registerPotion(MainRegistry.radxID, false, 0xBB4B00, "potion.hbm_radx", 5, 0); } public static HbmPotion registerPotion(int id, boolean isBad, int color, String name, int x, int y) { @@ -80,9 +84,14 @@ public class HbmPotion extends Potion { } if(this == radiation) { - if (entity.getHealth() > entity.getMaxHealth() - (level + 1)) { + /*if (entity.getHealth() > entity.getMaxHealth() - (level + 1)) { entity.attackEntityFrom(ModDamageSource.radiation, 1); - } + }*/ + + //RadEntitySavedData data = RadEntitySavedData.getData(entity.worldObj); + //data.increaseRad(entity, (float)(level + 1F) * 0.05F); + + Library.applyRadData(entity, (float)(level + 1F) * 0.05F); } if(this == bang) { @@ -105,8 +114,11 @@ public class HbmPotion extends Potion { return k > 0 ? par1 % k == 0 : true; } if(this == radiation) { - int k = 40 >> par2; - return k > 0 ? par1 % k == 0 : true; + + return true; + + //int k = 40 >> par2; + //return k > 0 ? par1 % k == 0 : true; } if(this == bang) { diff --git a/com/hbm/saveddata/RadEntitySavedData.java b/com/hbm/saveddata/RadEntitySavedData.java index 03b2eaaa6..8766d4aa7 100644 --- a/com/hbm/saveddata/RadEntitySavedData.java +++ b/com/hbm/saveddata/RadEntitySavedData.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; @@ -41,6 +42,9 @@ public class RadEntitySavedData extends WorldSavedData { public void setRadForEntity(Entity e, float rad) { + if(!(e instanceof EntityLivingBase)) + return; + for(int i = 0; i < contaminated.size(); i++) { if(contaminated.get(i).entID == e.getEntityId()) { contaminated.get(i).rad = rad; @@ -53,6 +57,11 @@ public class RadEntitySavedData extends WorldSavedData { this.markDirty(); } + + public void increaseRad(Entity e, float rad) { + + setRadForEntity(e, getRadFromEntity(e) + rad); + } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/com/hbm/tileentity/bomb/TileEntitySellafield.java b/com/hbm/tileentity/bomb/TileEntitySellafield.java index 1c3cdafeb..60f5fabc6 100644 --- a/com/hbm/tileentity/bomb/TileEntitySellafield.java +++ b/com/hbm/tileentity/bomb/TileEntitySellafield.java @@ -27,7 +27,7 @@ public class TileEntitySellafield extends TileEntity { EntityLivingBase entity = (EntityLivingBase) o; if(Math.sqrt(Math.pow(xCoord + 0.5D - entity.posX, 2) + Math.pow(yCoord + 0.5D - entity.posY, 2) + Math.pow(zCoord + 0.5D - entity.posZ, 2)) <= radius) { - Library.applyRadiation(entity, 5 * 60, 100, 4 * 60, 75); + //Library.applyRadiation(entity, 5 * 60, 100, 4 * 60, 75); entity.attackEntityFrom(ModDamageSource.radiation, entity.getHealth() * 0.5F); } } diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java index 058e8e1be..74ae2a34d 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmall.java @@ -23,6 +23,7 @@ import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.RadiationSavedData; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -390,14 +391,18 @@ public class TileEntityMachineReactorSmall extends TileEntity && worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1) != Blocks.air && worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1) != Blocks.air)) { - List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, + /*List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - 5, yCoord + 1.5 - 5, zCoord + 0.5 - 5, xCoord + 0.5 + 5, yCoord + 1.5 + 5, zCoord + 0.5 + 5)); for (Entity e : list) { if (e instanceof EntityLivingBase) Library.applyRadiation((EntityLivingBase)e, 80, 24, 60, 19); - } + }*/ + + float rad = (float)coreHeat / (float)maxCoreHeat * 150F; + RadiationSavedData data = RadiationSavedData.getData(worldObj); + data.incrementRad(worldObj, xCoord, zCoord, rad, 750F); } for (int i = 0; i < 3; i++) @@ -664,6 +669,9 @@ public class TileEntityMachineReactorSmall extends TileEntity worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 18.0F, true); ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, Blocks.flowing_lava); + + RadiationSavedData data = RadiationSavedData.getData(worldObj); + data.incrementRad(worldObj, xCoord, zCoord, 1000F, 2000F); } @Override diff --git a/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java b/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java index aa23cc363..468611668 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java +++ b/com/hbm/tileentity/machine/TileEntityMachineReactorSmallOld.java @@ -21,6 +21,7 @@ import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.RadiationSavedData; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -434,10 +435,14 @@ public class TileEntityMachineReactorSmallOld extends TileEntity AxisAlignedBB.getBoundingBox(xCoord + 0.5 - 5, yCoord + 1.5 - 5, zCoord + 0.5 - 5, xCoord + 0.5 + 5, yCoord + 1.5 + 5, zCoord + 0.5 + 5)); - for (Entity e : list) { + /*for (Entity e : list) { if (e instanceof EntityLivingBase) Library.applyRadiation((EntityLivingBase)e, 80, 24, 60, 19); - } + }*/ + + float rad = (float)coreHeat / (float)maxCoreHeat * 150F; + RadiationSavedData data = RadiationSavedData.getData(worldObj); + data.incrementRad(worldObj, xCoord, zCoord, rad, 750F); } PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); @@ -548,6 +553,9 @@ public class TileEntityMachineReactorSmallOld extends TileEntity worldObj.createExplosion(null, this.xCoord, this.yCoord, this.zCoord, 18.0F, true); ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, Blocks.flowing_lava); + + RadiationSavedData data = RadiationSavedData.getData(worldObj); + data.incrementRad(worldObj, xCoord, zCoord, 1000F, 2000F); } @Override diff --git a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java index e1558ad48..a8497c629 100644 --- a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java +++ b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java @@ -24,6 +24,7 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.RadiationSavedData; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -464,7 +465,7 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv if(!this.isCoatingValid(worldObj)) { - int strength = 20; + /*int strength = 20; float f = strength; HashSet hashset = new HashSet(); int i; @@ -502,7 +503,11 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv Library.applyRadiation((EntityLivingBase)entity, 80, 24, 60, 19); } } - } + }*/ + + + RadiationSavedData data = RadiationSavedData.getData(worldObj); + data.incrementRad(worldObj, xCoord, zCoord, 100F, 500F); } } @@ -660,6 +665,9 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, 50, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); ExplosionParticle.spawnMush(this.worldObj, this.xCoord, this.yCoord - 3, this.zCoord); + + RadiationSavedData data = RadiationSavedData.getData(worldObj); + data.incrementRad(worldObj, xCoord, zCoord, 1000F, 2000F); } @Override