Oh boy, here comes another big one.

Notable changes since last commit are the full implementation of the automag and asmd.
Also the Translator is now fully functional.
Fonts have been restructured to a neater format.
There have also been other random changes I don't have the time to document in detail.
This commit is contained in:
Marisa the Magician 2019-08-31 03:14:20 +02:00
commit 01249eb43f
1892 changed files with 5151 additions and 416 deletions

View file

@ -39,6 +39,16 @@ Class StingerAmmo2 : StingerAmmo
}
}
Class StingerBurstLight : PaletteLight
{
Default
{
Tag "Blue3";
Args 0,0,0,30;
ReactionTime 10;
}
}
Class StingerProjectile : Actor
{
Default
@ -74,6 +84,7 @@ Class StingerProjectile : Actor
if ( !Random[Stinger](0,2) ) A_PlaySound("stinger/hit2",CHAN_BODY,0.5,pitch:FRandom[Stinger](0.5,1.5));
else A_PlaySound("stinger/hit",CHAN_BODY,0.6);
A_AlertMonsters();
Spawn("StingerBurstLight",pos);
}
TPRJ BCDEFG 2 Bright;
Stop;
@ -83,8 +94,18 @@ Class StingerProjectile : Actor
}
}
Class Stinger : UTWeapon
Class StingerLight : EnforcerLight
{
Default
{
args 64,128,255,80;
}
}
Class Stinger : UnrealWeapon
{
int flashnum;
Default
{
Tag "$T_STINGER";
@ -99,10 +120,6 @@ Class Stinger : UTWeapon
Weapon.AmmoGive 40;
UTWeapon.DropAmmo 20;
}
override void PlayUpSound( Actor origin )
{
origin.A_PlaySound(upsound,CHAN_WEAPON,Dampener.Active(origin)?.1:1.);
}
action void A_StingerFire( bool hold = false )
{
Weapon weap = Weapon(invoker);
@ -121,13 +138,14 @@ Class Stinger : UTWeapon
}
A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true);
A_OverlayRenderstyle(PSP_FLASH,STYLE_Add);
invoker.FireEffect();
UTMainHandler.DoFlash(self,Color(16,0,64,255),1);
UTMainHandler.DoSwing(self,(FRandom[Stinger](-0.1,-0.2),FRandom[Stinger](-0.1,0.1)),4,-1.5,2,SWING_Spring,2,2);
if ( !Dampener.Active(self) ) A_AlertMonsters();
A_QuakeEx(1,1,1,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
Vector3 x, y, z;
[x, y, z] = dt_Matrix4.GetAxes(pitch,angle,roll);
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+8.0*y-9.0*z;
Vector3 origin = (pos.x,pos.y,player.viewz)+5.0*x+8.0*y-8.0*z;
Actor p = Spawn("StingerProjectile",origin);
p.angle = angle;
p.pitch = BulletSlope();
@ -143,13 +161,14 @@ Class Stinger : UTWeapon
A_Overlay(PSP_FLASH,"MFlash");
A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true);
A_OverlayRenderstyle(PSP_FLASH,STYLE_Add);
invoker.FireEffect();
UTMainHandler.DoFlash(self,Color(16,0,64,255),1);
UTMainHandler.DoSwing(self,(FRandom[Stinger](-0.3,-0.8),FRandom[Stinger](-0.4,0.4)),4,-1,3,SWING_Spring,3,5);
if ( !Dampener.Active(self) ) A_AlertMonsters();
A_QuakeEx(1,1,1,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1);
Vector3 x, y, z;
[x, y, z] = dt_Matrix4.GetAxes(pitch,angle,roll);
Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+8.0*y-9.0*z;
Vector3 origin = (pos.x,pos.y,player.viewz)+5.0*x+8.0*y-8.0*z;
[x, y, z] = dt_Matrix4.GetAxes(BulletSlope(),angle,roll);
Actor p;
double a, s;
@ -193,7 +212,11 @@ Class Stinger : UTWeapon
STNI A 3;
STNI A 0 A_Refire(1);
Goto Idle;
STNI A 0 A_PlaySound("stinger/hold",CHAN_WEAPON,Dampener.Active(self)?.1:1.,true);
STNI A 0
{
A_PlaySound("stinger/hold",CHAN_WEAPON,Dampener.Active(self)?.1:1.,true);
invoker.flashnum = Random[Stinger](0,3);
}
Hold:
STNH A 1
{
@ -201,6 +224,7 @@ Class Stinger : UTWeapon
if ( self is 'UPlayer' )
UPlayer(self).PlayAttacking();
A_StingerFire(true);
invoker.flashnum = (invoker.flashnum+1)%4;
}
STNH BCDEFG 1;
STNH A 0 A_Refire();
@ -212,14 +236,51 @@ Class Stinger : UTWeapon
STNI A 35; // yes, 1 second cooldown
Goto Idle;
Deselect:
STND ABCDEFGHIJK 1;
STND ACEGIK 1;
STND K 1 A_Lower(int.max);
Wait;
MFlash:
STFF A 2 Bright
{
let l = Spawn("StingerLight",pos);
l.target = self;
}
Stop;
MFlashHold:
TNT1 A 0 A_JumpIf(invoker.flashnum==0,7);
TNT1 A 0 A_JumpIf(invoker.flashnum==1,4);
TNT1 A 0 A_JumpIf(invoker.flashnum==2,4);
TNT1 A 0 A_JumpIf(invoker.flashnum==3,1);
Stop;
STFF A 2 Bright
{
let l = Spawn("StingerLight",pos);
l.target = self;
}
Stop;
STFF B 2 Bright
{
let l = Spawn("StingerLight",pos);
l.target = self;
}
Stop;
STFF C 2 Bright
{
let l = Spawn("StingerLight",pos);
l.target = self;
}
Stop;
STFF D 2 Bright
{
let l = Spawn("StingerLight",pos);
l.target = self;
}
Stop;
/*MFlash:
STFF ABC 2 Bright;
Stop;
MFlashHold:
STFH ABCDEFG 1 Bright;
Stop;
Stop;*/
}
}