Cherrypicked changes from devel.
This commit is contained in:
parent
61824088ff
commit
30d53ef991
7 changed files with 122 additions and 32 deletions
|
|
@ -25,9 +25,9 @@ SWWM_SKEASY = "\cdTaking It Easy~\c-";
|
|||
SWWM_SKNORMAL = "\cfAdequate Adventure\c-";
|
||||
SWWM_SKHARD = "\ciModerate Challenge\c-";
|
||||
SWWM_SKHARDCORE = "\cgI'm A Masochist\c-";
|
||||
SWWM_SKHARDCORECONFIRM = "\cgYou think the mod's too easy?\nPrepare yourself.\c-\n\n(Press Y for a challenge)";
|
||||
SWWM_SKHARDCORECONFIRM = "\cgYou think the mod's too easy?\nPrepare yourself.\c-\n\n\cfFast monsters\n1.5x monster health & damage\n25% extra aggressiveness\nCheats are disabled\nCoop monsters will spawn\nThe store is disabled\nCan only revive once\c-\n\n(Press Y for a challenge)";
|
||||
SWWM_SKLUNATIC = "\crI WANT DIE\c-";
|
||||
SWWM_SKLUNATICCONFIRM = "\crYou will die, you will suffer.\nThat, I can guarantee.\c-\n\n(Press Y to die instantly)";
|
||||
SWWM_SKLUNATICCONFIRM = "\crYou will die, you will suffer.\nThat, I can guarantee.\c-\n\n\cfAll changes from Masochist\n+\n2x speedup for all enemy actions\nEnemy projectiles will multiply\nAdditional enemies may spawn\nEnemies react instantly\nEnemies don't flinch\nInfighting is disabled\c-\n\n(Press Y to die instantly)";
|
||||
// mod menu
|
||||
SWWM_MTITLE = "SWWM GZ Options";
|
||||
SWWM_PTITLE = "Player Options";
|
||||
|
|
@ -369,7 +369,7 @@ TOOLTIP_EVENT_SWWMRESETTOOLTIPS = "Resets weapon tooltips so you can see them al
|
|||
TOOLTIP_EVENT_SWWMRESETCVARS = "Resets all the mod's settings to their original values.";
|
||||
TOOLTIP_EVENT_SWWMRESETACHIEVEMENTS = "Erases all your archievement progress.";
|
||||
TOOLTIP_SWWM_NOINTERTIPS = "Hides intermission tips, in case you don't want to see them.";
|
||||
TOOLTIP_SWWM_DEMOSLAYER = "If you're below 100 health, killed enemies will drop health orbs.";
|
||||
TOOLTIP_SWWM_DEMOSLAYER = "Killed enemies may drop health and armor orbs.";
|
||||
TOOLTIP_SWWMMINIMAPMENU = "Configure the minimap.";
|
||||
TOOLTIP_SWWMACHIEVEMENTMENU = "View your achievements.";
|
||||
TOOLTIP_SWWM_MM_ENABLE = "Displays a minimap under the score counter.";
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ SWWM_SKEASY = "\cdCon Calmita~\c-";
|
|||
SWWM_SKNORMAL = "\cfAventura Adecuada\c-";
|
||||
SWWM_SKHARD = "\ciDesafío Moderado\c-";
|
||||
SWWM_SKHARDCORE = "\cgSoy Masoca\c-";
|
||||
SWWM_SKHARDCORECONFIRM = "\cg¿Crees que el mod es demasiado fácil?\nPues prepárate.\c-\n\n(Pulsa Y para un desafío)";
|
||||
SWWM_SKHARDCORECONFIRM = "\cg¿Crees que el mod es muy fácil?\nPues prepárate.\c-\n\n\cfMonstruos rápidos\n1.5x salud y daño de monstruos\n25% de agresividad extra\nTrucos deshabilitados\nMonstruos de cooperativo\nLa tienda está desactivada\nSolo se puede revivir una vez\c-\n\n(Pulsa Y para un desafío)";
|
||||
SWWM_SKLUNATIC = "\crINTENTA MUERTE\c-";
|
||||
SWWM_SKLUNATICCONFIRM = "\crVas a morir, vas a sufrir.\nEso te lo puedo garantizar.\c-\n\n(Pulsa Y para morir al instante)";
|
||||
SWWM_SKLUNATICCONFIRM = "\crVas a morir, vas a sufrir.\nEso te lo puedo garantizar.\c-\n\n\cfTodos los cambios de Masoca\n+\nDoble velocidad de enemigos\nProyectiles enemigos duplicados\nPueden aparecer enemigos extra\nReflejos instantáneos de enemigo\nLos enemigos no se estremecen\nLos enemigos no pelean entre si\c-\n\n(Pulsa Y para morir al instante)";
|
||||
// mod menu
|
||||
SWWM_MTITLE = "Opciones de SWWM GZ";
|
||||
SWWM_PTITLE = "Opciones de Jugador";
|
||||
|
|
@ -368,7 +368,7 @@ TOOLTIP_EVENT_SWWMRESETTOOLTIPS = "Resetea la ayuda de armas para que puedas vol
|
|||
TOOLTIP_EVENT_SWWMRESETCVARS = "Resetea todas las opciones del mod a sus valores originales.";
|
||||
TOOLTIP_EVENT_SWWMRESETACHIEVEMENTS = "Borra todo tu progreso de logros.";
|
||||
TOOLTIP_SWWM_NOINTERTIPS = "Oculta los consejos de intermisión, por si no quieres verlos.";
|
||||
TOOLTIP_SWWM_DEMOSLAYER = "Si tienes menos de 100 puntos de vida, los enemigos que mates soltarán orbes de salud.";
|
||||
TOOLTIP_SWWM_DEMOSLAYER = "Los enemigos que mates soltarán orbes de salud y armadura.";
|
||||
TOOLTIP_SWWMMINIMAPMENU = "Configura el minimapa.";
|
||||
TOOLTIP_SWWMACHIEVEMENTMENU = "Revisa tus logros.";
|
||||
TOOLTIP_SWWM_MM_ENABLE = "Muestra un minimapa bajo el contador de puntuación.";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.40 \cu(Fri 5 Nov 23:29:26 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw1.1.40 \cu(2021-11-05 23:29:26)\c-";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1.41 \cu(Sun 7 Nov 11:21:58 CET 2021)\c-";
|
||||
SWWM_SHORTVER="\cw1.1.41 \cu(2021-11-07 11:21:58)\c-";
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@ Skill normal
|
|||
}
|
||||
Skill hard
|
||||
{
|
||||
MonsterHealth = 1.25
|
||||
DamageFactor = 1.25
|
||||
SpawnFilter = hard
|
||||
ACSReturn = 3
|
||||
|
|
@ -143,7 +144,7 @@ Skill hardcore
|
|||
{
|
||||
DisableCheats
|
||||
FastMonsters
|
||||
HealthFactor = 1.5
|
||||
MonsterHealth = 1.5
|
||||
DamageFactor = 1.5
|
||||
Aggressiveness = 0.25
|
||||
SpawnFilter = nightmare
|
||||
|
|
@ -155,12 +156,12 @@ Skill hardcore
|
|||
Skill lunatic
|
||||
{
|
||||
DisableCheats
|
||||
HealthFactor = 2.0
|
||||
MonsterHealth = 2.0
|
||||
DamageFactor = 2.0
|
||||
Aggressiveness = 1.0
|
||||
SpawnFilter = nightmare
|
||||
SpawnMulti
|
||||
TotalInfighting
|
||||
NoInfighting
|
||||
InstantReaction
|
||||
NoPain
|
||||
ACSReturn = 4
|
||||
|
|
|
|||
|
|
@ -219,17 +219,35 @@ extend Class SWWMHandler
|
|||
SWWMUtility.AchievementProgress('swwm_progress_onehp',onehpspree[pnum],src.player);
|
||||
}
|
||||
// tasty treats
|
||||
if ( swwm_demoslayer && (src.Health < 100) )
|
||||
if ( swwm_demoslayer )
|
||||
{
|
||||
int amt = clamp(e.Thing.SpawnHealth()/20,1,10);
|
||||
if ( e.Thing.Health < (e.Thing.GetGibHealth()*2) ) amt *= 3;
|
||||
else if ( e.Thing.Health < e.Thing.GetGibHealth() ) amt *= 2;
|
||||
for ( int i=0; i<amt; i++ )
|
||||
if ( src.Health < 100 )
|
||||
{
|
||||
let a = Actor.Spawn("HealthOrb",e.Thing.Vec3Offset(0,0,e.Thing.Height/2));
|
||||
a.vel.z = FRandom[Junk](4,16);
|
||||
double ang = FRandom[Junk](0,360);
|
||||
a.vel.xy = (cos(ang),sin(ang))*FRandom[Junk](4,8);
|
||||
int amt = clamp(e.Thing.SpawnHealth()/20,1,10);
|
||||
if ( e.Thing.Health < (e.Thing.GetGibHealth()*2) ) amt *= 3;
|
||||
else if ( e.Thing.Health < e.Thing.GetGibHealth() ) amt *= 2;
|
||||
for ( int i=0; i<amt; i++ )
|
||||
{
|
||||
if ( !Random[Junk](0,2) ) continue;
|
||||
let a = Actor.Spawn("HealthOrb",e.Thing.Vec3Offset(0,0,e.Thing.Height/2));
|
||||
a.vel.z = FRandom[Junk](4,16);
|
||||
double ang = FRandom[Junk](0,360);
|
||||
a.vel.xy = (cos(ang),sin(ang))*FRandom[Junk](4,8);
|
||||
}
|
||||
}
|
||||
if ( src.CountInv("ArmorNugget") < 100 )
|
||||
{
|
||||
int amt = clamp(e.Thing.SpawnHealth()/40,1,5);
|
||||
if ( e.Thing.Health < (e.Thing.GetGibHealth()*2) ) amt *= 3;
|
||||
else if ( e.Thing.Health < e.Thing.GetGibHealth() ) amt *= 2;
|
||||
for ( int i=0; i<amt; i++ )
|
||||
{
|
||||
if ( Random[Junk](0,1) ) continue;
|
||||
let a = Actor.Spawn("ArmorOrb",e.Thing.Vec3Offset(0,0,e.Thing.Height/2));
|
||||
a.vel.z = FRandom[Junk](4,16);
|
||||
double ang = FRandom[Junk](0,360);
|
||||
a.vel.xy = (cos(ang),sin(ang))*FRandom[Junk](4,8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -599,15 +599,22 @@ Class SWWMMessageBox : MessageBoxMenu
|
|||
double y = destHeight/2;
|
||||
int c = mMessage.Count();
|
||||
int theight = 0;
|
||||
int l1 = c;
|
||||
for ( int i=0; i<c; i++ )
|
||||
{
|
||||
int scl = ((i==c-1)||(mMessage.StringWidth(i)==0))?2:3;
|
||||
if ( mMessage.StringWidth(i) != 0 ) continue;
|
||||
l1 = i;
|
||||
break;
|
||||
}
|
||||
for ( int i=0; i<c; i++ )
|
||||
{
|
||||
int scl = ((i==c-1)||(mMessage.StringWidth(i)==0))?2:(i>l1)?1:3;
|
||||
theight += fontheight*scl;
|
||||
}
|
||||
y -= theight/2;
|
||||
for ( int i=0; i<c; i++ )
|
||||
{
|
||||
double scl = ((i==c-1)||(mMessage.StringWidth(i)==0))?2.:3.;
|
||||
double scl = ((i==c-1)||(mMessage.StringWidth(i)==0))?2.:(i>l1)?1.:3.;
|
||||
Screen.DrawText(textfont,OptionMenuSettings.mFontColorValue,destWidth/2-mMessage.StringWidth(i)*(scl/2.),y,mMessage.StringAt(i),DTA_VirtualWidth,destWidth,DTA_VirtualHeight,destHeight,DTA_KeepRatio,true,DTA_ScaleX,scl,DTA_ScaleY,scl);
|
||||
y += fontheight*scl;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,12 @@
|
|||
|
||||
// drop from monsters when using "Demoslayer" fun option
|
||||
// heals up to 100 HP when touched
|
||||
Class HealthOrb : Actor
|
||||
Class SlayerOrb : Actor abstract
|
||||
{
|
||||
Class<Actor> tclass;
|
||||
|
||||
Property TrailClass : tclass;
|
||||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Add";
|
||||
|
|
@ -24,13 +28,16 @@ Class HealthOrb : Actor
|
|||
+CANBOUNCEWATER;
|
||||
+FORCEXYBILLBOARD;
|
||||
}
|
||||
virtual void PickedUp( int np, PlayerPawn mo )
|
||||
{
|
||||
}
|
||||
override void Tick()
|
||||
{
|
||||
Vector3 oldp = pos;
|
||||
Super.Tick();
|
||||
if ( !isFrozen() )
|
||||
{
|
||||
let t = Spawn("HealthOrbTrail",pos);
|
||||
let t = Spawn(tclass,pos);
|
||||
t.scale *= abs(scale.x);
|
||||
t.alpha *= alpha;
|
||||
scale *= .995;
|
||||
|
|
@ -55,13 +62,7 @@ Class HealthOrb : Actor
|
|||
let mo = players[np].mo;
|
||||
if ( (GetAge() > 5) && SWWMUtility.BoxIntersect(self,mo,pad:8) )
|
||||
{
|
||||
int flg = CHANF_OVERLAP|CHANF_MAYBE_LOCAL;
|
||||
if ( mo.CheckLocalView() ) flg |= CHANF_NOPAUSE;
|
||||
mo.A_StartSound("misc/health_pkup",CHAN_ITEM,flg);
|
||||
int hp = int(ceil(abs(scale.x*10)));
|
||||
mo.GiveBody(hp,100);
|
||||
SWWMHandler.HealthFlash(np);
|
||||
SWWMScoreObj.Spawn(hp,mo.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+mo.Height/2),ST_Health);
|
||||
PickedUp(np,mo);
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
|
|
@ -80,14 +81,65 @@ Class HealthOrb : Actor
|
|||
Scale.x *= RandomPick[Junk](-1,-1);
|
||||
Scale.y *= RandomPick[Junk](-1,-1);
|
||||
}
|
||||
}
|
||||
Class HealthOrb : SlayerOrb
|
||||
{
|
||||
Default
|
||||
{
|
||||
SlayerOrb.TrailClass "HealthOrbTrail";
|
||||
}
|
||||
override void PickedUp( int np, PlayerPawn mo )
|
||||
{
|
||||
int flg = CHANF_OVERLAP|CHANF_MAYBE_LOCAL;
|
||||
if ( mo.CheckLocalView() ) flg |= CHANF_NOPAUSE;
|
||||
mo.A_StartSound("misc/health_pkup",CHAN_ITEM,flg);
|
||||
int hp = int(ceil(abs(scale.x*10)));
|
||||
mo.GiveBody(hp,100);
|
||||
SWWMHandler.HealthFlash(np);
|
||||
SWWMScoreObj.Spawn(hp,mo.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+mo.Height/2),ST_Health);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BLPF E -1 Bright;
|
||||
Stop;
|
||||
|
||||
}
|
||||
}
|
||||
Class HealthOrbTrail : Actor
|
||||
Class ArmorOrb : SlayerOrb
|
||||
{
|
||||
Default
|
||||
{
|
||||
SlayerOrb.TrailClass "ArmorOrbTrail";
|
||||
}
|
||||
override void PickedUp( int np, PlayerPawn mo )
|
||||
{
|
||||
int flg = CHANF_OVERLAP|CHANF_MAYBE_LOCAL;
|
||||
if ( mo.CheckLocalView() ) flg |= CHANF_NOPAUSE;
|
||||
mo.A_StartSound("misc/armor_pkup",CHAN_ITEM,flg);
|
||||
int hp = int(ceil(abs(scale.x*10)));
|
||||
let n = mo.FindInventory("ArmorNugget");
|
||||
if ( !n )
|
||||
{
|
||||
n = Inventory(Spawn("ArmorNugget"));
|
||||
n.AttachToOwner(mo);
|
||||
SWWMLoreLibrary.Add(mo.player,"Nugget");
|
||||
n.Amount = 0;
|
||||
}
|
||||
if ( n.Amount < 100 ) n.Amount = min(n.Amount+hp,100);
|
||||
SWWMHandler.ArmorFlash(np);
|
||||
SWWMScoreObj.Spawn(hp,mo.Vec3Offset(FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8),FRandom[ScoreBits](-8,8)+mo.Height/2),ST_Armor);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BLPF D -1 Bright;
|
||||
Stop;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Class SlayerOrbTrail : Actor abstract
|
||||
{
|
||||
Default
|
||||
{
|
||||
|
|
@ -115,6 +167,9 @@ Class HealthOrbTrail : Actor
|
|||
Super.PostBeginPlay();
|
||||
SpriteOffset = (0,-4);
|
||||
}
|
||||
}
|
||||
Class HealthOrbTrail : SlayerOrbTrail
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -122,6 +177,15 @@ Class HealthOrbTrail : Actor
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class ArmorOrbTrail : SlayerOrbTrail
|
||||
{
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
BLPS D -1 Bright;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class DashTrail : Actor
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue