Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- version "4.3"
- ///
- //Armor Patch Kit
- //
- class HDArmorFixer:HDPickup
- {
- default{
- -hdpickup.droptranslation
- inventory.pickupmessage "Picked up an armor repair toolkit.";
- inventory.icon "REKKI0";
- tag "armor repair kit";
- hdpickup.bulk 5;
- hdpickup.refid "REK";
- +INVENTORY.INVBAR;
- +INVENTORY.PERSISTENTPOWER;
- +INVENTORY.IGNORESKILL;
- inventory.pickupsound "weapons/pocket";
- }
- States
- {
- Spawn:
- REKK A -1;
- stop;
- Use:
- TNT1 A 0 { if(!hdplayerpawn(self)||!hdplayerpawn(self).incapacitated)A_SelectWeapon("HDArmorFixerer");
- A_StartSound("weapons/pocket",9);
- }
- fail;
- }
- }
- class HDArmorFixerer:HDWeapon{
- string uitext;
- int which;
- HDArmour ThisArmour;
- name ThisArmourType;
- array<string>armortypes;
- override void BeginPlay()
- {
- super.BeginPlay();
- uitext="Armor Patcher Tool\n\nNo armors in inventory!";
- thisarmourtype="HDArmour";
- if(owner)thisarmour=hdarmour(owner.findinventory(thisarmourtype));
- armortypes.clear();
- for(int i=0;i<allactorclasses.size();i++){
- let mmmm=(class<HDArmour>)(allactorclasses[i]);
- if(!mmmm)continue;
- let mmm=getdefaultbytype(mmmm);
- armortypes.push(mmm.getclassname());
- }
- }
- action void NextArmourType(bool forwards=true){
- int findindex=0;
- int armourrange=invoker.armortypes.size();
- for(int i=0;i<armourrange;i++){
- if(invoker.thisarmourtype==invoker.armortypes[i]){
- findindex=i;
- }
- }
- for(int i=0;i<armourrange;i++){
- if(forwards)findindex++;else findindex--;
- if(findindex<0)findindex=armourrange-1;
- else if(findindex>=armourrange)findindex=0;
- if(findinventory(invoker.armortypes[findindex])){
- invoker.thisarmour=HDArmour(findinventory(invoker.armortypes[findindex]));
- invoker.thisarmourtype=invoker.armortypes[findindex];
- break;
- }
- }
- invoker.UpdateText();
- }
- void UpdateText(){
- string toui=string.format(
- "\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."
- );
- if(thisarmour){
- thisarmourtype=thisarmour.getclassname();
- }
- uitext=toui;
- }
- default
- {
- +hdweapon.dontdisarm
- +weapon.wimpy_weapon
- +weapon.no_auto_switch
- +hdweapon.alwaysshowstatus
- +nointeraction
- weapon.selectionorder 1011;
- }
- override void DrawHUDStuff(HDStatusBar sb,HDWeapon hdw,HDPlayerPawn hpl){
- if(!thisarmour||thisarmour.mags.size()<1)return;
- sb.beginhud(forcescaled:true);
- thisarmour.DrawHUDStuff(sb,self,hpl);
- sb.beginhud(forcescaled:false);
- }
- States
- {
- Spawn:
- TNT1 A 0;
- stop;
- Ready:
- TNT1 A 1{
- if(!invoker.thisarmour)NextArmourType();
- invoker.UpdateText();
- A_WeaponReady(WRF_ALL&~WRF_ALLOWUSER2);
- A_WeaponMessage(invoker.uitext);}
- goto readyend;
- }
- }
- class HDPatchKitGreen:HDPickup
- {
- default
- {
- inventory.pickupmessage "Picked up a garrison armor repair kit.";
- inventory.icon "PKTGA0";
- HDPickup.bulk 3.3;
- HDPickup.refid "KTG";
- +inventory.ignoreskill
- +cannotpush
- +forcexybillboard
- }
- states
- {
- Spawn:
- PKTG A -1;
- stop;
- }
- }
- class HDPatchKitBlue:HDPatchKitGreen
- {
- default
- {
- inventory.pickupmessage "Picked up a medikit.";
- inventory.icon "PKTBA0";
- HDPickup.bulk 4;
- HDPickup.refid "KTB";
- }
- states
- {
- Spawn:
- PKTB A -1;
- stop;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment