diff --git a/ACS/MAP01.acs b/ACS/MAP01.acs index c9c3ca8..e16a014 100644 --- a/ACS/MAP01.acs +++ b/ACS/MAP01.acs @@ -278,15 +278,14 @@ // Game changelog #define CHANGES "\ -Version Beta 1.95d\n\ +Version Beta 1.95E\n\ What's new in the Beta?\n\n\ -+ Added more pokemon\n\ -+ Added more dickfails\n\ -* Gave more time to submit numerical answers\n\ -* Fixed a bug with the archvile pillars\n\ -* Fixed minor lighting bug in car tunnel\n\ -* Fixed issue with boss fight networking\n\ -* Fixed inverted controls on some minigames\n\ ++Added Unsafe database option\n\ +*Optimized server and client code\n\ +*Fixed arena walls blocking projectiles\n\ +*Miscellaneous minigame rebalancing and fixes\n\ +*Boss fight balance changes and fixes\n\ +*Beta tester hats should work now\n\ " // Menu Text @@ -521,7 +520,7 @@ Script "DoomWare_Server_InitMap" (void) Ceiling_Waggle(109, 32, 64, 0, 0); Floor_Waggle(133, 32, 64, 0, 0); - Floor_Waggle(254, 256, 16, 0, 0); + Floor_Waggle(254, 256, 24, 0, 0); Scroll_Floor(3, 300, 2, 240); Scroll_Ceiling(3, 300, 2, 90); @@ -646,7 +645,7 @@ Script "DoomWare_Server_InitHints" (void) temp_hint[29] = "Spoiler, after round 25 the game says 'Game Over'."; temp_hint[30] = "Griffith did nothing wrong."; temp_hint[31] = "When the game speeds up it both gets faster and harder."; - temp_hint[32] = "Wanna help me out with making this WAD? Get in touch!"; + temp_hint[32] = "Wanna make suggestions for new minigames? Get in touch, or open an issue on GitHub!"; temp_hint[33] = "Coming Soon: Complex DoomWare vs Ghouls vs Megaman vs Unholy bosses - Push + Jumpmaze edition."; temp_hint[34] = "This WAD encourages and rewards suicide, sometimes."; temp_hint[35] = "This WAD contains memes older than the average internet user."; @@ -671,7 +670,7 @@ Script "DoomWare_Server_InitHints" (void) temp_hint[54] = "Please stop asking me for feet pics, Jennifer."; temp_hint[55] = "This WAD may be sold to Korean gangsters."; temp_hint[56] = "Doom 3 is fun."; - temp_hint[57] = "Did I ever tell you the definition of Insanity?"; + temp_hint[57] = "Still trying to figure out why the Major was a cyborg."; temp_hint[58] = "I finished Super Sonic Doom with a score of 2,282,450."; temp_hint[59] = "I beat Dark Souls 1 and 2."; temp_hint[60] = "Keikaku means plan."; @@ -823,7 +822,7 @@ Script "DoomWare_Client_Initialize" (void) // Check the player's role or warn if they're not logged in - if (playerIsLoggedIn(PlayerNumber())) + if (!GetCVar("doomware_unsafedb") && playerIsLoggedIn(PlayerNumber())) Load_PlayerDB(PlayerNumber()); else data_role[PlayerNumber()] = ROLE_UNLOGGED; @@ -918,9 +917,8 @@ Script "DoomWare_Server_GameLogic" (void) game_status = STATUS_GAMEOVER; HUDMessage(s:"Game Over"; HUDMSG_LOG, MSGID_CONSOLE, CR_BLACK, 2.0, 2.0, 0); str printscore = "Final score tally:"; - for (i=0; i= 200) + if ((GetCVar("doomware_unsafedb") || playerIsLoggedIn(i)) && playerInGame(i) && data_role[i] == ROLE_NONE) + if ((GetCVar("doomware_unsafedb") && GetDBEntry("Points", StrParam(n:i+1) + game_score[i] >= 200)) || GetDBEntry("Points", getPlayerAccountName(i)) + game_score[i] >= 200) data_role[i] = ROLE_REGULAR; // Begin the Database Transaction BeginDBTransaction(); for (i=0; i -54.0 && !player_lostround[PlayerNumber()]) + if (minigame_wincondition1 == 1 && GetActorZ(0) > -44.0 && !player_lostround[PlayerNumber()]) Thing_damage(0, 10000, MOD_LAVA); delay(1); } @@ -4412,7 +4439,7 @@ Script "DoomWare_Client_Minigame65" (void) // Spam the Indicated Button switch (minigame_wincondition2) { case 0: - minigame_instruction1[PlayerNumber()] = "Spam Shoot"; + minigame_instruction1[PlayerNumber()] = "Spam \cdShoot"; if( (curinput & BT_ATTACK) && !(oldinput & BT_ATTACK) ) player_answer1[PlayerNumber()]++; else if (((curinput & BT_JUMP) && !(oldinput & BT_JUMP)) || ((curinput & BT_USE) && !(oldinput & BT_USE))) @@ -4423,7 +4450,7 @@ Script "DoomWare_Client_Minigame65" (void) // Spam the Indicated Button errbuff--; break; case 1: - minigame_instruction1[PlayerNumber()] = "Spam Use"; + minigame_instruction1[PlayerNumber()] = "Spam \cgUse"; if( (curinput & BT_USE) && !(GetPlayerInput(-1, INPUT_OLDBUTTONS) & BT_USE) ) player_answer1[PlayerNumber()]++; else if (((curinput & BT_JUMP) && !(oldinput & BT_JUMP)) || ((curinput & BT_ATTACK) && !(oldinput & BT_ATTACK))) @@ -4434,7 +4461,7 @@ Script "DoomWare_Client_Minigame65" (void) // Spam the Indicated Button errbuff--; break; case 2: - minigame_instruction1[PlayerNumber()] = "Spam Jump"; + minigame_instruction1[PlayerNumber()] = "Spam \chJump"; if( (curinput & BT_JUMP) && !(oldinput & BT_JUMP) ) { ThrustThingZ(0, 20, 0, 0); @@ -4537,15 +4564,30 @@ Script "DoomWare_Client_Minigame70" (void) // Eat // Check if the right food has been consumed while (game_status == STATUS_MINIGAME) { - if ((CheckInventory("Food_EggRoll") > 0) || (CheckInventory("Food_SalmonRoll1") > 0) || + int food_count = CheckInventory("Food_EggRoll")+CheckInventory("Food_SalmonRoll1")+CheckInventory("Food_SalmonRoll2")+CheckInventory("Food_Shrimp")+CheckInventory("Food_Toro")+CheckInventory("Food_Tea")+CheckInventory("Food_Sushi1")+CheckInventory("Food_Sushi2"); + + // Win if the player ate the correct item + if ((CheckInventory("Food_EggRoll") > 0) || (CheckInventory("Food_SalmonRoll1") > 0) || (CheckInventory("Food_SalmonRoll2") > 0) || (CheckInventory("Food_Shrimp") > 0) || (CheckInventory("Food_Toro") > 0) || (CheckInventory("Food_Tea") > 0 && minigame_wincondition1 == 0 ) || (CheckInventory("Food_Sushi1") > 0 && minigame_wincondition1 == 1) || (CheckInventory("Food_Sushi2") > 0 && minigame_wincondition1 == 1)) Player_Win(PlayerNumber()); + // Lose if the player ate the wrong item (Even if they won already) if ((CheckInventory("Food_Tea") > 0 && minigame_wincondition1 == 1 ) || (CheckInventory("Food_Sushi1") > 0 && minigame_wincondition1 == 0) || (CheckInventory("Food_Sushi2") > 0 && minigame_wincondition1 == 0)) + { + if (player_wonround[PlayerNumber()] == true) + { + player_wonround[PlayerNumber()] = false; + player_midround[PlayerNumber()] = true; + } Player_Lose(PlayerNumber(), false); + } + + // Kill the player if he's a fatty + if (food_count > 3) + Thing_Destroy(TID_PLAYER+PlayerNumber(), 1, 0); delay(1); } @@ -4562,6 +4604,7 @@ Script "DoomWare_Client_Minigame71" (void) // Find a Pokemon // Morph the player into Ash str class = "AshPlayer"; + while (StrCmp(GetActorClass(TID_PLAYER+PlayerNumber()), class) != 0) { Player_Morph(PlayerNumber(), class); @@ -4653,10 +4696,10 @@ Script "DoomWare_Client_Minigame73" (void) // Mine an Ore minigame_instruction1[PlayerNumber()] = "Mine \ccTin"; break; case 1: - minigame_instruction1[PlayerNumber()] = "Mine \cqAdamantite"; + minigame_instruction1[PlayerNumber()] = "Mine \cfGold"; break; case 2: - minigame_instruction1[PlayerNumber()] = "Mine \cvRunite"; + minigame_instruction1[PlayerNumber()] = "Mine \chMithril"; break; } @@ -4678,9 +4721,9 @@ Script "DoomWare_Client_Minigame73" (void) // Mine an Ore { if (minigame_wincondition1 == 0 && CheckInventory("TinOreItem")) Player_Win(PlayerNumber()); - else if (minigame_wincondition1 == 1 && CheckInventory("AdamantiteOreItem")) + else if (minigame_wincondition1 == 1 && CheckInventory("GoldOreItem")) Player_Win(PlayerNumber()); - else if (minigame_wincondition1 == 2 && CheckInventory("RuniteOreItem")) + else if (minigame_wincondition1 == 2 && CheckInventory("MithrilOreItem")) Player_Win(PlayerNumber()); delay(1); } @@ -4797,8 +4840,7 @@ Script "DoomWare_Client_Minigame80" (void) // Survive (Pyoro) Force_Observe(813); // Invert the player's controls and make him unable to jump - if (game_wackymod != WACKYMOD_INVERT) - SetActorProperty(0, APROP_Speed, -GetActorProperty(0, APROP_Speed)); + SetActorProperty(0, APROP_Speed, -GetActorProperty(0, APROP_Speed)); SetActorProperty(0 ,APROP_JumpZ, 0<<16); // Wait until the game's over @@ -5076,7 +5118,8 @@ Script "DoomWare_Client_TieBreaker2" (void) // Rope Tug int plyx, plyy, plyz; minigame_instruction1[PlayerNumber()] = "Wait for the signal"; - minigame_instruction2[PlayerNumber()] = "Press your Use key to repeatedly tug the rope"; + minigame_instruction2[PlayerNumber()] = "Press your Shoot key to repeatedly tug the rope"; + minigame_wincondition1 = 0; // Move the players if (PlayerNumber() == game_highnames[0] || PlayerNumber() == game_highnames[1]) @@ -5090,7 +5133,7 @@ Script "DoomWare_Client_TieBreaker2" (void) // Rope Tug // Kill the player if they press use too soon while (minigame_canmove == false) { - if ((PlayerNumber() == game_highnames[0] || PlayerNumber() == game_highnames[1]) && (GetPlayerInput(-1, MODINPUT_BUTTONS) & BT_USE) && !(GetPlayerInput(-1, INPUT_OLDBUTTONS) & BT_USE)) + if ((PlayerNumber() == game_highnames[0] || PlayerNumber() == game_highnames[1]) && (GetPlayerInput(-1, MODINPUT_BUTTONS) & BT_ATTACK) && !(GetPlayerInput(-1, INPUT_OLDBUTTONS) & BT_ATTACK)) Thing_Destroy(TID_PLAYER+PlayerNumber(), 0); delay(1); } @@ -5103,17 +5146,18 @@ Script "DoomWare_Client_TieBreaker2" (void) // Rope Tug { int ply1 = game_highnames[0]; int ply2 = game_highnames[1]; - if ((PlayerNumber() == ply1 || PlayerNumber() == ply2) && (GetPlayerInput(-1, MODINPUT_BUTTONS) & BT_USE) && !(GetPlayerInput(-1, INPUT_OLDBUTTONS) & BT_USE)) + minigame_wincondition1 = 0; + if ((PlayerNumber() == ply1 || PlayerNumber() == ply2) && (GetPlayerInput(-1, MODINPUT_BUTTONS) & BT_ATTACK) && !(GetPlayerInput(-1, INPUT_OLDBUTTONS) & BT_ATTACK)) { if (PlayerNumber() == ply1 && !player_lostround[ply1] && GetActorY(TID_PLAYER+ply1) < 1848.0) { - Line_SetTextureOffset(27, +3.0, NO_CHANGE, SIDE_FRONT, 10); + minigame_wincondition1++; SetActorPosition(TID_PLAYER+ply2, GetActorX(TID_PLAYER+ply2), GetActorY(TID_PLAYER+ply2)-3.0, GetActorZ(TID_PLAYER+ply2), false); SetActorPosition(TID_PLAYER+ply1, GetActorX(TID_PLAYER+ply1), GetActorY(TID_PLAYER+ply1)-3.0, GetActorZ(TID_PLAYER+ply1), false); } if (PlayerNumber() == ply2 && !player_lostround[ply2] && GetActorY(TID_PLAYER+ply2) > 1992.0) { - Line_SetTextureOffset(27, -3.0, NO_CHANGE, SIDE_FRONT, 10); + minigame_wincondition1--; SetActorPosition(TID_PLAYER+ply1, GetActorX(TID_PLAYER+ply1), GetActorY(TID_PLAYER+ply1)+3.0, GetActorZ(TID_PLAYER+ply1), false); SetActorPosition(TID_PLAYER+ply2, GetActorX(TID_PLAYER+ply2), GetActorY(TID_PLAYER+ply2)+3.0, GetActorZ(TID_PLAYER+ply2), false); } @@ -8171,9 +8215,9 @@ Script "DoomWare_Server_Minigame73" (void) // Mine an ore minigame_wincondition1 = random(0, 2); // Spawn the ores - SpawnSpotForced("AdamantiteOre", 676, TID_REMOVE, 0); + SpawnSpotForced("GoldOre", 676, TID_REMOVE, 0); SpawnSpotForced("TinOre", 677, TID_REMOVE, 0); - SpawnSpotForced("RuniteOre", 678, TID_REMOVE, 0); + SpawnSpotForced("MithrilOre", 678, TID_REMOVE, 0); // Move all the players to the arena ACS_NamedExecute("DoomWare_Server_TeleportPlayers", 0, 640, false, true); @@ -9360,6 +9404,8 @@ function void Player_Morph(int plynum, str what) SpawnSpotForced("PlayerTranslator", TID_PLAYER+plynum, TID_EXTRA+plynum, 0); Thing_SetTranslation(TID_EXTRA+plynum, -1); MorphActor(TID_PLAYER+plynum, what, 1, minigame_timer, MRF_NEWTIDBEHAVIOUR, "Nothing", "Nothing"); + if (game_wackymod == WACKYMOD_INVERT && GetActorProperty(0, APROP_Speed) > 0) + SetActorProperty(0, APROP_Speed, -GetActorProperty(0, APROP_Speed)); } function void Player_FreezeTotally(int who) @@ -9417,13 +9463,16 @@ Script "DoomWare_Entity_SetPlayerTranslation" (void) // Translate colors on morp function void Load_PlayerDB(int plynum) { + str plyname = getPlayerAccountName(plynum); + if (GetCVar("doomware_unsafedb")) + plyname = StrParam(n:plynum+1); BeginDBTransaction(); - data_points[plynum] = GetDBEntry("Points", getPlayerAccountName(plynum)); - data_wins[plynum] = GetDBEntry("Wins", getPlayerAccountName(plynum)); - data_deaths[plynum] = GetDBEntry("Deaths", getPlayerAccountName(plynum)); - data_1ups[plynum] = GetDBEntry("1Ups", getPlayerAccountName(plynum)); - data_role[plynum] = GetDBEntry("Role", getPlayerAccountName(plynum)); - data_achieve[plynum] = GetDBEntry("Achievements", getPlayerAccountName(plynum)); + data_points[plynum] = GetDBEntry("Points", plyname); + data_wins[plynum] = GetDBEntry("Wins", plyname); + data_deaths[plynum] = GetDBEntry("Deaths", plyname); + data_1ups[plynum] = GetDBEntry("1Ups", plyname); + data_role[plynum] = GetDBEntry("Role", plyname); + data_achieve[plynum] = GetDBEntry("Achievements", plyname); EndDBTransaction(); } @@ -9441,24 +9490,25 @@ function void Check_FailRoundItem(void) Player_Lose(i, false); } -function int AToI (str s) +function int AToI(str s) { + int start = 0; bool negative = false; int n = 0; int len = StrLen(s); + + // Check if there's a negative sign + if (GetChar(s, 0) == '-') + { + negative = true; + start++; + } // Go through every character in the string - for (int i = 0; i < len; i++) + for (int i=start; i '9') { diff --git a/ACS/MAP30.acs b/ACS/MAP30.acs index 3348b76..5b87430 100644 --- a/ACS/MAP30.acs +++ b/ACS/MAP30.acs @@ -318,8 +318,8 @@ script "DoomWare_Server_Boot" OPEN // Check if buu342 is ingame for (i=0; i '9') { diff --git a/DECORATE/DECORATE.txt b/DECORATE/DECORATE.txt index 380c1ca..2a4d1f2 100644 --- a/DECORATE/DECORATE.txt +++ b/DECORATE/DECORATE.txt @@ -164,7 +164,7 @@ ACTOR dickfail deathsound "DoomWare/Spam" seesound "DoomWare/Spam" activesound "DoomWare/Yaya" - obituary "%o, can I rape your ass? Yes!" + obituary "%o, can I fuck your ass? Yes!" speed 8 MONSTER +SOLID @@ -729,6 +729,7 @@ ACTOR SonicPlayer : DoomPlayer ACTOR Buu342Player : DoomPlayer { scale 0.22 + +PICKUP +NOSKIN Player.SoundClass "buu342" States @@ -3090,8 +3091,8 @@ ACTOR TinOre 11142 } } -// Adamantite ore rock -ACTOR AdamantiteOre : TinOre 11143 +// Golde ore rock +ACTOR GoldeOre : TinOre 11143 { States { @@ -3105,7 +3106,7 @@ ACTOR AdamantiteOre : TinOre 11143 RSOR C 0 A_PAIN goto See Death: - RSOR B 0 A_GiveToTarget("AdamantiteOreItem",1) + RSOR B 0 A_GiveToTarget("GoldeOreItem",1) RSOR B 0 A_Scream RSOR B 0 A_ChangeFlag("shootable",1) RSOR B 0 A_ChangeFlag("SOLID",1) @@ -3115,8 +3116,8 @@ ACTOR AdamantiteOre : TinOre 11143 } } -// Runite ore rock -ACTOR RuniteOre : TinOre 11144 +// Mithril ore rock +ACTOR MithrilOre : TinOre 11144 { States { @@ -3130,7 +3131,7 @@ ACTOR RuniteOre : TinOre 11144 RSOR E 0 A_PAIN goto See Death: - RSOR B 0 A_GiveToTarget("RuniteOreItem",1) + RSOR B 0 A_GiveToTarget("MithrilOreItem",1) RSOR B 0 A_Scream RSOR B 0 A_ChangeFlag("shootable",1) RSOR B 0 A_ChangeFlag("SOLID",1) @@ -3182,10 +3183,10 @@ ACTOR TinOreItem : Ammo } } -// Runite ore item -ACTOR RuniteOreItem : Ammo +// Mithril ore item +ACTOR MithrilOreItem : Ammo { - Inventory.PickupMessage "Mined some Runite" + Inventory.PickupMessage "Mined some Mithril" Inventory.Amount 1 Inventory.MaxAmount 1 Inventory.PickupSound "DoomWare/Ring" @@ -3202,10 +3203,10 @@ ACTOR RuniteOreItem : Ammo } } -// Adamantite ore item -ACTOR AdamantiteOreItem : Ammo +// Golde ore item +ACTOR GoldeOreItem : Ammo { - Inventory.PickupMessage "Mined some Adamantite" + Inventory.PickupMessage "Mined some Golde" Inventory.Amount 1 Inventory.MaxAmount 1 Inventory.PickupSound "DoomWare/Ring" @@ -3535,7 +3536,6 @@ ACTOR BBallLauncher : DoomWeapon 11148 { Radius 16 Height 32 - Weapon.Selectionorder 2500 +WEAPON.NOAUTOFIRE +WEAPON.NOAUTOAIM Weapon.AmmoUse 1 @@ -5034,41 +5034,6 @@ ACTOR CoopShotgun : Shotgun } } -// Double damage version -ACTOR CoopShotgunDD : CoopShotgun -{ - States - { - Fire: - SHTG A 3 - SHTG A 0 A_FireBullets(5.6, 0, 7, 10, "CoopBulletPuff") - SHTG A 0 A_PlaySound("weapons/shotgf", CHAN_WEAPON) - SHTG A 7 A_GunFlash - SHTG BC 5 - SHTG D 4 - SHTG CB 5 - SHTG A 3 - SHTG A 7 A_ReFire - Goto Ready - } -} - -// Pistol for boss round -ACTOR CoopPistol : Pistol -{ - States - { - Fire: - PISG A 4 - PISG B 0 A_FireBullets (5.6, 0, 1, 5, "CoopBulletPuff") - PISG B 0 A_PlaySound("weapons/pistol", CHAN_WEAPON) - PISG B 6 A_GunFlash - PISG C 4 - PISG B 5 A_ReFire - Goto Ready - } -} - // Chaingun for boss round ACTOR CoopChaingun : Chaingun { @@ -5092,19 +5057,14 @@ ACTOR CoopChaingun : Chaingun } } -// Double damage version -ACTOR CoopChaingunDD : CoopChaingun +actor DoubleDamagePickup : PowerDamage { - States - { - Fire: - CHGG A 0 A_PlaySound("weapons/chngun", CHAN_WEAPON) - CHGG A 0 A_GunFlash - CHGG A 4 A_FireBullets(5.6, 0, 1, 10, "CoopBulletPuff") - CHGG B 0 A_PlaySound("weapons/chngun", CHAN_WEAPON) - CHGG B 0 A_GunFlash("Flash2") - CHGG B 4 A_FireBullets(5.6, 0, 1, 10, "CoopBulletPuff") - CHGG B 0 A_ReFire - Goto Ready - } + damagefactor "CoopBullet", 2 + Powerup.Duration 0x7FFFFFFF +} + +actor QuadDamagePickup : PowerDamage +{ + damagefactor "CoopBullet", 4 + Powerup.Duration 0x7FFFFFFF } \ No newline at end of file diff --git a/Other Lumps/ANIMDEFS.txt b/Other Lumps/ANIMDEFS.txt index 53f5b20..9e1ef5f 100644 --- a/Other Lumps/ANIMDEFS.txt +++ b/Other Lumps/ANIMDEFS.txt @@ -28,4 +28,4 @@ pic 2 tics 4 pic 3 tics 4 switch SOTESCHN on pic SOTESCHY tics 0 -switch SOTESCHY off pic SOTESCHN tics 0 \ No newline at end of file +switch SOTESCHY off pic SOTESCHN tics 0 \ No newline at end of file diff --git a/Other Lumps/CREDITS.txt b/Other Lumps/CREDITS.txt index e21324a..b5ee877 100644 --- a/Other Lumps/CREDITS.txt +++ b/Other Lumps/CREDITS.txt @@ -1,4 +1,4 @@ -================================== +================================== Credits ================================== @@ -111,7 +111,7 @@ Muisc - Congo Jungle Theme - Super Smash Bros 64 Music - E3M2 (Donna To The Rescue) - Doom Weapon Sprites and Code - Skulltag -**Kamikazi** +**Survive (Kamikazi)** Sprites - Capitain Toenail Sound - Trouble In Terrorist Town (Unsure of the source) Music - Primary Colored Suicide Bombing Love Song - Ishii Yasushi diff --git a/Other Lumps/CVARINFO.txt b/Other Lumps/CVARINFO.txt index 2395867..7da0b3f 100644 --- a/Other Lumps/CVARINFO.txt +++ b/Other Lumps/CVARINFO.txt @@ -8,8 +8,9 @@ server bool doomware_duplicates = false; // Allow duplicate games server bool doomware_bouncywalls = true; // Make the walls of the arena bounce people off? server bool doomware_easymode = false; // TODO: Show people the minigame instructions before it starts? server bool doomware_wackymods = true; // Allow wacky modifiers? -server int doomware_wackymodschance = 5; // Odds of a wacky mod? (The higher, the less chance. 0 means always) +server int doomware_wackymodschance = 4; // Odds of a wacky mod? (The higher, the less chance. 0 means always) server bool doomware_bossfight = true; // Allow the boss fight wacky mod? +server bool doomware_unsafedb = false; // Allow stat tracking for non logged in players? /*=================================================================================================== diff --git a/Other Lumps/KEYCONF.txt b/Other Lumps/KEYCONF.txt index cada09c..01261df 100644 --- a/Other Lumps/KEYCONF.txt +++ b/Other Lumps/KEYCONF.txt @@ -1,11 +1,11 @@ weaponsection DW -setslot 1 Fist Chainsaw BoxingGlove MaceWeapon SnowSpeederWeapon PushStaff +setslot 1 Fist Chainsaw BoxingGlove MaceWeapon SnowSpeederWeapon PushStaff setslot 2 pistol suicide clean Raygun NESZapper CoopPistol BowArrow setslot 3 Shotgun SuperShotgun SimpsonsShotgun CoopShotgun setslot 4 Chaingun Minigun CoopChaingun -setslot 5 RocketLauncher GrenadeLauncher -setslot 6 PlasmaRifle RailGun +setslot 5 RocketLauncher GrenadeLauncher BBallLauncher +setslot 6 PlasmaRifle RailGun setslot 7 BFG9000 BFG10k addkeysection "DoomWare" DoomWare diff --git a/doomware_testbeta1_95d.wad b/doomware_testbeta1_95e.wad similarity index 94% rename from doomware_testbeta1_95d.wad rename to doomware_testbeta1_95e.wad index a3b6e4b..b22aac7 100644 Binary files a/doomware_testbeta1_95d.wad and b/doomware_testbeta1_95e.wad differ