mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-30 15:52:09 +00:00
191 lines
2.7 KiB
Text
191 lines
2.7 KiB
Text
|
|
// CTC flag spots. They are not functional and only here so that something gets spawned for them.
|
|
|
|
class SVEFlagSpotRed : Inventory
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
FLGR A 1 BRIGHT;
|
|
FLGR A 0 BRIGHT; // A_FlagStandSpawn
|
|
FLGR A 1 BRIGHT; // A_FlagStandCheck
|
|
Wait;
|
|
}
|
|
}
|
|
|
|
class SVEFlagSpotBlue : Inventory
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
FLGB A 1 BRIGHT;
|
|
FLGB A 0 BRIGHT; // A_FlagStandSpawn
|
|
FLGB A 1 BRIGHT; // A_FlagStandCheck
|
|
Wait;
|
|
}
|
|
}
|
|
|
|
class SVEBlueChalice : Inventory
|
|
{
|
|
Default
|
|
{
|
|
+DROPPED
|
|
+FLOORCLIP
|
|
+INVENTORY.INVBAR
|
|
Radius 10;
|
|
Height 16;
|
|
Tag "$TAG_OFFERINGCHALICE";
|
|
Inventory.Icon "I_RELB";
|
|
Inventory.PickupMessage "$TXT_OFFERINGCHALICE";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
RELB A -1 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class SVETalismanPowerup : Inventory
|
|
{
|
|
}
|
|
|
|
class SVETalismanRed : Inventory
|
|
{
|
|
Default
|
|
{
|
|
+DROPPED
|
|
+FLOORCLIP
|
|
+INVENTORY.INVBAR
|
|
Radius 10;
|
|
Height 16;
|
|
Inventory.MaxAmount 1;
|
|
Inventory.Icon "I_FLGR";
|
|
Tag "$TAG_TALISMANRED";
|
|
Inventory.PickupMessage "$MSG_TALISMANRED";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
FLGR A -1 BRIGHT;
|
|
Stop;
|
|
}
|
|
|
|
override bool TryPickup (in out Actor toucher)
|
|
{
|
|
let useok = Super.TryPickup (toucher);
|
|
if (useok)
|
|
{
|
|
if (toucher.FindInventory("SVETalismanRed") &&
|
|
toucher.FindInventory("SVETalismanGreen") &&
|
|
toucher.FindInventory("SVETalismanBlue"))
|
|
{
|
|
toucher.A_Print("$MSG_TALISMANPOWER");
|
|
toucher.GiveInventoryType("SVETalismanPowerup");
|
|
}
|
|
}
|
|
return useok;
|
|
}
|
|
|
|
}
|
|
|
|
class SVETalismanBlue : SVETalismanRed
|
|
{
|
|
Default
|
|
{
|
|
+INVENTORY.INVBAR
|
|
Inventory.Icon "I_FLGB";
|
|
Tag "$TAG_TALISMANBLUE";
|
|
Inventory.PickupMessage "$MSG_TALISMANBLUE";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
FLGB A -1 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class SVETalismanGreen : SVETalismanRed
|
|
{
|
|
Default
|
|
{
|
|
+INVENTORY.INVBAR
|
|
Inventory.Icon "I_FLGG";
|
|
Tag "$TAG_TALISMANGREEN";
|
|
Inventory.PickupMessage "$MSG_TALISMANGREEN";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
FLGG A -1 BRIGHT;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class SVEOreSpawner : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOSECTOR
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
TNT1 A 175 A_OreSpawner;
|
|
loop;
|
|
}
|
|
|
|
//
|
|
// A_OreSpawner
|
|
//
|
|
// [SVE] svillarreal
|
|
//
|
|
|
|
void A_OreSpawner()
|
|
{
|
|
if(deathmatch) return;
|
|
|
|
bool inrange = false;
|
|
for(int i = 0; i < MAXPLAYERS; i++)
|
|
{
|
|
if(!playeringame[i])
|
|
continue;
|
|
|
|
if(Distance2D(players[i].mo) < 2048)
|
|
{
|
|
inrange = true;
|
|
break;
|
|
}
|
|
}
|
|
if(!inrange) return;
|
|
|
|
let it = ThinkerIterator.Create("DegninOre");
|
|
Thinker ac;
|
|
|
|
int numores = 0;
|
|
while (ac = it.Next())
|
|
{
|
|
if (++numores == 3) return;
|
|
}
|
|
Spawn("DegninOre", Pos);
|
|
}
|
|
}
|
|
|
|
class SVEOpenDoor225 : DummyStrifeItem
|
|
{
|
|
override bool TryPickup (in out Actor toucher)
|
|
{
|
|
Door_Open(225, 16);
|
|
GoAwayAndDie ();
|
|
return true;
|
|
}
|
|
|
|
override bool SpecialDropAction (Actor dropper)
|
|
{
|
|
Door_Open(225, 16);
|
|
Destroy ();
|
|
return true;
|
|
}
|
|
|
|
}
|