Guest User

Untitled

a guest
Aug 23rd, 2020
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.41 KB | None | 0 0
  1. version "4.3"
  2.  
  3. ///
  4. //Armor Patch Kit
  5. //
  6.  
  7. class HDArmorFixer:HDPickup
  8. {
  9. default{
  10. -hdpickup.droptranslation
  11. inventory.pickupmessage "Picked up an armor repair toolkit.";
  12. inventory.icon "REKKI0";
  13. tag "armor repair kit";
  14. hdpickup.bulk 5;
  15. hdpickup.refid "REK";
  16. +INVENTORY.INVBAR;
  17. +INVENTORY.PERSISTENTPOWER;
  18. +INVENTORY.IGNORESKILL;
  19. inventory.pickupsound "weapons/pocket";
  20. }
  21. States
  22. {
  23. Spawn:
  24. REKK A -1;
  25. stop;
  26. Use:
  27. TNT1 A 0 { if(!hdplayerpawn(self)||!hdplayerpawn(self).incapacitated)A_SelectWeapon("HDArmorFixerer");
  28. A_StartSound("weapons/pocket",9);
  29.  
  30. }
  31. fail;
  32. }
  33. }
  34.  
  35. class HDArmorFixerer:HDWeapon{
  36.  
  37. string uitext;
  38. int which;
  39. HDArmour ThisArmour;
  40. name ThisArmourType;
  41. array<string>armortypes;
  42. override void BeginPlay()
  43. {
  44. super.BeginPlay();
  45. uitext="Armor Patcher Tool\n\nNo armors in inventory!";
  46. thisarmourtype="HDArmour";
  47. if(owner)thisarmour=hdarmour(owner.findinventory(thisarmourtype));
  48. armortypes.clear();
  49. for(int i=0;i<allactorclasses.size();i++){
  50. let mmmm=(class<HDArmour>)(allactorclasses[i]);
  51. if(!mmmm)continue;
  52. let mmm=getdefaultbytype(mmmm);
  53. armortypes.push(mmm.getclassname());
  54. }
  55. }
  56. action void NextArmourType(bool forwards=true){
  57. int findindex=0;
  58. int armourrange=invoker.armortypes.size();
  59. for(int i=0;i<armourrange;i++){
  60. if(invoker.thisarmourtype==invoker.armortypes[i]){
  61. findindex=i;
  62. }
  63. }
  64. for(int i=0;i<armourrange;i++){
  65. if(forwards)findindex++;else findindex--;
  66. if(findindex<0)findindex=armourrange-1;
  67. else if(findindex>=armourrange)findindex=0;
  68. if(findinventory(invoker.armortypes[findindex])){
  69. invoker.thisarmour=HDArmour(findinventory(invoker.armortypes[findindex]));
  70. invoker.thisarmourtype=invoker.armortypes[findindex];
  71. break;
  72. }
  73. }
  74. invoker.UpdateText();
  75.  
  76. }
  77. void UpdateText(){
  78. string toui=string.format(
  79. "\cf///\cyArmor Patcher Tool\cf\\\\\\\n\n\cqFire\cu/\cqAltfire\cu select armor\n\cqReload\cu patch selected armor\n\cqUnload\cu break down selected armor",thisarmour?thisarmour.gettag():"No armor selected."
  80. );
  81. if(thisarmour){
  82. thisarmourtype=thisarmour.getclassname();
  83. }
  84. uitext=toui;
  85. }
  86. default
  87. {
  88. +hdweapon.dontdisarm
  89. +weapon.wimpy_weapon
  90. +weapon.no_auto_switch
  91. +hdweapon.alwaysshowstatus
  92. +nointeraction
  93. weapon.selectionorder 1011;
  94. }
  95.  
  96. override void DrawHUDStuff(HDStatusBar sb,HDWeapon hdw,HDPlayerPawn hpl){
  97. if(!thisarmour||thisarmour.mags.size()<1)return;
  98. sb.beginhud(forcescaled:true);
  99. thisarmour.DrawHUDStuff(sb,self,hpl);
  100. sb.beginhud(forcescaled:false);
  101. }
  102.  
  103. States
  104. {
  105. Spawn:
  106. TNT1 A 0;
  107. stop;
  108. Ready:
  109. TNT1 A 1{
  110. if(!invoker.thisarmour)NextArmourType();
  111. invoker.UpdateText();
  112. A_WeaponReady(WRF_ALL&~WRF_ALLOWUSER2);
  113. A_WeaponMessage(invoker.uitext);}
  114. goto readyend;
  115.  
  116.  
  117. }
  118. }
  119.  
  120. class HDPatchKitGreen:HDPickup
  121. {
  122. default
  123. {
  124. inventory.pickupmessage "Picked up a garrison armor repair kit.";
  125. inventory.icon "PKTGA0";
  126. HDPickup.bulk 3.3;
  127. HDPickup.refid "KTG";
  128. +inventory.ignoreskill
  129. +cannotpush
  130. +forcexybillboard
  131. }
  132.  
  133. states
  134. {
  135. Spawn:
  136. PKTG A -1;
  137. stop;
  138. }
  139. }
  140.  
  141. class HDPatchKitBlue:HDPatchKitGreen
  142. {
  143. default
  144. {
  145. inventory.pickupmessage "Picked up a medikit.";
  146. inventory.icon "PKTBA0";
  147. HDPickup.bulk 4;
  148. HDPickup.refid "KTB";
  149. }
  150.  
  151. states
  152. {
  153. Spawn:
  154. PKTB A -1;
  155. stop;
  156. }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment