Various backported changes from devel.
This commit is contained in:
parent
78551b0134
commit
ca544f5f36
14 changed files with 221 additions and 79 deletions
|
|
@ -96,8 +96,15 @@ extend Class SWWMHandler
|
|||
s.favweapon = -1;
|
||||
for ( Inventory i=p.mo.Inv; i; i=i.inv )
|
||||
{
|
||||
if ( i is 'Weapon' )
|
||||
s.GotWeapon(Weapon(i).GetClass());
|
||||
if ( !(i is 'Weapon') ) continue;
|
||||
// skip dual weapons if their sister weapon amount isn't 2
|
||||
String cn = i.GetClassName();
|
||||
if ( cn.Left(4) ~== "Dual" )
|
||||
{
|
||||
let ss = Weapon(i).SisterWeapon;
|
||||
if ( !ss || (ss.Amount == 1) ) continue;
|
||||
}
|
||||
s.GotWeapon(Weapon(i).GetClass());
|
||||
}
|
||||
}
|
||||
else if ( (s.lastcluster != level.cluster) || !(level.clusterflags&LevelLocals.CLUSTER_HUB) || (level.info.flags2&LEVEL2_RESETINVENTORY && !e.IsReturn) )
|
||||
|
|
|
|||
|
|
@ -568,6 +568,11 @@ extend Class SWWMHandler
|
|||
break;
|
||||
}
|
||||
}
|
||||
else if ( e.Name.Left(17) ~== "swwmstoremessage." )
|
||||
{
|
||||
if ( consoleplayer != e.Args[2] ) return;
|
||||
SWWMFullHistory.PushMessage(e.Name.Mid(17),e.Args[0],e.Args[1]);
|
||||
}
|
||||
else if ( e.Name.Left(16) ~== "swwmremoteliner." )
|
||||
{
|
||||
if ( consoleplayer == e.Args[0] ) return;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ extend Class SWWMHandler
|
|||
if ( !swwm_nomapmsg )
|
||||
{
|
||||
// angry about phase two
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYAEVIB";
|
||||
msg.seqcnt = 2;
|
||||
msg.delay = 20;
|
||||
|
|
@ -30,7 +30,7 @@ extend Class SWWMHandler
|
|||
int whichboss = WhichVanillaBossMap();
|
||||
if ( bossmap == MAP_DE1M8 )
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYAPHOBOS";
|
||||
msg.seqcnt = 4;
|
||||
msg.delay = 40;
|
||||
|
|
@ -38,7 +38,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_DE2M8 )
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYADEIMOS";
|
||||
msg.seqcnt = 4;
|
||||
msg.delay = 40;
|
||||
|
|
@ -46,7 +46,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_DE3M8 )
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYADIS";
|
||||
msg.seqcnt = 4;
|
||||
msg.delay = 40;
|
||||
|
|
@ -54,7 +54,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_DE4M8 )
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYATHY";
|
||||
msg.seqcnt = 4;
|
||||
msg.delay = 40;
|
||||
|
|
@ -62,7 +62,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_DMAP07 )
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYADIMPLE";
|
||||
msg.seqcnt = 5;
|
||||
msg.delay = 40;
|
||||
|
|
@ -80,7 +80,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
if ( rampancy )
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYARAMPANCY";
|
||||
msg.seqcnt = 4;
|
||||
msg.delay = 250;
|
||||
|
|
@ -88,7 +88,7 @@ extend Class SWWMHandler
|
|||
}
|
||||
else
|
||||
{
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
let msg = new("SWWMDirectMessage").Init(StringTable.Localize("$SWWM_SAYASNAME"),StringTable.Localize("$SWWM_SAYANAME"),"Saya");
|
||||
msg.seqname = "SAYAIOS";
|
||||
msg.seqcnt = 5;
|
||||
msg.delay = 40;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,45 @@
|
|||
Class EndgameBossMarker : Inventory {}
|
||||
Class BossMarker : Inventory {}
|
||||
|
||||
Class IconMessage : Inventory
|
||||
{
|
||||
override void DoEffect()
|
||||
{
|
||||
if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) )
|
||||
{
|
||||
Console.MidPrint(smallfont,StringTable.Localize("$BOSSLINE_IOS"));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class ArchangelusMessage : Inventory
|
||||
{
|
||||
override void DoEffect()
|
||||
{
|
||||
if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) )
|
||||
{
|
||||
Console.MidPrint(smallfont,StringTable.Localize("$BOSSLINE_ARCHANGELUS"));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class DSparilMessage : Inventory
|
||||
{
|
||||
override void DoEffect()
|
||||
{
|
||||
if ( Owner.InStateSequence(Owner.CurState,Owner.SeeState) )
|
||||
{
|
||||
Console.MidPrint(smallfont,StringTable.Localize("$BOSSLINE_DSPARIL"));
|
||||
DepleteOrDestroy();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extend Class SWWMHandler
|
||||
{
|
||||
String bosstag;
|
||||
|
|
@ -179,7 +218,10 @@ extend Class SWWMHandler
|
|||
e.Thing.GiveInventory('EndgameBossMarker',1);
|
||||
}
|
||||
if ( e.Thing is 'BossEye' )
|
||||
{
|
||||
bossviewactor = e.Thing;
|
||||
e.Thing.GiveInventory('IconMessage',1);
|
||||
}
|
||||
bosstag = "$BT_IOS";
|
||||
}
|
||||
else if ( bossmap == MAP_DLVL08 )
|
||||
|
|
@ -237,6 +279,7 @@ extend Class SWWMHandler
|
|||
bosstag = "$BT_DSPARIL2";
|
||||
e.Thing.GiveInventory('BossMarker',1);
|
||||
e.Thing.GiveInventory('EndgameBossMarker',1);
|
||||
e.Thing.GiveInventory('DSparilMessage',1);
|
||||
}
|
||||
}
|
||||
else if ( bossmap == MAP_HMAP38 )
|
||||
|
|
@ -321,8 +364,19 @@ extend Class SWWMHandler
|
|||
}
|
||||
else if ( bossmap == MAP_EVMAP30 )
|
||||
{
|
||||
if ( e.Thing.GetClassName() == "ArchangelusA" )
|
||||
if ( e.Thing.GetClassName() == "Archangelus" )
|
||||
{
|
||||
bossactors.Push(e.Thing);
|
||||
bossviewactor = e.Thing;
|
||||
bosstag = "$BT_ARCHANGELUS";
|
||||
e.Thing.GiveInventory('ArchangelusMessage',1);
|
||||
}
|
||||
else if ( e.Thing.GetClassName() == "ArchangelusA" )
|
||||
{
|
||||
// first phase
|
||||
bossactors.Clear();
|
||||
bossviewactor = null;
|
||||
initialized = false;
|
||||
bossactors.Push(e.Thing);
|
||||
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
|
||||
if ( trk ) trk.bBOSS = true;
|
||||
|
|
@ -334,6 +388,7 @@ extend Class SWWMHandler
|
|||
{
|
||||
// second phase
|
||||
bossactors.Clear();
|
||||
bossviewactor = null;
|
||||
initialized = false;
|
||||
bossactors.Push(e.Thing);
|
||||
if ( upgrademe ) e.Thing.StartHealth = e.Thing.Health *= 5;
|
||||
|
|
|
|||
|
|
@ -120,6 +120,18 @@ extend Class SWWMHandler
|
|||
let t = new("UglyBoyGetsFuckedUp");
|
||||
t.ChangeStatNum(Thinker.STAT_USER);
|
||||
}
|
||||
// Archangelus death
|
||||
if ( e.Thing.GetClassName() == "ArchangelusB" )
|
||||
{
|
||||
// kill all other monsters
|
||||
let ti = ThinkerIterator.Create("Actor");
|
||||
Actor a;
|
||||
while ( a = Actor(ti.Next()) )
|
||||
{
|
||||
if ( (a != e.Thing) && (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) )
|
||||
a.DamageMobj(e.Thing,e.Thing,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS);
|
||||
}
|
||||
}
|
||||
if ( swwm_partytime )
|
||||
{
|
||||
let pt = Actor.Spawn("PartyTime",e.Thing.pos);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue