Added projectile parrying. Hitscan parry will come soon.

Went a bit crazy with the extended lore again, oops.
This commit is contained in:
Mari the Deer 2020-03-15 22:47:41 +01:00
commit 98477d28b9
16 changed files with 310 additions and 61 deletions

View file

@ -433,38 +433,82 @@ the old mechanical demigod Maester Mekes.
## A loose timeline of events
This is in no way accurate, and it's hard to make much sense of all of it since
SWWM GZ effectively blends together the Doom and Unreal universes.
SWWM GZ effectively blends Doom with the UnSX universe (which was itself
already blended with Unreal). Note that there are BIG SPOILERS for some stuff
in my games here (though I'm avoiding spoilers for Doom Eternal, at least)
- ????: Twenty years after the fall of the Order of the One God, a message is
received from an old ruined complex beyond the seas. A declaration of war
from the "Church of the Dreadful Lady". A single, well trained mercenary puts
an end to their plans, but the true mastermind behind it all manages to flee.
- 1992: Waratsuki Emimaru is born.
- August of 2021: Hollow begins.
- September of 2021: Hollow ends. The "Convergence Event" happens, the real
world is destroyed. Waratsuki Emimaru becomes The Grinning Man.
- ????: A Sidhe thief infiltrates the mansion of one of D'Sparil's old
associates, stealing the Heart of D'Sparil and putting an end to the plans
for resurrecting him. The mansion is sold off, most of its valuables,
including the corporeal remains of the serpent rider, passed around among
several parties, until being eventually acquired by the "Cult of the
Viridescent Lord".
...
- ????: The three heroes who defeated Korax are called into the Winter Nexus,
they gather the four elemental gems and defeat the "Viridescent Lord". A
mysterious shadowy figure revives the corpse of D'Sparil, they disappear.
- ~130 BC: The town of Kereshnovka is founded by an alien race known as the
Qurensniv.
- ~149: The mad druid Daos Khomax summons a demon called Manakei, who proceeds
- Iteration 0: The void forms from within the bubble of empty space-time left
by the real world's destruction.
- Iteration 1: Azadeku, the first Administrator, is spawned.
- Iteration ~3.56542e208: Azadeku is erased by a Chaos Walker known as The
Grinning Man, who takes over the world they created. Project .Blank begins.
- ~2730000 BC: The mad dictator god Nedoshiaan is assassinated.
- 50803 BC: Administrator Noskas Kurenai is spawned from the void, creates the
world of Novoskhana.
- 45306 BC: The Eternal Undying Empire of Novoskhana is founded.
- 13903 BC: The Kurenai Kingdom is founded.
- 13675 BC: After a long absence, Father Nostros returns to the Kurenai Kingdom
followed by an army of demonic creatures, he takes over and forces everyone
else out. The old Kurenai Kingdom becomes what is now known as Hell.
- 4673 BC: Prince Admun is born.
- 4648 BC: Prince Admun's parents are assassinated, he is appointed as King.
- 4607 BC: Seras Tonkebis, Admun's personal advisor, executes his plan to take
the throne. Admun is forced into exile on the remote Egyptian colony of the
planet Earth, and is "cursed to roam the land eternally, unable to ever die".
- 1309 BC: After the defeat of Hektor Kuratagon and his Votrexxian armies on
Hebeku, the Nukuri discover a portal leading to a yet unexplored solar
system, and decide to investigate. They come across a planet brimming with
life, inhabited by a sapient, antropomorphic species, Humans. After settling
on Earth's moon and forming a peaceful alliance with the Lunarian natives,
they begin construction of the Luna Research Institute.
- 244 BC: Reubens Cyrus Karnanaiahmani is born.
- 130 BC: Having escaped from their homeworld when king Marc P. Karnanaiahmani
went mad and began executing anyone he suspected of treason, the Qurensniv
people arrive on Earth, a planet that their Nukuri allies were supervising,
and found the town of Kereshnovka.
- 149: The mad druid Daos Khomax summons a demon called Manakei, who proceeds
to burn down Kereshnovka. A group of warriors manage to defeat him. Weakened,
he retreats to the ghoul-infested forest, never to be seen again.
- 808: Admun settles on an european town as a blacksmith, under the alias of
"James the Blacksmith".
- 1011: Admun is imprisoned for a shoddy armor fitting job that caused a young
king to have his helmet permanently stuck to his head.
- 1097: Admun is freed, migrates to Scotland. Adopts his current name of
"James Admun Tachmek-Smith".
- 1308: The University of Nos-Kora is founded.
- 1744: Nekuratek is founded.
- 1870: Zanata Nekuraku I dies on a tragic accident while testing the first
Nokorokinylum fusion reactor. Her husband commits suicide not long after.
- 1887: Ashley Knox is born.
- 1894: Daniel Ischer is born.
- 1907: Nana Miyamoto is born.
- 1924: Blackmann Arms is founded.
- 1933: The Ischer family migrates to the US.
- 1956: Ryuji Miyamoto is born.
- 1973: Nana and Ryuji get married.
- 1976: Häzel Hoodth is born.
- 1977: A member of Hell's royal family travels to Kereshnovka in order to
rescue Manakei, who happens to be the heir to the throne. She fails to find
him.
- 1980: Janus Locke Hoodth is born.
- 1985: Taro Miyamoto is born.
- 1987: Dr. Häzel Hoodth dies tragically, becoming a ghoul of Kereshnovka.
- 1992: Misa Unissix is born.
- 1993: Saya Miyamoto is born.
- 2001: The Union Aerospace Armed Forces is formed.
- 2003: Onoke Mansion Murders.
- 2004: The Imanaki Research Foundation builds its headquarters in Kereshnovka.
- 2005: The town of Soundless Mound becomes shrouded in thick fog for five
whole days. Several reports of strange happenings are made.
- 2006: Ashley's band, "The Black Rat's Coven" is formed. Its initial members
are Ashley, Maruku Sarahabinaku, Py Kisun and William Dusk.
- 2007: The "Ghoul hunt" begins after a high-ranking UAAF official is murdered
by the creatures during a business visit to the Imanaki HQ.
- 2008: At the peak of the Ghoul hunt, an envoy of the Anarukon people is
@ -475,25 +519,41 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
survive and put an end to the incident after traveling back through the gate
and coming into contact with the Anderken royal family. Some time later,
UAAF soldiers scour the remains of the facility, retrieving most of the
foundation's research documents.
foundation's research documents. Yui Miyamoto is born.
- 2010: Akari Labs is founded.
- 2012: Munch Innovations is founded.
- 2013: Zanaveth II transfers to the Luna Research Institute, working as
head of research Nikita Kunau's assistant.
- 2014: Tach-Engine Technologies is founded.
- 2015: The UAAF rebrands itself as the UAC, having found quite a lot of
interest in what they recovered from Imanaki.
- 2018: Second major incident in the town of Kereshnovka. A rogue AI known as
SUSAN surfaces on the northern seas, assumes control of Russia's missile
systems.
- 2017: Saya creates the first Maidbot.
- 2016: Zanaveth II and Misa Unissix get married.
- 2018: Empty Episode One. Second major incident in the town of Kereshnovka. A
rogue AI known as SUSAN surfaces on the northern seas, assumes control of
Russia's missile systems.
- 2019: Samuel Hayden is born.
- 2020: A group of hackers manage to temporarily take over SUSAN, use its
advanced computing power to run thirty parallel instances of Crysis and a
500-player Minecraft server. This lasts for several months.
500-player Minecraft server. This lasts for several months, allowing things
to mostly return to normal for a while, including the Tokyo Olympics.
Following a concert of Ashley's band, she meets Yui Miyamoto and they start
dating. Not long after, they get married.
- 2021: The "Luna Event" happens. The first contact between humans and a
non-hostile alien race, the Nukuri, who had been observing our race for
centuries from a hidden research facility on the Moon. Following the event,
Nukuri forces deployed to Earth successfully neutralize SUSAN.
- 2023: The two Koreas re-unify.
- 2022: Scotland becomes independent.
- 2023: The two Koreas re-unify. Following years of negotiation, Galicia
becomes part of Portugal. Ana Blanco becomes the first human woman to marry a
Nukuri.
- 2024: Zanaveth II arrives on Earth, befriends Saya. With her help, Saya's
Maidbot is migrated to the Nekuronbot AI framework, further enhancing her
personality.
- 2025: First expedition to Mars, led by the UAC. Scotland becomes independent.
- 2027: William Dusk leaves Ashley's band, but not before hurting her deeply by
escaping with her granddaughter Lyra. He is replaced as drummer by the
goddess Mykka.
- 2029: Forx Aeronautics is founded, singlehandedly "fixes the economy" of the
UK.
- 2032: Joint expedition with the Nukuri to Sedna, revealing a gateway that
@ -501,9 +561,13 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
between two solar systems.
- 2038: The 32-bit UNIX time rollover happens without many notable incidents.
- 2040: Symnatek is founded.
- 2042: Zanaveth III is born.
- 2044: The Rust Empire is founded.
- 2045: The ruins of a Decade Mechanics facility are found in Sunkaeze.
- 2049: The clearly senile Dr. Locke attempts to take over the world.
Surrenders a couple days later during the counter-attack.
- 2054: Ryuji Miyamoto passes away.
- 2066: Elena "Ellen" Yanikov XVI is born.
- 2068: The Nukuri go through their seventh world war in their home planet.
- 2073: World War 3 starts thanks to a very negatively received post on social
media from the president of the US regarding the Nukuri.
@ -516,24 +580,33 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
it is already too late. World War 3 ends as the United States are almost
literally dissolved by an orbital strike. In the aftermath, the Nukuri
abandon Earth, never to come back.
- 2080: Emperor Kirin Xanai is born.
- 2082: Alaska becomes part of Canada.
- 2091: Taro Miyamoto finds Ibuki, who had become a sort of living legend among
wastelanders for her various feats. She is brought back to Japan. As
promised, Saya immediately shoves her face into Ibuki's chest.
- 2097: The Earth is invaded by a mysterious humanoid entity, who claims to be
the Abrahamic God. He reactivates SUSAN and leaves. Russia and China are both
entirely taken over by it.
- 2099: A lone child manages to take down SUSAN.
wastelanders for her various feats, he also comes across Ellen, who casually
asks him out on a date. Ibuki is brought back to Japan. As promised, Saya
immediately shoves her face into Ibuki's chest.
- 2095: Taro and Ellen get married.
- 2097: Empty Episode Two. The Earth is invaded by a mysterious humanoid entity
named Uruk'Anth, who claims to be the Abrahamic God. He reactivates SUSAN and
leaves. Russia and China are both entirely taken over by it.
- 2099: Empty Episode 3. A lone child manages to take down SUSAN.
- 2100: The reconstruction of the United States begins.
- 2104: The 7th Nukuri World War ends abruptly after the Mishe founders of the
University of Nos-Kora threaten to break their alliance with the Nukuri.
- 2108: Formation of the Nukuri Unified Government. Zanaveth II personally
appointed by the Nukritas brothers as "Minister of Interspecies Relations"
due to her outstanding work on the subject following her graduation at the
University of Nos-Kora.
- 2110: John "BIGSHOT" Gunns is born.
- 2128: Zanaveth II becomes CEO of Nekuratek.
- 2137: The United States are reformed, now called "Union States".
- 2140: Zanaveth III graduates in "Pancake Engineering" at the University of
Nos-Kora.
- 2144: UAC's first contact with Hell.
- 2145: After a coup organized by several members of the lower castes of Hell,
the main royal family is forced into exile. Under its new ruler, Hell decides
to attack mankind. Doom 3 happens.
- 2145: After a coup organized by several generals of Hell's military forces,
the main royal family is forced into exile. Under its new rulers, Hell
decides to attack mankind. Doom 3 happens.
- 2147: Reginald E. Griggs Jr. is imprisoned after countless human remains were
found in the basement of his summer house in Olathe.
- 2148: The Doom episodes happen as the UAC still hasn't learned their lesson.
@ -566,9 +639,17 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
The Doom Slayer heads in to "fix things". A mysterious figure is seen leaving
the mansion afterwards.
- 2171: Akari Labs manages to extend their teleportation technology to travel
between universes. The second contact with the Anarukon happens, this time
all going peacefully. Saya Miyamoto meets Xanai Kirin, their marriage brings
forth an alliance between the humans and the Anarukon.
between universes. The Demolitionist is deployed in a world called Parthoris,
and takes part on a mission to defeat an evil sorcerer who had taken over the
land. Months later, following a recommendation from Ashley Knox, the second
contact with the Anarukon happens, this time all going peacefully. Saya
Miyamoto meets Kirin Xanai, their marriage brings forth an alliance between
the humans and the Anarukon.
- 2172: Second major exploration at Akari Labs, the Demolitionist is deployed
into a realm known as Cronos in order to defeat an associate of the old
sorcerer from their previous mission.
- 2173: Third major exploration, with the Demolitionist taking part of a rebel
uprising in a world dominated by a cult known as the Order of the One God.
- 2174: The prophecy of Mr. BIG SHOT comes true as the "Great Face In The Sky"
reveals itself. It is defeated by a single man, one John A. Bortson III.
- 2175: Reginald E. Griggs Jr. is executed by lethal injection. His last words:
@ -587,6 +668,8 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
- 2214: The Vortex Rikers crashes on planet Na Pali, Unreal begins.
- 2215: The NEG is formed in anticipation of the coming Skaarj invasion.
- 2216: The Seven Day Siege happens, the Skaarj are defeated.
- 2231: Saya and her creations move in with Kirin, she leaves the leadership of
Akari Labs to her brother Taro.
- 2241: The Mishe race disappears from the universe, leaving only the founders
of the University of Nos-Kora behind, who refuse to explain what happened.
- 2250: The "Dark Alliance" is formed within X'Animen Coalition territory.
@ -600,18 +683,20 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
the Necris invasion of 2304, the corporation is dissolved.
- 2320: A group of billionaires buy an entire island and turn it into an arena.
The "Battle Royale" boom starts.
- 2407: Unissix Bokurou Azadeku devises the "Unissix Tournaments".
- 2407: Unissix Bokurou Azadeku devises the "Unissix Tournaments". UnSX 1
begins.
- 2409: The first tournament ends with Raik L Raikishionen, prime minister of
the Nukuri Unified Government, as champion.
- 2411: In a joint attack, and with the participation of Earth, the "Dark
Alliance" is defeated.
- 2415: The "New Dark Kingdom" is formed, in an attempt to reunite those who
were defeated in the former war. Its leader is defeated not long after.
- 2779: The former "Warriors of the End" who had served Nedoshiaan reunite and
attempt to bring forth the apocalypse. Although the warriors are stopped,
they manage to summon SHINNOVRE the Eraser. For the first time in history, LS
breaks their vow to not get involved in "the affairs of mortals" and banishes
their brother.
- 2411: UnSX 2. In a joint attack, and with the participation of Earth, the
"Dark Alliance" is defeated.
- 2415: UnSX 4. The "New Dark Kingdom" is formed, in an attempt to reunite
those who were defeated in the former war. Its leader is defeated not long
after.
- 2779: UnSX 6 begins. The former "Warriors of the End" who had served
Nedoshiaan reunite and attempt to bring forth the apocalypse. Although the
warriors are stopped, they manage to summon HEKEAS SHINNOVRE the Eraser. For
the first time in history, LS breaks their vow to not get involved in "the
affairs of mortals" and banishes their brother.
- 2890: "Vault 490" starts being built in the University of Nos-Kora, it is
described as a "focusing device" for a weapon capable of "instantly
neutralizing any threat to our universe".
@ -627,7 +712,44 @@ SWWM GZ effectively blends together the Doom and Unreal universes.
- 2917: Following ten confusing years of battle, Hiikya is defeated by Deneva
Unissix, who sacrifices her own life in the final attack.
- ????: In order to stop a massive Eldrich Abomination from corrupting all of
existence, the two Mishe brothers activate Vault 490. Although the threat is
defeated, major parts of the multiverse shatter in the process. Project Abyss
begins.
Disconnected events that are hard to place in time:
- ????: Twenty years after the fall of the Order of the One God, a message is
received from an old ruined complex from beyond the sea. A declaration of war
from the "Church of the Dreadful Lady". A single, well trained mercenary puts
an end to their plans, but the true mastermind behind it all manages to flee.
- ????: A Sidhe thief infiltrates the mansion of one of D'Sparil's old
associates, stealing the Heart of D'Sparil and putting an end to the plans
for resurrecting him. The mansion is sold off, most of its valuables,
including the corporeal remains of the serpent rider, passed around among
several parties, until being eventually acquired by the "Cult of the
Viridescent Lord".
- ????: Long after the defeat of Korax, a nameless warrior is called into the
Winter Nexus, they gather the four elemental gems and defeat the "Viridescent
Lord". A mysterious shadowy figure revives the corpse of D'Sparil, both
disappear shortly after.
Abyssal Era (Project Abyss timeline):
- 57 BA: Using Saya's interportal technology, the Rust Empire creates the
various "passages", connecting Akkou and many other realms together.
- 38 BA: The town of Kenaia becomes corrupted by some strange "red mass", many
of its inhabitants turn into mindless beasts.
- 17 BA: The Church of Levlen initiates their Esper Crusades, aiming to rid the
land of all magic-aligned people.
- 15 BA: Alakir of Kanaiarkar manages to flee his hometown during an attack
from Levlen crusaders.
- 8 BA: First excavations on Evakai.
- The Abyssal Year: In order to stop a massive Eldrich Abomination from
corrupting all of existence, the two Mishe brothers activate Vault 490.
Although the threat is defeated, major parts of the multiverse shatter in the
process.
- 4: A strange plague spreads throughout the various realms. A man known as
"The Emissary" appears and reveals himself as its creator, he is captured and
imprisoned by the Rust Empire.
- 13: General Marius dies in combat defending the realm of Naiarkar from an
invasion of Levlen crusaders.
- 22: The Grand Patriarch becomes the Champion of the Kenaia Colloseum.
- 29: Project Abyss begins.

BIN
models/Boolet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
models/Boolet_a.3d Normal file

Binary file not shown.

BIN
models/Boolet_d.3d Normal file

Binary file not shown.

View file

@ -317,6 +317,7 @@ demolitionist/kick3 sounds/demolitionist/demokick3.ogg
$random demolitionist/kick { demolitionist/kick1 demolitionist/kick2 demolitionist/kick3 }
demolitionist/revive sounds/demolitionist/demorevive.ogg
demolitionist/youdied sounds/demolitionist/demoded.ogg
demolitionist/parry sounds/demolitionist/demoparry.ogg
$playersound demolitionist neutral *grunt DSEMPTY
$playeralias demolitionist neutral *pain100 demolitionist/lopain
@ -614,6 +615,11 @@ misc/waterexit sounds/general/surfaceb.ogg
misc/slimeexit sounds/general/GoopE1.ogg
misc/lavaexit sounds/general/LavaE1.ogg
misc/ricochet1 sounds/general/ric1.ogg
misc/ricochet2 sounds/general/ric2.ogg
misc/ricochet3 sounds/general/ric3.ogg
$random misc/ricochet { misc/ricochet1 misc/ricochet2 misc/ricochet3 }
armor/blastsuit sounds/items/blastsuit.ogg
armor/wararmor sounds/items/wararmor.ogg
armor/hit1 sounds/items/hullhit.ogg

Binary file not shown.

BIN
sounds/general/ric1.ogg Normal file

Binary file not shown.

BIN
sounds/general/ric2.ogg Normal file

Binary file not shown.

BIN
sounds/general/ric3.ogg Normal file

Binary file not shown.

View file

@ -911,7 +911,9 @@ Class Eviscerator : SWWMWeapon
return A_JumpIf(invoker.extended,"User1Ext");
}
XZW8 WXYZ 2;
XZW9 ABCD 2;
XZW9 AB 2;
XZW9 C 2 A_Parry(8);
XZW9 D 2;
XZW9 E 2 A_Melee(60);
XZW9 FGH 2;
XZW9 I 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP);
@ -919,7 +921,9 @@ Class Eviscerator : SWWMWeapon
Goto Ready;
User1Ext:
XZW4 Z 2;
XZWA NOPQRSTU 2;
XZWA NOPQRS 2;
XZWA T 2 A_Parry(8);
XZWA U 2;
XZWA V 2 A_Melee(60);
XZWA WXY 2;
XZWA Z 2 A_StartSound("eviscerator/meleeend",CHAN_WEAPON,CHANF_OVERLAP);

