Ynykron is locked and non-buyable in Strife.

This commit is contained in:
Mari the Deer 2020-12-18 02:27:17 +01:00
commit dd8f4abb35
9 changed files with 21 additions and 5 deletions

View file

@ -3105,9 +3105,18 @@ Class Ynykron : SWWMWeapon
XZW3 EFGHI 2;
XZW2 A 0
{
invoker.chargestate = CS_CHARGING;
invoker.ventcooldown = Random[Ynykron](6,15);
A_StartSound("ynykron/ready",CHAN_WEAPONEXTRA2,CHANF_LOOP,.01,2.);
if ( gameinfo.gametype&GAME_Strife )
{
A_StartSound("ynykron/locked",CHAN_WEAPON,CHANF_OVERLAP);
if ( player == players[consoleplayer] )
Console.Printf(StringTable.Localize("$SWWM_YNYKRONLOCKED"));
}
else
{
invoker.chargestate = CS_CHARGING;
invoker.ventcooldown = Random[Ynykron](6,15);
A_StartSound("ynykron/ready",CHAN_WEAPONEXTRA2,CHANF_LOOP,.01,2.);
}
}
Goto Ready;
Reload:

View file

@ -892,7 +892,7 @@ Class Chancebox : Actor
// no candidates? just burst into treats
if ( Random[Chancebox](0,1) )
{
let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":Random[Chancebox](0,1)?"GrilledCheeseSandwich":"YnykronAmmo",pos);
let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":(Random[Chancebox](0,1)||(gameinfo.gametype&GAME_Strife))?"GrilledCheeseSandwich":"YnykronAmmo",pos);
a.bDROPPED = true;
a.bNOGRAVITY = false;
a.vel.z = FRandom[Chancebox](2,4);

View file

@ -2150,6 +2150,8 @@ Class SWWMKnowledgeBaseMenu : GenericMenu
if ( !type ) continue;
// no collectibles
if ( type is 'SWWMCollectible' ) continue;
// no Ynykron in strife
if ( (gameinfo.gametype&GAME_Strife) && (type is 'Ynykron') ) continue;
// skip maxed items
let cur = players[consoleplayer].mo.FindInventory(type);
if ( cur && (cur.Amount >= cur.MaxAmount) ) continue;

View file

@ -225,6 +225,8 @@ Class Demolitionist : PlayerPawn
{
let type = (class<Weapon>)(AllActorClasses[i]);
if ( !type || (type == "Weapon") ) continue;
// no Ynykron in Strife
if ( (gameinfo.gametype&GAME_Strife) && (type is 'Ynykron') ) continue;
// Don't give already owned weapons
let owned = FindInventory(type);
if ( owned && (owned.Amount >= owned.MaxAmount) ) continue;