86 lines
2.2 KiB
Plaintext
86 lines
2.2 KiB
Plaintext
|
/*
|
||
|
* Copyright © 2024 Nicole O'Connor
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
|
||
|
class LargeZorcherHGA : LargeZorcher replaces LargeZorcher {
|
||
|
Default {
|
||
|
Weapon.SisterWeapon "LargeZorcherBuffed";
|
||
|
}
|
||
|
|
||
|
action void A_FireShotgunBuffed() {
|
||
|
// largely the same as the standard A_FireShotgun, with some changes because it's... buffed...
|
||
|
if (player == null) { return; }
|
||
|
|
||
|
A_StartSound("weapons/shotgf", CHAN_WEAPON);
|
||
|
Weapon weap = player.ReadyWeapon;
|
||
|
if (weap != null && invoker == weap && stateinfo != null && stateinfo.mStateType == STATE_Psprite) {
|
||
|
if (!weap.DepleteAmmo (weap.bAltFire, true, 1)) { return; }
|
||
|
|
||
|
player.SetPsprite(PSP_FLASH, weap.FindState('Flash'), true);
|
||
|
}
|
||
|
player.mo.PlayAttacking2 ();
|
||
|
|
||
|
double pitch = BulletSlope ();
|
||
|
for (int i = 0; i < 7; i++) {
|
||
|
int damage = 7 * random[GunShot](2, 4);
|
||
|
double ang = angle;
|
||
|
let accurate = false;
|
||
|
if (!accurate) {
|
||
|
ang += Random2[GunShot]() * (3.125 / 256);
|
||
|
if (GetCVar ("vertspread") && !sv_novertspread) {
|
||
|
pitch += Random2[GunShot]() * (1.675 / 256);
|
||
|
}
|
||
|
}
|
||
|
LineAttack(ang, PLAYERMISSILERANGE, pitch, damage, 'Hitscan', "BulletPuff");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class LargeZorcherBuffed : LargeZorcherHGA {
|
||
|
Default {
|
||
|
+WEAPON.POWERED_UP;
|
||
|
Weapon.SisterWeapon "LargeZorcherHGA";
|
||
|
|
||
|
Weapon.AmmoUse 2;
|
||
|
Weapon.AmmoGive 0;
|
||
|
}
|
||
|
|
||
|
States {
|
||
|
Ready:
|
||
|
SSHT A 1 A_WeaponReady;
|
||
|
Loop;
|
||
|
Deselect:
|
||
|
SSHT A 1 A_Lower;
|
||
|
Loop;
|
||
|
Select:
|
||
|
SSHT A 1 A_Raise;
|
||
|
Loop;
|
||
|
Fire:
|
||
|
SSHT A 3;
|
||
|
SSHT A 7 A_FireShotgunBuffed;
|
||
|
SSHT A 3;
|
||
|
SSHT A 7 A_FireShotgunBuffed;
|
||
|
SSHT BC 5;
|
||
|
SSHT D 4;
|
||
|
SSHT CB 3;
|
||
|
SSHT A 3;
|
||
|
SSHT A 7 A_ReFire;
|
||
|
Goto Ready;
|
||
|
Flash:
|
||
|
SSHF A 4 Bright A_Light1;
|
||
|
SSHF B 3 Bright A_Light2;
|
||
|
Goto LightDone;
|
||
|
}
|
||
|
}
|