View file

@ -476,7 +476,7 @@ Class DeepImpact : SWWMWeapon
XZW2 A 3 A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 H 4 A_StartSound("demolitionist/reloadbeg",CHAN_WEAPON,CHANF_OVERLAP);
XZW4 I 3;
XZW4 J 2;
XZW4 J 2 A_Parry(8);
XZW4 KLM 1;
XZW4 N 3 A_Melee(60);
XZW4 O 3 { invoker.PlayUpSound(self); }

View file

@ -447,10 +447,98 @@ Class BigPunchImpact : Actor
}
}
Class ParryField : Actor
{
Default
{
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+SHOOTABLE;
+NONSHOOTABLE;
+NOBLOOD;
+DONTTHRUST;
Health int.max;
Mass int.max;
Radius 20;
Height 40;
}
override void Tick()
{
Super.Tick();
if ( !master )
{
Destroy();
return;
}
Vector3 x, y, z, origin;
[x, y, z] = swwm_CoordUtil.GetAxes(master.pitch,master.angle,master.roll);
origin = level.Vec3Offset(master.Vec2OffsetZ(0,0,master.player.viewz),x*20-(0,0,20));
SetOrigin(origin,true);
// check for projectiles to deflect
let ti = ThinkerIterator.Create("Actor");
Actor a;
while ( a = Actor(ti.Next()) )
{
if ( !a.bMISSILE || a.bTHRUACTORS || (a.target == master) || (level.Vec3Diff(a.pos,Vec3Offset(0,0,20)).length() > 80) ) continue;
Vector3 vdir = a.vel;
Vector3 dir = level.Vec3Diff(pos,a.pos).unit();
if ( dir dot vdir > 0 ) continue; // already moving away
// deflect directly to target
if ( !Random[Parry](0,2) && a.target )
dir = level.Vec3Diff(a.pos,a.target.Vec3Offset(0,0,a.target.height/2)).unit();
// push away
if ( a.bSEEKERMISSILE ) a.tracer = a.target;
a.target = master;
double mvel = a.vel.length();
a.vel = dir*mvel*FRandom[Parry](1.,1.2);
a.angle = atan2(dir.y,dir.x);
a.pitch = asin(-dir.z);
bool raging = !!master.FindInventory("RagekitPower");
if ( raging ) a.vel *= 2.;
let i = Spawn(raging?"BigPunchImpact":"PunchImpact",a.pos);
i.target = master;
i.angle = atan2(dir.y,dir.x);
i.pitch = asin(-dir.z);
A_StartSound("demolitionist/parry",CHAN_VOICE,CHANF_OVERLAP,.4);
}
if ( --special1 <= 0 ) Destroy();
}
override bool CanCollideWith( Actor other, bool passive )
{
return false;
}
override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle )
{
if ( (flags&DMG_INFLICTOR_IS_PUFF) && (source != master) )
{
// TODO deflect hitscan
// three options:
// 1. just block the bullet, making it bounce off
// 2. ricochet in random direction
// 3. ricochet directly back to source
A_StartSound("demolitionist/parry",CHAN_VOICE,CHANF_OVERLAP,.4);
}
return 0;
}
States
{
Spawn:
TNT1 A -1;
Stop;
}
}
// Base class for all SWWM Weapons
Class SWWMWeapon : Weapon abstract
{
private int SWeaponFlags;
Actor pfield; // instance of parry field for current melee attack
FlagDef NoFirstGive : SWeaponFlags, 0; // don't give ammo on first pickup (for weapons with a clip count)
@ -533,6 +621,16 @@ Class SWWMWeapon : Weapon abstract
player.SetPSprite(PSP_FLASH,null);
player.mo.BringUpWeapon();
}
action void A_Parry( int duration )
{
Vector3 x, y, z, origin;
[x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll);
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),x*20-(0,0,20));
if ( invoker.pfield ) invoker.pfield.Destroy();
invoker.pfield = Spawn("ParryField",origin);
invoker.pfield.master = self;
invoker.pfield.special1 = duration;
}
private action bool TryMelee( double angle, int dmg )
{
FTranslatedLineTarget t;
@ -583,14 +681,24 @@ Class SWWMWeapon : Weapon abstract
}
action void A_Melee( int dmg = 40 )
{
// temporarily disable parry field so we can trace through
if ( invoker.pfield ) invoker.pfield.bSHOOTABLE = false;
bool raging = CountInv("RagekitPower");
int maxang = raging?18:12;
for ( int i=0; i<maxang; i++ ) if ( TryMelee(angle+i*(45./16),dmg) || TryMelee(angle-i*(45./16),dmg) ) return;
for ( int i=0; i<maxang; i++ )
{
if ( TryMelee(angle+i*(45./16),dmg) || TryMelee(angle-i*(45./16),dmg) )
{
if ( invoker.pfield ) invoker.pfield.bSHOOTABLE = true;
return;
}
}
// check for walls instead
FTranslatedLineTarget t;
double slope = AimLineAttack(angle,DEFMELEERANGE,t,0.,ALF_CHECK3D);
FLineTraceData d;
LineTrace(angle,DEFMELEERANGE,slope,TRF_THRUACTORS,player.viewheight,data:d);
if ( invoker.pfield ) invoker.pfield.bSHOOTABLE = true;
if ( d.HitType == TRACE_HitNone ) return;
Vector3 HitNormal = -d.HitDir;
if ( d.HitType == TRACE_HitFloor )

View file

@ -625,7 +625,8 @@ Class PusherWeapon : SWWMWeapon
User1:
XZW2 A 2 A_StartSound("demolitionist/wswing",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 ABCD 2;
XZW5 EFGH 1;
XZW5 E 1 A_Parry(8);
XZW5 FGH 1;
XZW5 I 0 A_Melee(70);
XZW5 IJ 2;
XZW5 K 2 { invoker.PlayUpSound(self); }

View file

@ -2725,7 +2725,7 @@ Class Spreadgun : SWWMWeapon
XZWJ QRSTUV 1;
Goto ReadyFired;
DummyMelee:
TNT1 A 3;
TNT1 A 3 A_Parry(6);
TNT1 A 1 A_Melee();
Stop;
User1:

View file

@ -531,7 +531,11 @@ Class ExplodiumGun : SWWMWeapon
XZW2 A 1;
XZW7 TU 1;
User1Hold:
XZW7 V 1 A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP);
XZW7 V 1
{
A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP);
A_Parry(6);
}
XZW7 WX 1;
XZW7 Y 1 A_Melee();
XZW7 Z 2;

View file

@ -1115,7 +1115,11 @@ Class CandyGun : SWWMWeapon
XZW2 A 1;
XZW7 TU 1;
User1Hold:
XZW7 V 1 A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP);
XZW7 V 1
{
A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP);
A_Parry(6);
}
XZW7 WX 1;
XZW7 Y 1 A_Melee();
XZW7 Z 2;