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

@ -864,6 +864,7 @@ D_FROGGY2 = "\cj... for \cdFroggy Chair\cj.\c-";
D_BARRIER = "The Elemental Coating wore off.";
D_MASHIRO = "\cjShe knows where you are...\c-";
SWWM_YNYKRONREADY = "Ynykron Artifact ready for firing.";
SWWM_YNYKRONLOCKED = "Ynykron Artifact not authorized for use.";
SWWM_SWAPWEAPON = "\cjPress \cfUse\cj to swap \cf%s\cj for \cf%s\cj.\c-";
SWWM_TITLEPRESENTS = "presents";
SWWM_TITLEMODBY = "a mod by \cxMarisa Kirisame";

View file

@ -807,6 +807,7 @@ D_FROGGY2 = "\cj... por una \cdSilla Rana\cj.\c-";
D_BARRIER = "El Revestimiento Elemental se ha desvanecido.";
D_MASHIRO = "\cjSabe donde estás...\c-";
SWWM_YNYKRONREADY = "Artefacto Ynykron listo para disparar.";
SWWM_YNYKRONLOCKED = "Artefacto Ynykron no autorizado para el uso.";
SWWM_SWAPWEAPON = "\cjPulsa \cfUsar\cj para cambiar \cf%s\cj por \cf%s\cj.\c-";
SWWM_TITLEPRESENTS = "presenta";
SWWM_TITLEMODBY = "un mod de \cxMarisa Kirisame";

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r688 \cu(Fri 18 Dec 00:58:35 CET 2020)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r689 \cu(Fri 18 Dec 02:27:17 CET 2020)";

View file

@ -880,6 +880,7 @@ ynykron/vortexflash2 sounds/ynykron/mc_vortexflash2.ogg
$random ynykron/vortexflash { ynykron/vortexflash1 ynykron/vortexflash2 }
ynykron/vortexend sounds/ynykron/mc_vortexend.ogg
ynykron/wind sounds/ynykron/mc_vortexwind.ogg
ynykron/locked sounds/ynykron/mc_locked.ogg
misc/secret sounds/menu/findsecret.ogg
misc/keytry sounds/menu/failuse.ogg

Binary file not shown.

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;