Health/Armor nuggets can now be bought in bulk (increments of 5 up to 20). Armor nuggets give 1 armor point per pickup again (sorry, people who constantly stocked up on them like mad). Add CVars needed for achievements, just more preparation for the next update.
151 lines
3.2 KiB
Text
151 lines
3.2 KiB
Text
// All the armor items go here
|
|
Class ArmorNugget : SWWMArmor
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "graphics/HUD/Icons/I_ArmorNugget.png";
|
|
Inventory.Amount 1;
|
|
Inventory.MaxAmount 200;
|
|
Inventory.InterHubAmount 200;
|
|
SWWMArmor.ArmorPriority 10;
|
|
SWWMArmor.GiverArmor "ArmorNuggetItem";
|
|
}
|
|
|
|
override int HandleDamage( int damage, Name damageType, int flags )
|
|
{
|
|
double factor = amount*.01;
|
|
return int(ceil(damage*factor));
|
|
}
|
|
}
|
|
Class ArmorNuggetItem : SWWMSpareArmor
|
|
{
|
|
override Inventory CreateCopy( Actor other )
|
|
{
|
|
// additional lore
|
|
SWWMLoreLibrary.Add(other.player,"Nugget");
|
|
return Super.CreateCopy(other);
|
|
}
|
|
Default
|
|
{
|
|
Tag "$T_NUGGETA";
|
|
Stamina 300;
|
|
Inventory.Icon "graphics/HUD/Icons/I_ArmorNugget.png";
|
|
Inventory.PickupMessage "$T_NUGGETA";
|
|
Inventory.MaxAmount 20;
|
|
Inventory.InterHubAmount 20;
|
|
Inventory.UseSound "misc/armor_pkup";
|
|
SWWMSpareArmor.GiveArmor "ArmorNugget";
|
|
+INVENTORY.ALWAYSPICKUP;
|
|
Radius 6;
|
|
Height 20;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 # -1 NoDelay
|
|
{
|
|
frame = Random[Nugget](0,7);
|
|
}
|
|
Stop;
|
|
Dummy:
|
|
XZW1 ABCDEFGH -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
Class BlastSuit : SWWMArmor
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "graphics/HUD/Icons/I_BlastSuit.png";
|
|
Inventory.Amount 150;
|
|
Inventory.MaxAmount 150;
|
|
Inventory.InterHubAmount 150;
|
|
SWWMArmor.ArmorPriority 2;
|
|
SWWMArmor.DrainMessage "$D_BLASTSUIT";
|
|
SWWMArmor.GiverArmor "BlastSuitItem";
|
|
}
|
|
|
|
override int HandleDamage( int damage, Name damageType, int flags )
|
|
{
|
|
double factor = .3;
|
|
if ( flags&DMG_EXPLOSION ) factor = 1.-(1.-factor)*.5;
|
|
return int(ceil(damage*factor));
|
|
}
|
|
}
|
|
Class BlastSuitItem : SWWMSpareArmor
|
|
{
|
|
override Inventory CreateCopy( Actor other )
|
|
{
|
|
// additional lore
|
|
SWWMLoreLibrary.Add(other.player,"BlastSuit");
|
|
return Super.CreateCopy(other);
|
|
}
|
|
Default
|
|
{
|
|
Tag "$T_BLASTSUIT";
|
|
Stamina 40000;
|
|
Inventory.Icon "graphics/HUD/Icons/I_BlastSuit.png";
|
|
Inventory.PickupMessage "$T_BLASTSUIT";
|
|
Inventory.UseSound "armor/blastsuit";
|
|
SWWMSpareArmor.GiveArmor "BlastSuit";
|
|
Radius 12;
|
|
Height 30;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
Class WarArmor : SWWMArmor
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "graphics/HUD/Icons/I_WarArmor.png";
|
|
Inventory.Amount 250;
|
|
Inventory.MaxAmount 250;
|
|
Inventory.InterHubAmount 250;
|
|
SWWMArmor.ArmorPriority 6;
|
|
SWWMArmor.DrainMessage "$D_WARARMOR";
|
|
SWWMArmor.GiverArmor "WarArmorItem";
|
|
}
|
|
|
|
override int HandleDamage( int damage, Name damageType, int flags )
|
|
{
|
|
double factor;
|
|
// should be enough "elemental" damage types I guess
|
|
if ( (damageType == 'Fire') || (damageType == 'Ice') || (damageType == 'Slime') || (damageType == 'Electric') || (damageType == 'Wind') || (damageType == 'Water') ) factor = .8;
|
|
else factor = .5;
|
|
if ( flags&DMG_EXPLOSION ) factor = 1.-(1.-factor)*.7;
|
|
return int(ceil(damage*factor));
|
|
}
|
|
}
|
|
Class WarArmorItem : SWWMSpareArmor
|
|
{
|
|
override Inventory CreateCopy( Actor other )
|
|
{
|
|
// additional lore
|
|
SWWMLoreLibrary.Add(other.player,"WarArmor");
|
|
return Super.CreateCopy(other);
|
|
}
|
|
Default
|
|
{
|
|
Tag "$T_WARARMOR";
|
|
Stamina 100000;
|
|
Inventory.Icon "graphics/HUD/Icons/I_WarArmor.png";
|
|
Inventory.PickupMessage "$T_WARARMOR";
|
|
Inventory.UseSound "armor/wararmor";
|
|
SWWMSpareArmor.GiveArmor "WarArmor";
|
|
Radius 16;
|
|
Height 32;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
XZW1 A -1;
|
|
Stop;
|
|
}
|
|
}
|