diff --git a/README.md b/README.md index e0c620a0a..50740af7b 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Additional features: quick and easy differentiation between multiple units (not available due to engine limitations™, so they're always green). - Lucky Collar: A little something that your creator gives to all of her - creations. Reduces incoming damage by 75% when you're below 10% health. + creations. Reduces incoming damage by 75% when you're below 25% health. - User Menu: With the press of a button, open a dedicated menu to see all your stats in detail, info on carried items and weapons, and (when it's done) accessing the store for buying stuff with your score points. @@ -350,19 +350,19 @@ have a spare. Most powerups can be toggled, unless specified otherwise. ### Health Nugget, replaces Health Bonus, Crystal Vial -Health nuggets increase health by 5% up to a cap of 2000. +Health nuggets increase health by 5% up to a cap of 200. ### Health Tetrahedron, replaces Stimpak, Crystal Vial (Heretic) -Health tetrahedrons provide a 50% health boost up to a cap of 1000. +Health tetrahedrons provide a 15% health boost up to a cap of 100. ### Health Cube, replaces Medkit, Quartz Flask -Health cubes provide a 100% health boost up to a cap of 1000. +Health cubes provide a 30% health boost up to a cap of 100. ### Refresher, replaces Soulsphere, Mystic Urn -This artifact provides a massive boost of health to 5000, plus a regeneration +This artifact provides a massive boost of health to 500, plus a regeneration effect that heals 10% every 5 seconds, for up to 60 seconds, thus it doubles as a powerup. Like other health items, the Refresher is auto-activated if you're about to die, though it sometimes won't be enough to save you. @@ -371,8 +371,8 @@ you're about to die, though it sometimes won't be enough to save you. Cumulative armor items that can increase resistance to all damage by as much as you can find. Each nugget adds 5% to the total. Above 100%, damage gets -turned into additional health (up to the standard 1000% cap). -The upper cap for these is 500%. +turned into additional health (up to the standard 100% cap). +The upper cap for these is 200%. Protection decreases by a 10% of absorbed damage. @@ -381,7 +381,7 @@ Protection decreases by a 10% of absorbed damage. The blast suit is a nice little light armor which provides a 75% reduction to damage and an additional 50% to splash damage. -Can handle a total of 5000 damage before breaking. +Can handle a total of 500 damage before breaking. ### War Armor, replaces Blue Armor, Enchanged Shield, Falcon Shield @@ -391,11 +391,11 @@ follows: * 80% reduction to everything else * 70% reduction for all splash damage (multiplicative on top of the other two) -The armor can eat up a total of 10000 damage before breaking. +The armor can eat up a total of 1000 damage before breaking. ### Grilled Cheese Sandwich, replaces Megasphere, Morph Ovum, Banishment Device -The ultimate meal. Grants a full 10000 health and magically gives you a full +The ultimate meal. Grants a full 1000 health and magically gives you a full stack of armor nuggets, a blast suit and a war armor. In addition it prevents you from dying at all if it autoactivates on low health. @@ -472,19 +472,19 @@ configurable, along with their lifespan. Level stats and current score. The scoring system is pretty straightforward. Each thing you kill (even if not -an enemy) will give you points according to 5x of its base health, rounded up -to the nearest multiple of 100 and capped to 20000, plus these bonuses (in -order of application): +an enemy) will give you points according to half of its base health, rounded up +to the nearest multiple of 10 and capped to 2000, plus these bonuses (in order +of application): * x1.25 for an overkill (enemy was gibbed or killed in one shot). * x1.5 for each combo level, up to x8 in steps of x0.5. Kills are considered combos if multiple enemies are killed within 5 seconds of each other. - * +1000 for killing an enemy without having taken damage since player start, - with extra +100 boosts for consecutive kills. - * +20000 if the enemy killed is a boss. + * +100 for killing an enemy without having taken damage since player start, + with extra +50 boosts for consecutive kills. + * +10000 if the enemy killed is a boss. * +5000 if you've killed the last enemy in the map. -You are also given +1000 points for each secret found, +5000 if it's the final -secret. Countable items give +250 points each or +2500 if it's the final item. +You are also given +500 points for each secret found, +5000 if it's the final +secret. Countable items give +25 points each or +2500 if it's the final item. Score is currently for show, but after first release it'll be used for the in-game store feature. @@ -514,7 +514,8 @@ smoke clouds, a targeter has been implemented, which will show the following: take damage or get healed, a number (either negative or positive) will show up below the health bar indicating the cumulative increase/decrease. The targeter only picks up enemies in your direct line of sight and can only show - up to 40 individual bars, giving priority to the nearest enemies. + up to 40 individual bars, giving priority first to players, then the nearest + enemies. * Keys and map exits: If you've picked up an Omnisight, key items and any exit lines will be marked and labeled, along with a little distance indicator in map units. Note that this doesn't work for script-triggered exits. diff --git a/brightmaps/DemoFace.png b/brightmaps/DemoFace.png new file mode 100644 index 000000000..a467b9420 Binary files /dev/null and b/brightmaps/DemoFace.png differ diff --git a/brightmaps/DemoTags.png b/brightmaps/DemoTags.png new file mode 100644 index 000000000..1c8ebcfaf Binary files /dev/null and b/brightmaps/DemoTags.png differ diff --git a/credits.txt b/credits.txt index edd412c51..c89afc4bf 100644 --- a/credits.txt +++ b/credits.txt @@ -1,8 +1,13 @@ Most of the work here is original, but there are some notable exceptions: - Default player voices are edited from the Fallout 4 Japanese dub. + * Special Thanks to Gargorias for Player Comments and Head Tracking, which was of great help for tracking down all these lines. + - Many sounds have been mixed and matched and filtered and whatnot from the following games: + * Fallout New Vegas + * Fallout 4 - This mod uses libeye, by KeksDose. Big thanks. - Title theme, "Traumatic State", by Teque (which a lot of people just know as "the AS-Golgotha music"). - Intermission theme, "Dragony", also by Teque (very comfy music considering the rest of his repertoire). + - Trailer theme, "Gateways Part II", also by Teque, and Cube (pretty cool track tbh). - The anti-BD feature uses art by IOSYS, edited into the Doom palette. - The crash handler uses a sound bit from Umineko and a short clip of the Curb Your Enthusiasm theme. - Tewi font by lucy (https://github.com/lucy/tewi-font). Modified to add gradients and drop shadow. diff --git a/cvarinfo.txt b/cvarinfo.txt new file mode 100644 index 000000000..87c145db1 --- /dev/null +++ b/cvarinfo.txt @@ -0,0 +1,14 @@ +// player +user string swwm_voicetype = "default"; // voice for your demolitionist +//user color swwm_tagcolor = "40 FF 00"; // color of your model tags, not available due to engine dickery +user float swwm_flashstrength = 1.0; // strength of screen flashes +user int swwm_hudmargin = 20; // margin around fullscreen hud elements +user int swwm_maxshown = 4; // max messages to show normally +user int swwm_maxshownbig = 10; // max messages to show when chatting +user int swwm_maxpickup = 5; // total pickup messages visible +user int swwm_mutevoice = 0; // mute demolitionist voice + // 0 - none + // 1 - combat comments + // 2 - item/secret comments + // 3 - map start comment + // 4 - pain/death and grunts \ No newline at end of file diff --git a/decaldef.txt b/decaldef.txt new file mode 100644 index 000000000..550c289b0 --- /dev/null +++ b/decaldef.txt @@ -0,0 +1,9 @@ +decal HugeScorch +{ + pic SCORCH1 + shade "00 00 00" + x-scale 1.25 + y-scale 1.25 + randomflipx + randomflipy +} diff --git a/fonts/Tewi/2000.png b/fonts/Tewi/2000.png index 27611387a..5562f37b8 100644 Binary files a/fonts/Tewi/2000.png and b/fonts/Tewi/2000.png differ diff --git a/fonts/TewiShaded/2000.png b/fonts/TewiShaded/2000.png index 614232a8e..bd60ab4a3 100644 Binary files a/fonts/TewiShaded/2000.png and b/fonts/TewiShaded/2000.png differ diff --git a/fonts/TewiShadedInverse/2000.png b/fonts/TewiShadedInverse/2000.png index 6f4091eff..83040ba40 100644 Binary files a/fonts/TewiShadedInverse/2000.png and b/fonts/TewiShadedInverse/2000.png differ diff --git a/gldefs.demolitionist b/gldefs.demolitionist index e45b4ee2a..0b0091061 100644 --- a/gldefs.demolitionist +++ b/gldefs.demolitionist @@ -1,56 +1,56 @@ Brightmap Texture "models/DemoFace_Blank.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Blink.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Booty.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Dead.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Default.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Dizzy.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Evil.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Grin.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Hurt.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_HurtLeft.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_HurtRight.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Ouch.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoFace_Wink.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoFace.png" } Brightmap Texture "models/DemoTags.png" { - Map "brightmaps/fullbright.png" + Map "brightmaps/DemoTags.png" } diff --git a/graphics/HUD/DashBar.png b/graphics/HUD/DashBar.png new file mode 100644 index 000000000..d4cd3044b Binary files /dev/null and b/graphics/HUD/DashBar.png differ diff --git a/graphics/HUD/DashIcon.png b/graphics/HUD/DashIcon.png deleted file mode 100644 index ea5743c5e..000000000 Binary files a/graphics/HUD/DashIcon.png and /dev/null differ diff --git a/graphics/HUD/ExplodiumDisplay.png b/graphics/HUD/ExplodiumDisplay.png new file mode 100644 index 000000000..e53177419 Binary files /dev/null and b/graphics/HUD/ExplodiumDisplay.png differ diff --git a/graphics/HUD/FuelBar.png b/graphics/HUD/FuelBar.png index 28e9c4a69..262f9eb22 100644 Binary files a/graphics/HUD/FuelBar.png and b/graphics/HUD/FuelBar.png differ diff --git a/graphics/HUD/InventoryBox.png b/graphics/HUD/InventoryBox.png index 35da084bc..d44a2e60b 100644 Binary files a/graphics/HUD/InventoryBox.png and b/graphics/HUD/InventoryBox.png differ diff --git a/graphics/HUD/ScoreBox.png b/graphics/HUD/ScoreBox.png index d7ce3bea2..63e88512a 100644 Binary files a/graphics/HUD/ScoreBox.png and b/graphics/HUD/ScoreBox.png differ diff --git a/graphics/HUD/StatusBox.png b/graphics/HUD/StatusBox.png index f3002784a..1692dd450 100644 Binary files a/graphics/HUD/StatusBox.png and b/graphics/HUD/StatusBox.png differ diff --git a/graphics/HUD/WeaponBox.png b/graphics/HUD/WeaponBox.png index a25549311..d41af5bd4 100644 Binary files a/graphics/HUD/WeaponBox.png and b/graphics/HUD/WeaponBox.png differ diff --git a/graphics/SBReticle.png b/graphics/SBReticle.png new file mode 100644 index 000000000..b3796bcdb Binary files /dev/null and b/graphics/SBReticle.png differ diff --git a/keyconf.txt b/keyconf.txt index 18d0a9f83..4a27dbcd8 100644 --- a/keyconf.txt +++ b/keyconf.txt @@ -1,7 +1,15 @@ -addkeysection "$SWWM_KEYS" SWWM_GZ -addmenukey "$SWWM_GESTURE1" gesture1 -addmenukey "$SWWM_GESTURE2" gesture2 -addmenukey "$SWWM_GESTURE3" gesture3 -alias gesture1 "netevent swwmgesture 0" -alias gesture2 "netevent swwmgesture 1" -alias gesture3 "netevent swwmgesture 2" \ No newline at end of file +addkeysection "$SWWM_KEYS" "SWWM_GZ" +addmenukey "$SWWM_PRIMARYFIRE" "+attack" +addmenukey "$SWWM_SECONDARYFIRE" "+altattack" +addmenukey "$SWWM_TERTIARYFIRE" "+reload" +addmenukey "$SWWM_QUATERNARYFIRE" "+zoom" +addmenukey "$SWWM_MELEE" "+user1" +addmenukey "$SWWM_DASH" "+user2" +addmenukey "$SWWM_GESTURE1" "netevent swwmgesture 0" +addmenukey "$SWWM_GESTURE2" "netevent swwmgesture 1" +addmenukey "$SWWM_GESTURE3" "netevent swwmgesture 2" +addmenukey "$SWWM_KBASE" "openmenu SWWMKnowledgeBaseMenu" +defaultbind "j" "netevent swwmgesture 0" +defaultbind "k" "netevent swwmgesture 1" +defaultbind "l" "netevent swwmgesture 2" +defaultbind "q" "openmenu SWWMKnowledgeBaseMenu" diff --git a/knowledgebase/item/Collar.txt b/knowledgebase/item/Collar.txt index b65655f9f..8b2c70d6b 100644 --- a/knowledgebase/item/Collar.txt +++ b/knowledgebase/item/Collar.txt @@ -4,7 +4,7 @@ Manufacturer: Saya Miyamoto Summary: Looks cool, projects a contained protective field around the user that reduces damage received when in danger. Protection: - - 75% reduction to all damage when below 10% health. + - 75% reduction to all damage when below 25% health. Addendum: The collar cannot break no matter how much damage you receive. diff --git a/language.txt b/language.txt index 3ea280db2..92ed7619f 100644 --- a/language.txt +++ b/language.txt @@ -2,12 +2,20 @@ /* MENU STUFF */ // keybinds SWWM_KEYS = "SWWM GZ Bindings"; +SWWM_PRIMARYFIRE = "Primary Fire"; +SWWM_SECONDARYFIRE = "Secondary Fire"; +SWWM_TERTIARYFIRE = "Tertiary Fire / Reload"; +SWWM_QUATERNARYFIRE = "Quaternary Fire / Zoom"; +SWWM_MELEE = "Melee Attack"; +SWWM_DASH = "Dash"; SWWM_GESTURE1 = "Point Down"; SWWM_GESTURE2 = "Thumbs Up"; SWWM_GESTURE3 = "Victory"; +SWWM_KBASE = "Knowledge Base"; // mod menu // knowledge base - +SWWM_TOOSMALL = "Your resolution is too small to fit this menu.\n640x400 or higher is required."; +SWWM_COMINGSOON = "(coming soon)"; /* GAME STUFF */ // tags T_PUSHER = "\"Pusher\" Microfusion Rotary Hammer"; @@ -21,135 +29,214 @@ T_SPARKSTER = "Model S-5 Biospark Carbine"; T_SILVERBULLET = "Silver Bullet JET"; T_CANDYGUN = "\"Taste the Sweetness\" Candy Gun"; T_YNYKRON = "Ynykron Artifact"; -T_REDSHELL = "Shells"; -T_GREENSHELL = "Slugs"; -T_WHITESHELL = "Dragon's Breath rounds"; -T_BLUESHELL = "Kinylum Saltshot rounds"; -T_BLACKSHELL = "Napalm rounds"; -T_PURPLESHELL = "Lead ball rounds"; -T_GOLDSHELL = "Golden shells"; -T_EVISHELLS = "Eviscerator shells"; +T_REDSHELL = "Shell"; +T_REDSHELLS = "Shells"; +T_GREENSHELL = "Slug"; +T_GREENSHELLS = "Slugs"; +T_WHITESHELL = "Dragon's Breath Round"; +T_WHITESHELLS = "Dragon's Breath Rounds"; +T_BLUESHELL = "Kinylum Saltshot Round"; +T_BLUESHELLS = "Kinylum Saltshot Rounds"; +T_BLACKSHELL = "Napalm Round"; +T_BLACKSHELLS = "Napalm Rounds"; +T_PURPLESHELL = "Lead Ball Round"; +T_PURPLESHELLS = "Lead Ball Rounds"; +T_GOLDSHELL = "Golden Shell"; +T_GOLDSHELLS = "Golden Shells"; +T_EVISHELL = "Eviscerator Shell"; +T_EVISHELLS = "Eviscerator Shells"; T_HELLMISSILES = "Hellblazer Missiles"; T_HELLCLUSTERS = "Hellblazer Crackshots"; T_HELLBURNINATORS = "Hellblazer Ravagers"; T_HELLNUKES = "Hellblazer Warheads"; -T_SPARKUNIT = "Sparkster charges"; -T_XSBBULLET = "1.150 XSB bullets"; -T_CANDYMAG = "Candy bullets"; -T_YNYKRONAMMO = "Exotic crystals"; +T_SPARKUNIT = "Sparkster Charge"; +T_XSBBULLET = "1.150 XSB Bullet"; +T_XSBMAG = "1.150 XSB Magazine"; +T_CANDYMAG = "Candygun Magazine"; +T_YNYKRONAMMO = "Exotic Crystal"; +T_BLASTSUIT = "Blast Suit"; +T_EMBIGGENER = "Hammerspace Embiggener"; +T_FABRICATOR = "Ammo Fabricator"; +T_FAB1 = "(Common Tier)"; +T_FAB2 = "(Rare Tier)"; +T_FAB3 = "(Very Rare Tier)"; +T_FAB4 = "(Gold Tier)"; +T_GHOSTARTI = "Ghost Artifact"; +T_GRAVITYS = "Gravity Suppressor"; +T_TETRAHEALTH = "Health Tetrahedron"; +T_CUBEHEALTH = "Health Cube"; +T_INVINCIBALL = "Fuckin' Invinciball"; +T_LAMP = "Lämp"; +T_NUGGETH = "Health Nugget"; +T_NUGGETA = "Armor Nugget"; +T_OMNISIGHT = "Omnisight"; +T_RAGEKIT = "Ragekit"; +T_REFRESHER = "Refresher"; +T_SANDWICH = "Grilled Cheese Sandwich"; +T_WARARMOR = "War Armor"; // obituaries +O_PUSHER = "%k opened some air holes into %o."; +O_DEEPIMPACT = "%o was impacted deeply by %k."; +O_EXPLODIUM = "%k inflicted severe knee explosions onto %o."; +O_SPREADGUN_RED = "%k gave %o a mouthful of shot."; +O_SPREADGUN_GREEN = "%o got slugged by %k."; +O_SPREADGUN_WHITE = "%k burninated %o."; +O_SPREADGUN_BLUE = "%k made %o very salty."; +O_SPREADGUN_BLACK = "%k set %o on fire along with everything around %h."; +O_SPREADGUN_PURPLE = "%o was conked by %k's lead ball."; +O_SPREADGUN_GOLD = "%o ate up %k's golden blast."; +O_WALLBUSTER = "%k gave %o a mighty busting."; +O_EVISCERATOR = "%o was eviscerated by %o."; +O_HELLRAZER = "%k blasted %o into burning bits."; +O_SPARKSTER = "%o got sparked hard by %k."; +O_SILVERBULLET = "%o could not ignore the girth of %k's bullets."; +O_CANDYGUN = "%k made %o taste the sweetness (and death)."; +O_YNYKRON = "%o was instantly removed by %k."; +O_YNYKRONALT = "%o was spaghettified by %k."; +O_POUND = "%o was very impressed by %k's landing."; +O_DASH = "%o was discombobulated by a very fast moving %k."; +O_MELEE = "%o was K.O.'d by %k."; +O_LAMP = "%o was assaulted by %k's moths."; // misc +D_BLASTSUIT = "The Blast Suit broke down."; +D_GHOSTARTI = "The Ghost Artifact ran out of energy."; +D_GRAVITYS = "The Gravity Suppressor is out of power."; +D_LAMP = "The Lamp ran out of oil."; +D_RAGEKIT = "The Ragekit has ragequit."; +D_REFRESHER = "The Refresher boost has ended."; +D_WARARMOR = "The War Armor is no more."; +// messages +SWWM_FINDSECRET = "%s found a secret. +%d"; /* SUBTITLES */ // new weapon received -SWWM_SUBS_GETWEAPON1 = "Not bad... Not bad at all..."; -SWWM_SUBS_GETWEAPON2 = "Good find..."; -SWWM_SUBS_GETWEAPON3 = "Mine now..."; -SWWM_SUBS_GETWEAPON4 = "Nice..."; -SWWM_SUBS_GETWEAPON5 = "Bingo..."; -SWWM_SUBS_GETWEAPON6 = "Hell yeah..."; -SWWM_SUBS_GETWEAPON7 = "Excellent..."; -SWWM_SUBS_GETWEAPON8 = "Yes..."; -SWWM_SUBS_GETWEAPON9 = "There we go..."; -SWWM_SUBS_GETWEAPON10 = "Perfect..."; -SWWM_SUBS_GETWEAPON11 = "I like it..."; -SWWM_SUBS_GETWEAPON12 = "That looks nice..."; -SWWM_SUBS_GETWEAPON13 = "It's probably worth a fortune..."; +SWWM_SUBS_DEFAULT_GETWEAPON1 = "Not bad... Not bad at all..."; +SWWM_SUBS_DEFAULT_GETWEAPON2 = "Good find..."; +SWWM_SUBS_DEFAULT_GETWEAPON3 = "Mine now..."; +SWWM_SUBS_DEFAULT_GETWEAPON4 = "Nice..."; +SWWM_SUBS_DEFAULT_GETWEAPON5 = "Bingo..."; +SWWM_SUBS_DEFAULT_GETWEAPON6 = "Hell yeah..."; +SWWM_SUBS_DEFAULT_GETWEAPON7 = "Excellent..."; +SWWM_SUBS_DEFAULT_GETWEAPON8 = "Yes..."; +SWWM_SUBS_DEFAULT_GETWEAPON9 = "There we go..."; +SWWM_SUBS_DEFAULT_GETWEAPON10 = "Perfect..."; +SWWM_SUBS_DEFAULT_GETWEAPON11 = "I like it..."; +SWWM_SUBS_DEFAULT_GETWEAPON12 = "That looks nice..."; +SWWM_SUBS_DEFAULT_GETWEAPON13 = "It's probably worth a fortune..."; // locked door -SWWM_SUBS_LOCKED1 = "Don't have the key."; -SWWM_SUBS_LOCKED2 = "Only opens with a key."; -SWWM_SUBS_LOCKED3 = "Would need the key."; -SWWM_SUBS_LOCKED4 = "Locked tight."; +SWWM_SUBS_DEFAULT_LOCKED1 = "Don't have the key."; +SWWM_SUBS_DEFAULT_LOCKED2 = "Only opens with a key."; +SWWM_SUBS_DEFAULT_LOCKED3 = "Would need the key."; +SWWM_SUBS_DEFAULT_LOCKED4 = "Locked tight."; // gacha failure in store -SWWM_SUBS_PUZZFAIL1 = "Damn."; -SWWM_SUBS_PUZZFAIL2 = "Damn it."; -SWWM_SUBS_PUZZFAIL3 = "No good."; -SWWM_SUBS_PUZZFAIL4 = "Nope."; -SWWM_SUBS_PUZZFAIL5 = "Uh uh."; -SWWM_SUBS_PUZZFAIL6 = "Hmmm."; +SWWM_SUBS_DEFAULT_PUZZFAIL1 = "Damn."; +SWWM_SUBS_DEFAULT_PUZZFAIL2 = "Damn it."; +SWWM_SUBS_DEFAULT_PUZZFAIL3 = "No good."; +SWWM_SUBS_DEFAULT_PUZZFAIL4 = "Nope."; +SWWM_SUBS_DEFAULT_PUZZFAIL5 = "Uh uh."; +SWWM_SUBS_DEFAULT_PUZZFAIL6 = "Hmmm."; // gacha success in store -SWWM_SUBS_PUZZSUCC1 = "Nice."; -SWWM_SUBS_PUZZSUCC2 = "That's it."; -SWWM_SUBS_PUZZSUCC3 = "Got it."; -SWWM_SUBS_PUZZSUCC4 = "Yes."; -SWWM_SUBS_PUZZSUCC5 = "Sweet."; +SWWM_SUBS_DEFAULT_PUZZSUCC1 = "Nice."; +SWWM_SUBS_DEFAULT_PUZZSUCC2 = "That's it."; +SWWM_SUBS_DEFAULT_PUZZSUCC3 = "Got it."; +SWWM_SUBS_DEFAULT_PUZZSUCC4 = "Yes."; +SWWM_SUBS_DEFAULT_PUZZSUCC5 = "Sweet."; // first enemy encounter (20 seconds cooldown since all enemies dead) -SWWM_SUBS_FIGHTSTART1 = "Here we go again."; -SWWM_SUBS_FIGHTSTART2 = "Let's get this show on the road."; -SWWM_SUBS_FIGHTSTART3 = "Time to die."; -SWWM_SUBS_FIGHTSTART4 = "Bring it on."; -SWWM_SUBS_FIGHTSTART5 = "You are all going to die."; -SWWM_SUBS_FIGHTSTART6 = "I've been spoiling for a fight."; -SWWM_SUBS_FIGHTSTART7 = "Let's do this."; -SWWM_SUBS_FIGHTSTART8 = "Time to get crazy! Kill 'em all!"; -SWWM_SUBS_FIGHTSTART9 = "You really don't want to start a fight with me."; -SWWM_SUBS_FIGHTSTART10 = "Let's get on with it."; -SWWM_SUBS_FIGHTSTART11 = "Kill!"; -SWWM_SUBS_FIGHTSTART12 = "This won't be hard."; -SWWM_SUBS_FIGHTSTART13 = "Let's do it."; -SWWM_SUBS_FIGHTSTART14 = "Let's do this."; -SWWM_SUBS_FIGHTSTART15 = "Let's just get this over with."; -SWWM_SUBS_FIGHTSTART16 = "Well, this will be an interesting challenge."; -SWWM_SUBS_FIGHTSTART17 = "Okay. Let's get started."; -SWWM_SUBS_FIGHTSTART18 = "Oh, this is just what I need right now..."; -SWWM_SUBS_FIGHTSTART19 = "Time to put on a show."; -SWWM_SUBS_FIGHTSTART20 = "I'm putting you down."; -SWWM_SUBS_FIGHTSTART21 = "Oh, good. Here I was afraid I'd have nothing to do."; +SWWM_SUBS_DEFAULT_FIGHTSTART1 = "Here we go again."; +SWWM_SUBS_DEFAULT_FIGHTSTART2 = "Let's get this show on the road."; +SWWM_SUBS_DEFAULT_FIGHTSTART3 = "Time to die."; +SWWM_SUBS_DEFAULT_FIGHTSTART4 = "Bring it on."; +SWWM_SUBS_DEFAULT_FIGHTSTART5 = "You are all going to die."; +SWWM_SUBS_DEFAULT_FIGHTSTART6 = "I've been spoiling for a fight."; +SWWM_SUBS_DEFAULT_FIGHTSTART7 = "Let's do this."; +SWWM_SUBS_DEFAULT_FIGHTSTART8 = "Time to get crazy! Kill 'em all!"; +SWWM_SUBS_DEFAULT_FIGHTSTART9 = "You really don't want to start a fight with me."; +SWWM_SUBS_DEFAULT_FIGHTSTART10 = "Let's get on with it."; +SWWM_SUBS_DEFAULT_FIGHTSTART11 = "Kill!"; +SWWM_SUBS_DEFAULT_FIGHTSTART12 = "This won't be hard."; +SWWM_SUBS_DEFAULT_FIGHTSTART13 = "Let's do it."; +SWWM_SUBS_DEFAULT_FIGHTSTART14 = "Let's do this."; +SWWM_SUBS_DEFAULT_FIGHTSTART15 = "Let's just get this over with."; +SWWM_SUBS_DEFAULT_FIGHTSTART16 = "Well, this will be an interesting challenge."; +SWWM_SUBS_DEFAULT_FIGHTSTART17 = "Okay. Let's get started."; +SWWM_SUBS_DEFAULT_FIGHTSTART18 = "Oh, this is just what I need right now..."; +SWWM_SUBS_DEFAULT_FIGHTSTART19 = "Time to put on a show."; +SWWM_SUBS_DEFAULT_FIGHTSTART20 = "I'm putting you down."; +SWWM_SUBS_DEFAULT_FIGHTSTART21 = "Oh, good. Here I was afraid I'd have nothing to do."; // played at map start -SWWM_SUBS_MAPSTART1 = "Ugh... this place smells horrible."; -SWWM_SUBS_MAPSTART2 = "Okay, let's get to work."; -SWWM_SUBS_MAPSTART3 = "Let's hurry this up."; -SWWM_SUBS_MAPSTART4 = "This place is all kinds of strange."; -SWWM_SUBS_MAPSTART5 = "I was born ready."; -SWWM_SUBS_MAPSTART6 = "It's a hard world. I do what I have to."; -SWWM_SUBS_MAPSTART7 = "No robot is superior to me."; -SWWM_SUBS_MAPSTART8 = "I've seen better."; -SWWM_SUBS_MAPSTART9 = "Okay. Let's head in."; -SWWM_SUBS_MAPSTART10 = "I don't want any trouble. I'm just passing through."; -SWWM_SUBS_MAPSTART11 = "Sorry to keep you waiting."; -SWWM_SUBS_MAPSTART12 = "I'll do my best."; -SWWM_SUBS_MAPSTART13 = "Just so we're clear: Anything good I find is mine."; -SWWM_SUBS_MAPSTART14 = "I bet the food here is terrible."; +SWWM_SUBS_DEFAULT_MAPSTART1 = "Ugh... this place smells horrible."; +SWWM_SUBS_DEFAULT_MAPSTART2 = "Okay, let's get to work."; +SWWM_SUBS_DEFAULT_MAPSTART3 = "Let's hurry this up."; +SWWM_SUBS_DEFAULT_MAPSTART4 = "This place is all kinds of strange."; +SWWM_SUBS_DEFAULT_MAPSTART5 = "I was born ready."; +SWWM_SUBS_DEFAULT_MAPSTART6 = "It's a hard world. I do what I have to."; +SWWM_SUBS_DEFAULT_MAPSTART7 = "No robot is superior to me."; +SWWM_SUBS_DEFAULT_MAPSTART8 = "I've seen better."; +SWWM_SUBS_DEFAULT_MAPSTART9 = "Okay. Let's head in."; +SWWM_SUBS_DEFAULT_MAPSTART10 = "I don't want any trouble. I'm just passing through."; +SWWM_SUBS_DEFAULT_MAPSTART11 = "Sorry to keep you waiting."; +SWWM_SUBS_DEFAULT_MAPSTART12 = "I'll do my best."; +SWWM_SUBS_DEFAULT_MAPSTART13 = "Just so we're clear: Anything good I find is mine."; +SWWM_SUBS_DEFAULT_MAPSTART14 = "I bet the food here is terrible."; // every time a secret is found -SWWM_SUBS_FINDSECRET1 = "Yeah, yeah, I'm the best."; -SWWM_SUBS_FINDSECRET2 = "It's true. I do know my shit."; -SWWM_SUBS_FINDSECRET3 = "What can I say? I'm good at what I do."; -SWWM_SUBS_FINDSECRET4 = "It was no big deal."; -SWWM_SUBS_FINDSECRET5 = "No trouble at all."; -SWWM_SUBS_FINDSECRET6 = "It was easy."; -SWWM_SUBS_FINDSECRET7 = "Thanks to me, yes."; -SWWM_SUBS_FINDSECRET8 = "It was a walk in the park."; -SWWM_SUBS_FINDSECRET9 = "It was a piece of cake."; -SWWM_SUBS_FINDSECRET10 = "I still got it."; -SWWM_SUBS_FINDSECRET11 = "I did good work, didn't I?"; -SWWM_SUBS_FINDSECRET12 = "Wow, that's pretty lucky!"; +SWWM_SUBS_DEFAULT_FINDSECRET1 = "Yeah, yeah, I'm the best."; +SWWM_SUBS_DEFAULT_FINDSECRET2 = "It's true. I do know my shit."; +SWWM_SUBS_DEFAULT_FINDSECRET3 = "What can I say? I'm good at what I do."; +SWWM_SUBS_DEFAULT_FINDSECRET4 = "It was no big deal."; +SWWM_SUBS_DEFAULT_FINDSECRET5 = "No trouble at all."; +SWWM_SUBS_DEFAULT_FINDSECRET6 = "It was easy."; +SWWM_SUBS_DEFAULT_FINDSECRET7 = "Thanks to me, yes."; +SWWM_SUBS_DEFAULT_FINDSECRET8 = "It was a walk in the park."; +SWWM_SUBS_DEFAULT_FINDSECRET9 = "It was a piece of cake."; +SWWM_SUBS_DEFAULT_FINDSECRET10 = "I still got it."; +SWWM_SUBS_DEFAULT_FINDSECRET11 = "I did good work, didn't I?"; +SWWM_SUBS_DEFAULT_FINDSECRET12 = "Wow, that's pretty lucky!"; // frag taunts -SWWM_SUBS_SCOREKILL1 = "Good riddance."; -SWWM_SUBS_SCOREKILL2 = "One down."; -SWWM_SUBS_SCOREKILL3 = "Goodbye."; -SWWM_SUBS_SCOREKILL4 = "Heh! You can't stop me."; -SWWM_SUBS_SCOREKILL5 = "What a loser."; -SWWM_SUBS_SCOREKILL6 = "We're done."; -SWWM_SUBS_SCOREKILL7 = "Bye."; -SWWM_SUBS_SCOREKILL8 = "Dead as can be."; -SWWM_SUBS_SCOREKILL9 = "Another job done."; -SWWM_SUBS_SCOREKILL10 = "The pleasure was all mine."; -SWWM_SUBS_SCOREKILL11 = "How about something a little more challenging next time?"; -SWWM_SUBS_SCOREKILL12 = "I'm glad that's over with."; -SWWM_SUBS_SCOREKILL13 = "Well, it's over. That's that."; -SWWM_SUBS_SCOREKILL14 = "Ugh. Just... go away."; -SWWM_SUBS_SCOREKILL15 = "Get lost."; -SWWM_SUBS_SCOREKILL16 = "Is that all?"; -SWWM_SUBS_SCOREKILL17 = "Is that the best you can do?"; -SWWM_SUBS_SCOREKILL18 = "You annoy me."; -SWWM_SUBS_SCOREKILL19 = "Going to have to try harder than that."; -SWWM_SUBS_SCOREKILL20 = "What? That it?"; -SWWM_SUBS_SCOREKILL21 = "Get outta here."; -SWWM_SUBS_SCOREKILL22 = "My pleasure."; -SWWM_SUBS_SCOREKILL23 = "Out of my way."; -SWWM_SUBS_SCOREKILL24 = "Get outta my way."; -SWWM_SUBS_SCOREKILL25 = "Want some more?"; -SWWM_SUBS_SCOREKILL26 = "Done and done."; -SWWM_SUBS_SCOREKILL27 = "It's done."; +SWWM_SUBS_DEFAULT_SCOREKILL1 = "Good riddance."; +SWWM_SUBS_DEFAULT_SCOREKILL2 = "One down."; +SWWM_SUBS_DEFAULT_SCOREKILL3 = "Goodbye."; +SWWM_SUBS_DEFAULT_SCOREKILL4 = "Heh! You can't stop me."; +SWWM_SUBS_DEFAULT_SCOREKILL5 = "What a loser."; +SWWM_SUBS_DEFAULT_SCOREKILL6 = "We're done."; +SWWM_SUBS_DEFAULT_SCOREKILL7 = "Bye."; +SWWM_SUBS_DEFAULT_SCOREKILL8 = "Dead as can be."; +SWWM_SUBS_DEFAULT_SCOREKILL9 = "Another job done."; +SWWM_SUBS_DEFAULT_SCOREKILL10 = "The pleasure was all mine."; +SWWM_SUBS_DEFAULT_SCOREKILL11 = "How about something a little more challenging next time?"; +SWWM_SUBS_DEFAULT_SCOREKILL12 = "I'm glad that's over with."; +SWWM_SUBS_DEFAULT_SCOREKILL13 = "Well, it's over. That's that."; +SWWM_SUBS_DEFAULT_SCOREKILL14 = "Ugh. Just... go away."; +SWWM_SUBS_DEFAULT_SCOREKILL15 = "Get lost."; +SWWM_SUBS_DEFAULT_SCOREKILL16 = "Is that all?"; +SWWM_SUBS_DEFAULT_SCOREKILL17 = "Is that the best you can do?"; +SWWM_SUBS_DEFAULT_SCOREKILL18 = "You annoy me."; +SWWM_SUBS_DEFAULT_SCOREKILL19 = "Going to have to try harder than that."; +SWWM_SUBS_DEFAULT_SCOREKILL20 = "What? That it?"; +SWWM_SUBS_DEFAULT_SCOREKILL21 = "Get outta here."; +SWWM_SUBS_DEFAULT_SCOREKILL22 = "My pleasure."; +SWWM_SUBS_DEFAULT_SCOREKILL23 = "Out of my way."; +SWWM_SUBS_DEFAULT_SCOREKILL24 = "Get outta my way."; +SWWM_SUBS_DEFAULT_SCOREKILL25 = "Want some more?"; +SWWM_SUBS_DEFAULT_SCOREKILL26 = "Done and done."; +SWWM_SUBS_DEFAULT_SCOREKILL27 = "It's done."; +// getting hurt by monsters +SWWM_SUBS_DEFAULT_GETHIT1 = "Whatever..."; +SWWM_SUBS_DEFAULT_GETHIT2 = "*sigh*"; +SWWM_SUBS_DEFAULT_GETHIT3 = "Hm hmm."; +SWWM_SUBS_DEFAULT_GETHIT4 = "Bitch."; +SWWM_SUBS_DEFAULT_GETHIT5 = "Asshole..."; +SWWM_SUBS_DEFAULT_GETHIT6 = "You annoy me."; +SWWM_SUBS_DEFAULT_GETHIT7 = "Up yours."; +SWWM_SUBS_DEFAULT_GETHIT8 = "You got my attention."; +SWWM_SUBS_DEFAULT_GETHIT9 = "I'm ending this right now."; +SWWM_SUBS_DEFAULT_GETHIT10 = "You're a pain in the ass."; +SWWM_SUBS_DEFAULT_GETHIT11 = "That's bullshit."; +SWWM_SUBS_DEFAULT_GETHIT12 = "Are you serious?"; +SWWM_SUBS_DEFAULT_GETHIT13 = "Going to have to try harder than that."; +SWWM_SUBS_DEFAULT_GETHIT14 = "Get outta here."; +SWWM_SUBS_DEFAULT_GETHIT15 = "And now it's your turn."; +SWWM_SUBS_DEFAULT_GETHIT16 = "Time to shut you up for good."; +SWWM_SUBS_DEFAULT_GETHIT17 = "You're not leaving here in one piece."; +SWWM_SUBS_DEFAULT_GETHIT18 = "You're obviously upset..."; [es] diff --git a/modeldef.demolitionist b/modeldef.demolitionist index dad134680..3b7018742 100644 --- a/modeldef.demolitionist +++ b/modeldef.demolitionist @@ -20,7 +20,7 @@ Model "Demolitionist" FrameIndex XZW1 B 0 2 FrameIndex XZW1 C 0 3 FrameIndex XZW1 D 0 4 - FrameIndex XZW1 E 0 5 + FrameIndex XZW1 E 0 5 // rstep FrameIndex XZW1 F 0 6 FrameIndex XZW1 G 0 7 FrameIndex XZW1 H 0 8 @@ -28,7 +28,7 @@ Model "Demolitionist" FrameIndex XZW1 J 0 10 FrameIndex XZW1 K 0 11 FrameIndex XZW1 L 0 12 - FrameIndex XZW1 M 0 13 + FrameIndex XZW1 M 0 13 // lstep FrameIndex XZW1 N 0 14 FrameIndex XZW1 O 0 15 FrameIndex XZW1 P 0 16 @@ -38,14 +38,14 @@ Model "Demolitionist" FrameIndex XZW1 S 0 20 // RunLoop FrameIndex XZW1 T 0 21 - FrameIndex XZW1 U 0 22 + FrameIndex XZW1 U 0 22 // rstep FrameIndex XZW1 V 0 23 FrameIndex XZW1 W 0 24 FrameIndex XZW1 X 0 25 FrameIndex XZW1 Y 0 26 FrameIndex XZW1 Z 0 27 FrameIndex XZW2 A 0 28 - FrameIndex XZW2 B 0 29 + FrameIndex XZW2 B 0 29 // lstep FrameIndex XZW2 C 0 30 FrameIndex XZW2 D 0 31 FrameIndex XZW2 E 0 32 @@ -226,11 +226,11 @@ Model "Demolitionist" FrameIndex XZW7 M 0 182 FrameIndex XZW7 N 0 183 FrameIndex XZW7 O 0 184 - FrameIndex XZW7 P 0 185 + FrameIndex XZW7 P 0 185 // slither1 FrameIndex XZW7 Q 0 186 FrameIndex XZW7 R 0 187 FrameIndex XZW7 S 0 188 - FrameIndex XZW7 T 0 189 + FrameIndex XZW7 T 0 189 // slither2 FrameIndex XZW7 U 0 190 FrameIndex XZW7 V 0 191 // Crouched Attack diff --git a/modeldef.explodiumgun b/modeldef.explodiumgun index fe1b672a4..e12b21a57 100644 --- a/modeldef.explodiumgun +++ b/modeldef.explodiumgun @@ -1,6 +1,60 @@ +Model "ExplodiumCasing" +{ + Path "models" + + Model 0 "ExplodiumCasing_d.3d" + Skin 0 "ExplodiumCasing.png" + Scale 0.03 0.03 0.03 + USEACTORPITCH + USEACTORROLL + ZOffset 1 + + FrameIndex XZW1 A 0 0 +} + +Model "ExplodiumMag" +{ + Path "models" + + Model 0 "ExplodiumMag_d.3d" + Scale 0.03 0.03 0.03 + USEACTORPITCH + USEACTORROLL + + Skin 0 "ExplodiumGun.png" + FrameIndex XZW1 A 0 0 +} + +Model "ExplodiumMagEmpty" +{ + Path "models" + + Model 0 "ExplodiumMag_d.3d" + Scale 0.03 0.03 0.03 + USEACTORPITCH + USEACTORROLL + + Skin 0 "ExplodiumGun_EmptyMag.png" + FrameIndex XZW1 A 0 0 +} + +Model "ExplodiumMagProj" +{ + Path "models" + + Model 0 "ExplodiumMag_d.3d" + Skin 0 "ExplodiumGun.png" + Scale 0.03 0.03 0.03 + USEACTORPITCH + USEACTORROLL + + FrameIndex XZW1 A 0 1 +} + Model "ExplodiumGun" { Path "models" + Model 0 "ExplodiumGunPickup_d.3d" Skin 0 "ExplodiumGun.png" Scale 0.03 0.03 0.03 @@ -10,26 +64,58 @@ Model "ExplodiumGun" FrameIndex XZW1 A 0 0 } +Model "ExplodiumGun" +{ + Path "models/extra" + + Model 2 "Flat_d.3d" + Scale 0.1 0.1 0.1 + Offset 16 -60 -12 + PitchOffset 90 + + Skin 2 "ExploMuz0.png" + FrameIndex XZWZ A 2 0 + Skin 2 "ExploMuz1.png" + FrameIndex XZWZ B 2 0 + Skin 2 "ExploMuz2.png" + FrameIndex XZWZ C 2 0 + Skin 2 "ExploMuz3.png" + FrameIndex XZWZ D 2 0 + Skin 2 "ExploMuz4.png" + FrameIndex XZWZ E 2 0 + Skin 2 "ExploMuz5.png" + FrameIndex XZWZ F 2 0 + Skin 2 "ExploMuz6.png" + FrameIndex XZWZ G 2 0 + Skin 2 "ExploMuz7.png" + FrameIndex XZWZ H 2 0 + Skin 2 "ExploMuz8.png" + FrameIndex XZWZ I 2 0 + Skin 2 "ExploMuz9.png" + FrameIndex XZWZ J 2 0 +} + Model "ExplodiumGun" { Path "models" - Model 1 "ExplodiumGun1st_d.3d" // main - // TODO separate the parts so some of them can be hidden when not - // needed + Model 1 "ExplodiumGun1st_d.3d" SurfaceSkin 1 0 "DemoTags.png" SurfaceSkin 1 1 "DemoArms.png" SurfaceSkin 1 2 "DemoSoft.png" SurfaceSkin 1 3 "ExplodiumGun.png" - SurfaceSkin 1 4 "ExplodiumCasing.png" SurfaceSkin 1 5 "ExplodiumGun.png" - SurfaceSkin 1 6 "ExplodiumGun.png" - Scale -0.01 0.005 0.01 - Offset 0 0 -4 + Scale -0.005 0.0025 0.005 + Offset 0 0 -2 // Still FrameIndex XZW2 A 1 0 + // Deselect + FrameIndex XZWA T 1 1 + FrameIndex XZWA U 1 2 + FrameIndex XZWA V 1 3 + FrameIndex XZWA W 1 4 // Select FrameIndex XZW2 B 1 5 FrameIndex XZW2 C 1 6 @@ -39,6 +125,7 @@ Model "ExplodiumGun" FrameIndex XZW2 G 1 10 FrameIndex XZW2 H 1 11 // Fire + SurfaceSkin 1 4 "ExplodiumCasing.png" // show casing FrameIndex XZW2 I 1 13 FrameIndex XZW2 J 1 14 FrameIndex XZW2 K 1 15 @@ -50,9 +137,210 @@ Model "ExplodiumGun" FrameIndex XZW2 Q 1 21 FrameIndex XZW2 R 1 22 FrameIndex XZW2 S 1 23 - // Deselect - FrameIndex XZW2 T 1 1 - FrameIndex XZW2 U 1 2 - FrameIndex XZW2 V 1 3 - FrameIndex XZW2 W 1 4 + SurfaceSkin 1 4 "" // hide casing + // Reload (Part 1) + FrameIndex XZW2 T 1 25 + FrameIndex XZW2 U 1 26 + FrameIndex XZW2 V 1 27 + FrameIndex XZW2 W 1 28 + FrameIndex XZW2 X 1 29 + FrameIndex XZW2 Y 1 30 + FrameIndex XZW2 Z 1 31 + FrameIndex XZW3 A 1 32 + FrameIndex XZW3 B 1 33 + FrameIndex XZW3 C 1 34 + FrameIndex XZW3 D 1 35 + FrameIndex XZW3 E 1 36 + FrameIndex XZW3 F 1 37 + FrameIndex XZW3 G 1 38 + FrameIndex XZW3 H 1 39 + FrameIndex XZW3 I 1 40 + // Reload (Part 1 w/ Empty Mag) + SurfaceSkin 1 5 "ExplodiumGun_EmptyMag.png" // empty mag + FrameIndex XZW3 J 1 25 + FrameIndex XZW3 K 1 26 + FrameIndex XZW3 L 1 27 + FrameIndex XZW3 M 1 28 + FrameIndex XZW3 N 1 29 + FrameIndex XZW3 O 1 30 + FrameIndex XZW3 P 1 31 + FrameIndex XZW3 Q 1 32 + FrameIndex XZW3 R 1 33 + FrameIndex XZW3 S 1 34 + FrameIndex XZW3 T 1 35 + FrameIndex XZW3 U 1 36 + FrameIndex XZW3 V 1 37 + FrameIndex XZW3 W 1 38 + FrameIndex XZW3 X 1 39 + FrameIndex XZW3 Y 1 40 + // Reload (Part 2) + SurfaceSkin 1 5 "" // hide mag + SurfaceSkin 1 6 "ExplodiumGun.png" // show new mag + FrameIndex XZW3 Z 1 41 + FrameIndex XZW4 A 1 42 + FrameIndex XZW4 B 1 43 + FrameIndex XZW4 C 1 44 + FrameIndex XZW4 D 1 45 + FrameIndex XZW4 E 1 46 + FrameIndex XZW4 F 1 47 + FrameIndex XZW4 G 1 48 + SurfaceSkin 1 6 "" // hide new mag + FrameIndex XZW4 H 1 49 + FrameIndex XZW4 I 1 50 + FrameIndex XZW4 J 1 51 + SurfaceSkin 1 5 "ExplodiumGun.png" // show mag + FrameIndex XZW4 K 1 52 + FrameIndex XZW4 L 1 53 + FrameIndex XZW4 M 1 54 + FrameIndex XZW4 N 1 55 + FrameIndex XZW4 O 1 56 + FrameIndex XZW4 P 1 57 + FrameIndex XZW4 Q 1 58 + FrameIndex XZW4 R 1 59 + FrameIndex XZW4 S 1 60 + FrameIndex XZW4 T 1 61 + FrameIndex XZW4 U 1 62 + FrameIndex XZW4 V 1 63 + // Slide + FrameIndex XZW4 W 1 65 + FrameIndex XZW4 X 1 66 + FrameIndex XZW4 Y 1 67 + FrameIndex XZW4 Z 1 68 + FrameIndex XZW5 A 1 69 + FrameIndex XZW5 B 1 70 + FrameIndex XZW5 C 1 71 + FrameIndex XZW5 D 1 72 + FrameIndex XZW5 E 1 73 + FrameIndex XZW5 F 1 74 + FrameIndex XZW5 G 1 75 + FrameIndex XZW5 H 1 76 + FrameIndex XZW5 I 1 77 + FrameIndex XZW5 J 1 78 + FrameIndex XZW5 K 1 79 + FrameIndex XZW5 L 1 80 + FrameIndex XZW5 M 1 81 + // "Explosive" Reload + FrameIndex XZW5 N 1 83 + FrameIndex XZW5 O 1 84 + FrameIndex XZW5 P 1 85 + FrameIndex XZW5 Q 1 86 + FrameIndex XZW5 R 1 87 + FrameIndex XZW5 S 1 88 + FrameIndex XZW5 T 1 89 + FrameIndex XZW5 U 1 90 + FrameIndex XZW5 V 1 91 + FrameIndex XZW5 W 1 92 + FrameIndex XZW5 X 1 93 + FrameIndex XZW5 Y 1 94 + FrameIndex XZW5 Z 1 95 + FrameIndex XZW6 A 1 96 + FrameIndex XZW6 B 1 97 + FrameIndex XZW6 C 1 98 + FrameIndex XZW6 D 1 99 + FrameIndex XZW6 E 1 100 + FrameIndex XZW6 F 1 101 + FrameIndex XZW6 G 1 102 + FrameIndex XZW6 H 1 103 + FrameIndex XZW6 I 1 104 + SurfaceSkin 1 5 "" // hide mag + SurfaceSkin 1 6 "ExplodiumGun.png" // show new mag + FrameIndex XZW6 J 1 105 + FrameIndex XZW6 K 1 106 + FrameIndex XZW6 L 1 107 + FrameIndex XZW6 M 1 108 + FrameIndex XZW6 N 1 109 + FrameIndex XZW6 O 1 110 + FrameIndex XZW6 P 1 111 + FrameIndex XZW6 Q 1 112 + FrameIndex XZW6 R 1 113 + FrameIndex XZW6 S 1 114 + SurfaceSkin 1 6 "" // hide new mag + FrameIndex XZW6 T 1 115 + FrameIndex XZW6 U 1 116 + FrameIndex XZW6 V 1 117 + FrameIndex XZW6 W 1 118 + FrameIndex XZW6 X 1 119 + FrameIndex XZW6 Y 1 120 + FrameIndex XZW6 Z 1 121 + // Check Bullet + SurfaceSkin 1 4 "ExplodiumCasing.png" // show casing + FrameIndex XZW7 A 1 157 + FrameIndex XZW7 B 1 158 + FrameIndex XZW7 C 1 159 + FrameIndex XZW7 D 1 160 + FrameIndex XZW7 E 1 161 + FrameIndex XZW7 F 1 162 + FrameIndex XZW7 G 1 163 + FrameIndex XZW7 H 1 164 + FrameIndex XZW7 I 1 165 + FrameIndex XZW7 J 1 166 + FrameIndex XZW7 K 1 167 + FrameIndex XZW7 L 1 168 + FrameIndex XZW7 M 1 169 + FrameIndex XZW7 N 1 170 + FrameIndex XZW7 O 1 171 + FrameIndex XZW7 P 1 172 + FrameIndex XZW7 Q 1 173 + FrameIndex XZW7 R 1 174 + FrameIndex XZW7 S 1 175 + SurfaceSkin 1 4 "" // hide casing + // Melee + FrameIndex XZW7 T 1 177 + FrameIndex XZW7 U 1 178 + FrameIndex XZW7 V 1 179 + FrameIndex XZW7 W 1 180 + FrameIndex XZW7 X 1 181 + FrameIndex XZW7 Y 1 182 + FrameIndex XZW7 Z 1 183 + FrameIndex XZW8 A 1 184 + FrameIndex XZW8 B 1 185 + FrameIndex XZW8 C 1 186 + FrameIndex XZW8 D 1 187 + FrameIndex XZW8 E 1 188 + FrameIndex XZW8 F 1 189 + // Check Gun + FrameIndex XZW8 G 1 192 + FrameIndex XZW8 H 1 193 + FrameIndex XZW8 I 1 194 + FrameIndex XZW8 J 1 195 + FrameIndex XZW8 K 1 196 + FrameIndex XZW8 L 1 197 + FrameIndex XZW8 M 1 198 + FrameIndex XZW8 N 1 199 + FrameIndex XZW8 O 1 200 + FrameIndex XZW8 P 1 201 + FrameIndex XZW8 Q 1 202 + FrameIndex XZW8 R 1 203 + FrameIndex XZW8 S 1 204 + FrameIndex XZW8 T 1 205 + FrameIndex XZW8 U 1 206 + FrameIndex XZW8 V 1 207 + FrameIndex XZW8 W 1 208 + FrameIndex XZW8 X 1 209 + FrameIndex XZW8 Y 1 210 + FrameIndex XZW8 Z 1 211 + // Spin Gun + FrameIndex XZW9 A 1 213 + FrameIndex XZW9 B 1 214 + FrameIndex XZW9 C 1 215 + FrameIndex XZW9 D 1 216 + FrameIndex XZW9 E 1 217 + FrameIndex XZW9 F 1 218 + FrameIndex XZW9 G 1 219 + FrameIndex XZW9 H 1 220 + FrameIndex XZW9 I 1 221 + FrameIndex XZW9 J 1 222 + FrameIndex XZW9 K 1 223 + FrameIndex XZW9 L 1 224 + FrameIndex XZW9 M 1 225 + FrameIndex XZW9 N 1 226 + FrameIndex XZW9 O 1 227 + FrameIndex XZW9 P 1 228 + FrameIndex XZW9 Q 1 229 + FrameIndex XZW9 R 1 230 + FrameIndex XZW9 S 1 231 + FrameIndex XZW9 T 1 232 + FrameIndex XZW9 U 1 233 + FrameIndex XZW9 V 1 234 + FrameIndex XZW9 W 1 235 } diff --git a/models/DemoTags.png b/models/DemoTags.png index 44c8f3e7a..ed23ea9d1 100644 Binary files a/models/DemoTags.png and b/models/DemoTags.png differ diff --git a/models/ExplodiumGun1st.blend b/models/ExplodiumGun1st.blend index 91f811b03..9dbeb50bb 100644 Binary files a/models/ExplodiumGun1st.blend and b/models/ExplodiumGun1st.blend differ diff --git a/models/ExplodiumGun1st_a.3d b/models/ExplodiumGun1st_a.3d index 3049e5eed..1b22ad5d2 100644 Binary files a/models/ExplodiumGun1st_a.3d and b/models/ExplodiumGun1st_a.3d differ diff --git a/models/Flat_a.3d b/models/Flat_a.3d deleted file mode 100644 index 3b5a42376..000000000 Binary files a/models/Flat_a.3d and /dev/null differ diff --git a/models/Flat_d.3d b/models/Flat_d.3d deleted file mode 100644 index 1f4819cff..000000000 Binary files a/models/Flat_d.3d and /dev/null differ diff --git a/models/ModelNotes.txt b/models/ModelNotes.txt index 5b79c0171..22054f079 100644 --- a/models/ModelNotes.txt +++ b/models/ModelNotes.txt @@ -6,8 +6,8 @@ X reload X cock X explosive reload X "check the chamber" idle anim -- "spin" idle anim -- "check out gun" idle anim +X "spin" idle anim +X "check out gun" idle anim X melee punch X candygun tertiary diff --git a/models/BaseBeam_a.3d b/models/extra/BaseBeam_a.3d similarity index 100% rename from models/BaseBeam_a.3d rename to models/extra/BaseBeam_a.3d diff --git a/models/BaseBeam_d.3d b/models/extra/BaseBeam_d.3d similarity index 100% rename from models/BaseBeam_d.3d rename to models/extra/BaseBeam_d.3d diff --git a/models/BaseSphere_a.3d b/models/extra/BaseSphere_a.3d similarity index 100% rename from models/BaseSphere_a.3d rename to models/extra/BaseSphere_a.3d diff --git a/models/BaseSphere_d.3d b/models/extra/BaseSphere_d.3d similarity index 100% rename from models/BaseSphere_d.3d rename to models/extra/BaseSphere_d.3d diff --git a/models/extra/Black.png b/models/extra/Black.png new file mode 100644 index 000000000..6fcfcb77c Binary files /dev/null and b/models/extra/Black.png differ diff --git a/models/extra/CandyMuz0.png b/models/extra/CandyMuz0.png new file mode 100644 index 000000000..edb20a961 Binary files /dev/null and b/models/extra/CandyMuz0.png differ diff --git a/models/extra/CandyMuz1.png b/models/extra/CandyMuz1.png new file mode 100644 index 000000000..0b20dae22 Binary files /dev/null and b/models/extra/CandyMuz1.png differ diff --git a/models/extra/CandyMuz2.png b/models/extra/CandyMuz2.png new file mode 100644 index 000000000..be2e89ec6 Binary files /dev/null and b/models/extra/CandyMuz2.png differ diff --git a/models/extra/CandyMuz3.png b/models/extra/CandyMuz3.png new file mode 100644 index 000000000..b1767b34a Binary files /dev/null and b/models/extra/CandyMuz3.png differ diff --git a/models/extra/CandyMuz4.png b/models/extra/CandyMuz4.png new file mode 100644 index 000000000..5217141b4 Binary files /dev/null and b/models/extra/CandyMuz4.png differ diff --git a/models/extra/CandyMuz5.png b/models/extra/CandyMuz5.png new file mode 100644 index 000000000..fe90b265b Binary files /dev/null and b/models/extra/CandyMuz5.png differ diff --git a/models/extra/CandyMuz6.png b/models/extra/CandyMuz6.png new file mode 100644 index 000000000..7fbdc26d4 Binary files /dev/null and b/models/extra/CandyMuz6.png differ diff --git a/models/extra/CandyMuz7.png b/models/extra/CandyMuz7.png new file mode 100644 index 000000000..ae49fc123 Binary files /dev/null and b/models/extra/CandyMuz7.png differ diff --git a/models/extra/CandyMuz8.png b/models/extra/CandyMuz8.png new file mode 100644 index 000000000..1a1d16673 Binary files /dev/null and b/models/extra/CandyMuz8.png differ diff --git a/models/extra/CandyMuz9.png b/models/extra/CandyMuz9.png new file mode 100644 index 000000000..7cd683500 Binary files /dev/null and b/models/extra/CandyMuz9.png differ diff --git a/models/extra/CandyTrail.png b/models/extra/CandyTrail.png new file mode 100644 index 000000000..b0215ee0e Binary files /dev/null and b/models/extra/CandyTrail.png differ diff --git a/models/extra/DarkRays.png b/models/extra/DarkRays.png new file mode 100644 index 000000000..dd4507b11 Binary files /dev/null and b/models/extra/DarkRays.png differ diff --git a/models/extra/DarkRaysEnd.png b/models/extra/DarkRaysEnd.png new file mode 100644 index 000000000..c13227d40 Binary files /dev/null and b/models/extra/DarkRaysEnd.png differ diff --git a/models/extra/DarkRaysStart.png b/models/extra/DarkRaysStart.png new file mode 100644 index 000000000..1db98fbd3 Binary files /dev/null and b/models/extra/DarkRaysStart.png differ diff --git a/models/extra/EvisceratorMuz0.png b/models/extra/EvisceratorMuz0.png new file mode 100644 index 000000000..c43279098 Binary files /dev/null and b/models/extra/EvisceratorMuz0.png differ diff --git a/models/extra/EvisceratorMuz1.png b/models/extra/EvisceratorMuz1.png new file mode 100644 index 000000000..184fc5887 Binary files /dev/null and b/models/extra/EvisceratorMuz1.png differ diff --git a/models/extra/EvisceratorMuz2.png b/models/extra/EvisceratorMuz2.png new file mode 100644 index 000000000..d3d50d4d0 Binary files /dev/null and b/models/extra/EvisceratorMuz2.png differ diff --git a/models/extra/EvisceratorMuz3.png b/models/extra/EvisceratorMuz3.png new file mode 100644 index 000000000..a3164ed61 Binary files /dev/null and b/models/extra/EvisceratorMuz3.png differ diff --git a/models/extra/ExploMuz0.png b/models/extra/ExploMuz0.png new file mode 100644 index 000000000..a067a2d55 Binary files /dev/null and b/models/extra/ExploMuz0.png differ diff --git a/models/extra/ExploMuz1.png b/models/extra/ExploMuz1.png new file mode 100644 index 000000000..22630a315 Binary files /dev/null and b/models/extra/ExploMuz1.png differ diff --git a/models/extra/ExploMuz2.png b/models/extra/ExploMuz2.png new file mode 100644 index 000000000..097e9c9dd Binary files /dev/null and b/models/extra/ExploMuz2.png differ diff --git a/models/extra/ExploMuz3.png b/models/extra/ExploMuz3.png new file mode 100644 index 000000000..58bf2a128 Binary files /dev/null and b/models/extra/ExploMuz3.png differ diff --git a/models/extra/ExploMuz4.png b/models/extra/ExploMuz4.png new file mode 100644 index 000000000..0164c1660 Binary files /dev/null and b/models/extra/ExploMuz4.png differ diff --git a/models/extra/ExploMuz5.png b/models/extra/ExploMuz5.png new file mode 100644 index 000000000..a9720a201 Binary files /dev/null and b/models/extra/ExploMuz5.png differ diff --git a/models/extra/ExploMuz6.png b/models/extra/ExploMuz6.png new file mode 100644 index 000000000..263ccde2b Binary files /dev/null and b/models/extra/ExploMuz6.png differ diff --git a/models/extra/ExploMuz7.png b/models/extra/ExploMuz7.png new file mode 100644 index 000000000..e3511e6ad Binary files /dev/null and b/models/extra/ExploMuz7.png differ diff --git a/models/extra/ExploMuz8.png b/models/extra/ExploMuz8.png new file mode 100644 index 000000000..34b2ad85c Binary files /dev/null and b/models/extra/ExploMuz8.png differ diff --git a/models/extra/ExploMuz9.png b/models/extra/ExploMuz9.png new file mode 100644 index 000000000..ff95de516 Binary files /dev/null and b/models/extra/ExploMuz9.png differ diff --git a/models/extra/Flat_a.3d b/models/extra/Flat_a.3d new file mode 100644 index 000000000..48138f503 Binary files /dev/null and b/models/extra/Flat_a.3d differ diff --git a/models/extra/Flat_d.3d b/models/extra/Flat_d.3d new file mode 100644 index 000000000..83b4ae4ff Binary files /dev/null and b/models/extra/Flat_d.3d differ diff --git a/models/extra/GoldMuz.png b/models/extra/GoldMuz.png new file mode 100644 index 000000000..471708f54 Binary files /dev/null and b/models/extra/GoldMuz.png differ diff --git a/models/extra/MortalMuz.png b/models/extra/MortalMuz.png new file mode 100644 index 000000000..8b6f3700b Binary files /dev/null and b/models/extra/MortalMuz.png differ diff --git a/models/extra/ShotgMuz.png b/models/extra/ShotgMuz.png new file mode 100644 index 000000000..51f157b65 Binary files /dev/null and b/models/extra/ShotgMuz.png differ diff --git a/models/extra/ShotgMuzSalt.png b/models/extra/ShotgMuzSalt.png new file mode 100644 index 000000000..ebc5d9492 Binary files /dev/null and b/models/extra/ShotgMuzSalt.png differ diff --git a/models/extra/SparksterMuz.png b/models/extra/SparksterMuz.png new file mode 100644 index 000000000..7f09cd7c5 Binary files /dev/null and b/models/extra/SparksterMuz.png differ diff --git a/palettes/CandyExpl.pal b/palettes/CandyExpl.pal new file mode 100644 index 000000000..611e2144e Binary files /dev/null and b/palettes/CandyExpl.pal differ diff --git a/palettes/Explosion.pal b/palettes/Explosion.pal new file mode 100644 index 000000000..9487e055b Binary files /dev/null and b/palettes/Explosion.pal differ diff --git a/palettes/HellExpl.pal b/palettes/HellExpl.pal new file mode 100644 index 000000000..95e764ebf Binary files /dev/null and b/palettes/HellExpl.pal differ diff --git a/palettes/ImpactWav.pal b/palettes/ImpactWav.pal new file mode 100644 index 000000000..e01d44d48 Binary files /dev/null and b/palettes/ImpactWav.pal differ diff --git a/palettes/SaltExpl.pal b/palettes/SaltExpl.pal new file mode 100644 index 000000000..a105f64de Binary files /dev/null and b/palettes/SaltExpl.pal differ diff --git a/palettes/SparkExpl.pal b/palettes/SparkExpl.pal new file mode 100644 index 000000000..f13c11c66 Binary files /dev/null and b/palettes/SparkExpl.pal differ diff --git a/sndinfo.txt b/sndinfo.txt index 49f38c505..b5142ca87 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -133,22 +133,142 @@ voice/default/scorekill24 sounds/voice/default/scorekill24.ogg voice/default/scorekill25 sounds/voice/default/scorekill25.ogg voice/default/scorekill26 sounds/voice/default/scorekill26.ogg voice/default/scorekill27 sounds/voice/default/scorekill27.ogg +voice/default/gethit1 sounds/voice/default/gethit1.ogg +voice/default/gethit2 sounds/voice/default/gethit2.ogg +voice/default/gethit3 sounds/voice/default/gethit3.ogg +voice/default/gethit4 sounds/voice/default/gethit4.ogg +voice/default/gethit5 sounds/voice/default/gethit5.ogg +voice/default/gethit6 sounds/voice/default/gethit6.ogg +voice/default/gethit7 sounds/voice/default/gethit7.ogg +voice/default/gethit8 sounds/voice/default/gethit8.ogg +voice/default/gethit9 sounds/voice/default/gethit9.ogg +voice/default/gethit10 sounds/voice/default/gethit10.ogg +voice/default/gethit11 sounds/voice/default/gethit11.ogg +voice/default/gethit12 sounds/voice/default/gethit12.ogg +voice/default/gethit13 sounds/voice/default/gethit13.ogg +voice/default/gethit14 sounds/voice/default/gethit14.ogg +voice/default/gethit15 sounds/voice/default/gethit15.ogg +voice/default/gethit16 sounds/voice/default/gethit16.ogg +voice/default/gethit17 sounds/voice/default/gethit17.ogg +voice/default/gethit18 sounds/voice/default/gethit18.ogg -$random demolitionist/grunt { voice/default/grunt1 voice/default/grunt2 voice/default/grunt3 voice/default/grunt4 voice/default/grunt5 voice/default/grunt6 } -$random demolitionist/lopain { voice/default/lopain1 voice/default/lopain2 voice/default/lopain3 voice/default/lopain4 voice/default/lopain5 } -$random demolitionist/pain { voice/default/pain1 voice/default/pain2 voice/default/pain3 voice/default/pain4 voice/default/pain5 } -$random demolitionist/hipain { voice/default/hipain1 voice/default/hipain2 voice/default/hipain3 voice/default/hipain4 voice/default/hipain5 } -$random demolitionist/death { voice/default/death1 voice/default/death2 voice/default/death3 voice/default/death4 voice/default/death5 } +$random voice/default/grunt { voice/default/grunt1 voice/default/grunt2 voice/default/grunt3 voice/default/grunt4 voice/default/grunt5 voice/default/grunt6 } +$random voice/default/lopain { voice/default/lopain1 voice/default/lopain2 voice/default/lopain3 voice/default/lopain4 voice/default/lopain5 } +$random voice/default/pain { voice/default/pain1 voice/default/pain2 voice/default/pain3 voice/default/pain4 voice/default/pain5 } +$random voice/default/hipain { voice/default/hipain1 voice/default/hipain2 voice/default/hipain3 voice/default/hipain4 voice/default/hipain5 } +$random voice/default/death { voice/default/death1 voice/default/death2 voice/default/death3 voice/default/death4 voice/default/death5 } -$playeralias demolitionist neutral *grunt demolitionist/grunt +demolitionist/walk1 sounds/demolitionist/demowalk1.ogg +demolitionist/walk2 sounds/demolitionist/demowalk2.ogg +demolitionist/walk3 sounds/demolitionist/demowalk3.ogg +demolitionist/walk4 sounds/demolitionist/demowalk4.ogg +$random demolitionist/walk { demolitionist/walk1 demolitionist/walk2 demolitionist/walk3 demolitionist/walk4 } +demolitionist/runstart1 sounds/demolitionist/demorunbeg1.ogg +demolitionist/runstart2 sounds/demolitionist/demorunbeg2.ogg +demolitionist/runstart3 sounds/demolitionist/demorunbeg3.ogg +demolitionist/runstart4 sounds/demolitionist/demorunbeg4.ogg +$random demolitionist/runstart { demolitionist/runstart1 demolitionist/runstart2 demolitionist/runstart3 demolitionist/runstart4 } +demolitionist/run1 sounds/demolitionist/demorun1.ogg +demolitionist/run2 sounds/demolitionist/demorun2.ogg +demolitionist/run3 sounds/demolitionist/demorun3.ogg +demolitionist/run4 sounds/demolitionist/demorun4.ogg +$random demolitionist/run { demolitionist/run1 demolitionist/run2 demolitionist/run3 demolitionist/run4 } +demolitionist/runstop1 sounds/demolitionist/demorunstp1.ogg +demolitionist/runstop2 sounds/demolitionist/demorunstp2.ogg +demolitionist/runstop3 sounds/demolitionist/demorunstp3.ogg +demolitionist/runstop4 sounds/demolitionist/demorunstp4.ogg +$random demolitionist/runstop { demolitionist/runstop1 demolitionist/runstop2 demolitionist/runstop3 demolitionist/runstop4 } +demolitionist/jet sounds/demolitionist/demojet.ogg +demolitionist/jetstop sounds/demolitionist/demojetstop.ogg +demolitionist/death1 sounds/demolitionist/demodeath1.ogg +demolitionist/death2 sounds/demolitionist/demodeath2.ogg +demolitionist/death3 sounds/demolitionist/demodeath3.ogg +$random demolitionist/death { demolitionist/death1 demolitionist/death2 demolitionist/death3 } +demolitionist/xdeath1 sounds/demolitionist/demoxdeath1.ogg +demolitionist/xdeath2 sounds/demolitionist/demoxdeath2.ogg +demolitionist/xdeath3 sounds/demolitionist/demoxdeath3.ogg +$random demolitionist/xdeath { demolitionist/xdeath1 demolitionist/xdeath2 demolitionist/xdeath3 } +demolitionist/wdeath1 sounds/demolitionist/demowdeath1.ogg +demolitionist/wdeath2 sounds/demolitionist/demowdeath2.ogg +demolitionist/wdeath3 sounds/demolitionist/demowdeath3.ogg +$random demolitionist/wdeath { demolitionist/wdeath1 demolitionist/wdeath2 demolitionist/wdeath3 } +demolitionist/pain1 sounds/demolitionist/demopain1.ogg +demolitionist/pain2 sounds/demolitionist/demopain2.ogg +demolitionist/pain3 sounds/demolitionist/demopain3.ogg +$random demolitionist/pain { demolitionist/pain1 demolitionist/pain2 demolitionist/pain3 } +demolitionist/hipain1 sounds/demolitionist/demohipain1.ogg +demolitionist/hipain2 sounds/demolitionist/demohipain2.ogg +demolitionist/hipain3 sounds/demolitionist/demohipain3.ogg +$random demolitionist/hipain { demolitionist/hipain1 demolitionist/hipain2 demolitionist/hipain3 } +demolitionist/lopain1 sounds/demolitionist/demolopain1.ogg +demolitionist/lopain2 sounds/demolitionist/demolopain2.ogg +demolitionist/lopain3 sounds/demolitionist/demolopain3.ogg +$random demolitionist/lopain { demolitionist/lopain1 demolitionist/lopain2 demolitionist/lopain3 } +demolitionist/hardland1 sounds/demolitionist/demohland1.ogg +demolitionist/hardland2 sounds/demolitionist/demohland2.ogg +demolitionist/hardland3 sounds/demolitionist/demohland3.ogg +$random demolitionist/hardland { demolitionist/hardland1 demolitionist/hardland2 demolitionist/hardland3 } +demolitionist/swing1 sounds/demolitionist/demoswing1.ogg +demolitionist/swing2 sounds/demolitionist/demoswing2.ogg +demolitionist/swing3 sounds/demolitionist/demoswing3.ogg +$random demolitionist/swing { demolitionist/swing1 demolitionist/swing2 demolitionist/swing3 } +demolitionist/punch1 sounds/demolitionist/demopunch1.ogg +demolitionist/punch2 sounds/demolitionist/demopunch2.ogg +demolitionist/punch3 sounds/demolitionist/demopunch3.ogg +$random demolitionist/punch { demolitionist/punch1 demolitionist/punch2 demolitionist/punch3 } +demolitionist/punchf1 sounds/demolitionist/demopunchf1.ogg +demolitionist/punchf2 sounds/demolitionist/demopunchf2.ogg +demolitionist/punchf3 sounds/demolitionist/demopunchf3.ogg +$random demolitionist/punchf { demolitionist/puncfh1 demolitionist/punchf2 demolitionist/punchf3 } +demolitionist/bump1 sounds/demolitionist/demobump1.ogg +demolitionist/bump2 sounds/demolitionist/demobump2.ogg +demolitionist/bump3 sounds/demolitionist/demobump3.ogg +$random demolitionist/bump { demolitionist/bump1 demolitionist/bump2 demolitionist/bump3 } + +explodium/casing1 sounds/explodiumgun/expl_case1.ogg +explodium/casing2 sounds/explodiumgun/expl_case2.ogg +explodium/casing3 sounds/explodiumgun/expl_case3.ogg +explodium/casing4 sounds/explodiumgun/expl_case4.ogg +$random explodium/casing { explodium/casing1 explodium/casing2 explodium/casing3 explodium/casing4 } +explodium/checkout sounds/explodiumgun/expl_checkout.ogg +explodium/fire1 sounds/explodiumgun/expl_fire1.ogg +explodium/fire2 sounds/explodiumgun/expl_fire2.ogg +explodium/fire3 sounds/explodiumgun/expl_fire3.ogg +$random explodium/fire { explodium/fire1 explodium/fire2 explodium/fire3 } +explodium/hit1 sounds/explodiumgun/expl_hit1.ogg +explodium/hit2 sounds/explodiumgun/expl_hit2.ogg +explodium/hit3 sounds/explodiumgun/expl_hit3.ogg +$random explodium/hit { explodium/hit1 explodium/hit2 explodium/hit3 } +explodium/jamitin sounds/explodiumgun/expl_jamitin.ogg +explodium/mag1 sounds/explodiumgun/expl_mag1.ogg +explodium/mag2 sounds/explodiumgun/expl_mag2.ogg +explodium/mag3 sounds/explodiumgun/expl_mag3.ogg +$random explodium/mag { explodium/mag1 explodium/mag2 explodium/mag3 } +explodium/maghit1 sounds/explodiumgun/expl_maghit1.ogg +explodium/maghit2 sounds/explodiumgun/expl_maghit2.ogg +$random explodium/maghit { explodium/maghit1 explodium/maghit2 } +explodium/magin sounds/explodiumgun/expl_magin.ogg +explodium/magout sounds/explodiumgun/expl_magout.ogg +explodium/magpin sounds/explodiumgun/expl_magpin.ogg +explodium/select sounds/explodiumgun/expl_select.ogg +explodium/deselect sounds/explodiumgun/expl_deselect.ogg +explodium/slideback sounds/explodiumgun/expl_slideback.ogg +explodium/slideforward sounds/explodiumgun/expl_slideforward.ogg +explodium/speen sounds/explodiumgun/expl_speen.ogg +explodium/throwmag sounds/explodiumgun/expl_throwmag.ogg + +$playersound demolitionist neutral *grunt DSEMPTY $playeralias demolitionist neutral *pain100 demolitionist/lopain $playeralias demolitionist neutral *pain75 demolitionist/pain $playeralias demolitionist neutral *pain50 demolitionist/pain $playeralias demolitionist neutral *pain25 demolitionist/hipain -$playeralias demolitionist neutral *usefail demolitionist/grunt +$playersound demolitionist neutral *usefail DSEMPTY $playeralias demolitionist neutral *death demolitionist/death -$playeralias demolitionist neutral *xdeath demolitionist/death -$playeralias demolitionist neutral *gibbed demolitionist/death +$playeralias demolitionist neutral *xdeath demolitionist/xdeath +$playeralias demolitionist neutral *gibbed demolitionist/xdeath +$playeralias demolitionist neutral *wimpydeath demolitionist/wdeath $playersound demolitionist neutral *land DSEMPTY $playersound demolitionist neutral *falling DSEMPTY $playersound demolitionist neutral *puzzfail DSEMPTY + +$alias misc/keytry DSEMPTY diff --git a/sounds/demolitionist/demobump1.ogg b/sounds/demolitionist/demobump1.ogg new file mode 100644 index 000000000..25087a942 Binary files /dev/null and b/sounds/demolitionist/demobump1.ogg differ diff --git a/sounds/demolitionist/demobump2.ogg b/sounds/demolitionist/demobump2.ogg new file mode 100644 index 000000000..96981b445 Binary files /dev/null and b/sounds/demolitionist/demobump2.ogg differ diff --git a/sounds/demolitionist/demobump3.ogg b/sounds/demolitionist/demobump3.ogg new file mode 100644 index 000000000..885da1ae4 Binary files /dev/null and b/sounds/demolitionist/demobump3.ogg differ diff --git a/sounds/demolitionist/demodeath1.ogg b/sounds/demolitionist/demodeath1.ogg new file mode 100644 index 000000000..78ea9135e Binary files /dev/null and b/sounds/demolitionist/demodeath1.ogg differ diff --git a/sounds/demolitionist/demodeath2.ogg b/sounds/demolitionist/demodeath2.ogg new file mode 100644 index 000000000..d9fa86907 Binary files /dev/null and b/sounds/demolitionist/demodeath2.ogg differ diff --git a/sounds/demolitionist/demodeath3.ogg b/sounds/demolitionist/demodeath3.ogg new file mode 100644 index 000000000..c2fa5842c Binary files /dev/null and b/sounds/demolitionist/demodeath3.ogg differ diff --git a/sounds/demolitionist/demohipain1.ogg b/sounds/demolitionist/demohipain1.ogg new file mode 100644 index 000000000..297373172 Binary files /dev/null and b/sounds/demolitionist/demohipain1.ogg differ diff --git a/sounds/demolitionist/demohipain2.ogg b/sounds/demolitionist/demohipain2.ogg new file mode 100644 index 000000000..8fd304aa7 Binary files /dev/null and b/sounds/demolitionist/demohipain2.ogg differ diff --git a/sounds/demolitionist/demohipain3.ogg b/sounds/demolitionist/demohipain3.ogg new file mode 100644 index 000000000..1dc452d40 Binary files /dev/null and b/sounds/demolitionist/demohipain3.ogg differ diff --git a/sounds/demolitionist/demohland1.ogg b/sounds/demolitionist/demohland1.ogg new file mode 100644 index 000000000..0e49bab38 Binary files /dev/null and b/sounds/demolitionist/demohland1.ogg differ diff --git a/sounds/demolitionist/demohland2.ogg b/sounds/demolitionist/demohland2.ogg new file mode 100644 index 000000000..f074f9092 Binary files /dev/null and b/sounds/demolitionist/demohland2.ogg differ diff --git a/sounds/demolitionist/demohland3.ogg b/sounds/demolitionist/demohland3.ogg new file mode 100644 index 000000000..3b7832c5e Binary files /dev/null and b/sounds/demolitionist/demohland3.ogg differ diff --git a/sounds/demolitionist/demojet.ogg b/sounds/demolitionist/demojet.ogg new file mode 100644 index 000000000..49e87c109 Binary files /dev/null and b/sounds/demolitionist/demojet.ogg differ diff --git a/sounds/demolitionist/demojetstop.ogg b/sounds/demolitionist/demojetstop.ogg new file mode 100644 index 000000000..417ca0724 Binary files /dev/null and b/sounds/demolitionist/demojetstop.ogg differ diff --git a/sounds/demolitionist/demolopain1.ogg b/sounds/demolitionist/demolopain1.ogg new file mode 100644 index 000000000..0fe458acf Binary files /dev/null and b/sounds/demolitionist/demolopain1.ogg differ diff --git a/sounds/demolitionist/demolopain2.ogg b/sounds/demolitionist/demolopain2.ogg new file mode 100644 index 000000000..4ec3ee4c1 Binary files /dev/null and b/sounds/demolitionist/demolopain2.ogg differ diff --git a/sounds/demolitionist/demolopain3.ogg b/sounds/demolitionist/demolopain3.ogg new file mode 100644 index 000000000..0e18adbaa Binary files /dev/null and b/sounds/demolitionist/demolopain3.ogg differ diff --git a/sounds/demolitionist/demopain1.ogg b/sounds/demolitionist/demopain1.ogg new file mode 100644 index 000000000..b064a7313 Binary files /dev/null and b/sounds/demolitionist/demopain1.ogg differ diff --git a/sounds/demolitionist/demopain2.ogg b/sounds/demolitionist/demopain2.ogg new file mode 100644 index 000000000..64124db90 Binary files /dev/null and b/sounds/demolitionist/demopain2.ogg differ diff --git a/sounds/demolitionist/demopain3.ogg b/sounds/demolitionist/demopain3.ogg new file mode 100644 index 000000000..73f16aa6c Binary files /dev/null and b/sounds/demolitionist/demopain3.ogg differ diff --git a/sounds/demolitionist/demopunch1.ogg b/sounds/demolitionist/demopunch1.ogg new file mode 100644 index 000000000..0828ebe48 Binary files /dev/null and b/sounds/demolitionist/demopunch1.ogg differ diff --git a/sounds/demolitionist/demopunch2.ogg b/sounds/demolitionist/demopunch2.ogg new file mode 100644 index 000000000..c02af8b0f Binary files /dev/null and b/sounds/demolitionist/demopunch2.ogg differ diff --git a/sounds/demolitionist/demopunch3.ogg b/sounds/demolitionist/demopunch3.ogg new file mode 100644 index 000000000..e2ec2f332 Binary files /dev/null and b/sounds/demolitionist/demopunch3.ogg differ diff --git a/sounds/demolitionist/demopunchf1.ogg b/sounds/demolitionist/demopunchf1.ogg new file mode 100644 index 000000000..72bcbb873 Binary files /dev/null and b/sounds/demolitionist/demopunchf1.ogg differ diff --git a/sounds/demolitionist/demopunchf2.ogg b/sounds/demolitionist/demopunchf2.ogg new file mode 100644 index 000000000..378b9070a Binary files /dev/null and b/sounds/demolitionist/demopunchf2.ogg differ diff --git a/sounds/demolitionist/demopunchf3.ogg b/sounds/demolitionist/demopunchf3.ogg new file mode 100644 index 000000000..0e6942cfb Binary files /dev/null and b/sounds/demolitionist/demopunchf3.ogg differ diff --git a/sounds/demolitionist/demorun1.ogg b/sounds/demolitionist/demorun1.ogg new file mode 100644 index 000000000..0a2aa82b4 Binary files /dev/null and b/sounds/demolitionist/demorun1.ogg differ diff --git a/sounds/demolitionist/demorun2.ogg b/sounds/demolitionist/demorun2.ogg new file mode 100644 index 000000000..74a31b92e Binary files /dev/null and b/sounds/demolitionist/demorun2.ogg differ diff --git a/sounds/demolitionist/demorun3.ogg b/sounds/demolitionist/demorun3.ogg new file mode 100644 index 000000000..d85118c83 Binary files /dev/null and b/sounds/demolitionist/demorun3.ogg differ diff --git a/sounds/demolitionist/demorun4.ogg b/sounds/demolitionist/demorun4.ogg new file mode 100644 index 000000000..fca871652 Binary files /dev/null and b/sounds/demolitionist/demorun4.ogg differ diff --git a/sounds/demolitionist/demorunbeg1.ogg b/sounds/demolitionist/demorunbeg1.ogg new file mode 100644 index 000000000..9120327e1 Binary files /dev/null and b/sounds/demolitionist/demorunbeg1.ogg differ diff --git a/sounds/demolitionist/demorunbeg2.ogg b/sounds/demolitionist/demorunbeg2.ogg new file mode 100644 index 000000000..d9354848a Binary files /dev/null and b/sounds/demolitionist/demorunbeg2.ogg differ diff --git a/sounds/demolitionist/demorunbeg3.ogg b/sounds/demolitionist/demorunbeg3.ogg new file mode 100644 index 000000000..58e83407f Binary files /dev/null and b/sounds/demolitionist/demorunbeg3.ogg differ diff --git a/sounds/demolitionist/demorunbeg4.ogg b/sounds/demolitionist/demorunbeg4.ogg new file mode 100644 index 000000000..33b8ec4e6 Binary files /dev/null and b/sounds/demolitionist/demorunbeg4.ogg differ diff --git a/sounds/demolitionist/demorunstp1.ogg b/sounds/demolitionist/demorunstp1.ogg new file mode 100644 index 000000000..f3e3e52e9 Binary files /dev/null and b/sounds/demolitionist/demorunstp1.ogg differ diff --git a/sounds/demolitionist/demorunstp2.ogg b/sounds/demolitionist/demorunstp2.ogg new file mode 100644 index 000000000..86601f7d2 Binary files /dev/null and b/sounds/demolitionist/demorunstp2.ogg differ diff --git a/sounds/demolitionist/demorunstp3.ogg b/sounds/demolitionist/demorunstp3.ogg new file mode 100644 index 000000000..d92a1a635 Binary files /dev/null and b/sounds/demolitionist/demorunstp3.ogg differ diff --git a/sounds/demolitionist/demorunstp4.ogg b/sounds/demolitionist/demorunstp4.ogg new file mode 100644 index 000000000..b6a5896f9 Binary files /dev/null and b/sounds/demolitionist/demorunstp4.ogg differ diff --git a/sounds/demolitionist/demoswing1.ogg b/sounds/demolitionist/demoswing1.ogg new file mode 100644 index 000000000..7b8535328 Binary files /dev/null and b/sounds/demolitionist/demoswing1.ogg differ diff --git a/sounds/demolitionist/demoswing2.ogg b/sounds/demolitionist/demoswing2.ogg new file mode 100644 index 000000000..3c8b2ebae Binary files /dev/null and b/sounds/demolitionist/demoswing2.ogg differ diff --git a/sounds/demolitionist/demoswing3.ogg b/sounds/demolitionist/demoswing3.ogg new file mode 100644 index 000000000..e7e944a87 Binary files /dev/null and b/sounds/demolitionist/demoswing3.ogg differ diff --git a/sounds/demolitionist/demowalk1.ogg b/sounds/demolitionist/demowalk1.ogg new file mode 100644 index 000000000..1396cf35e Binary files /dev/null and b/sounds/demolitionist/demowalk1.ogg differ diff --git a/sounds/demolitionist/demowalk2.ogg b/sounds/demolitionist/demowalk2.ogg new file mode 100644 index 000000000..03d11762d Binary files /dev/null and b/sounds/demolitionist/demowalk2.ogg differ diff --git a/sounds/demolitionist/demowalk3.ogg b/sounds/demolitionist/demowalk3.ogg new file mode 100644 index 000000000..8c95a3fa9 Binary files /dev/null and b/sounds/demolitionist/demowalk3.ogg differ diff --git a/sounds/demolitionist/demowalk4.ogg b/sounds/demolitionist/demowalk4.ogg new file mode 100644 index 000000000..6b29123b5 Binary files /dev/null and b/sounds/demolitionist/demowalk4.ogg differ diff --git a/sounds/demolitionist/demowdeath1.ogg b/sounds/demolitionist/demowdeath1.ogg new file mode 100644 index 000000000..f4fd7e2e9 Binary files /dev/null and b/sounds/demolitionist/demowdeath1.ogg differ diff --git a/sounds/demolitionist/demowdeath2.ogg b/sounds/demolitionist/demowdeath2.ogg new file mode 100644 index 000000000..8f18952f0 Binary files /dev/null and b/sounds/demolitionist/demowdeath2.ogg differ diff --git a/sounds/demolitionist/demowdeath3.ogg b/sounds/demolitionist/demowdeath3.ogg new file mode 100644 index 000000000..01c4b0027 Binary files /dev/null and b/sounds/demolitionist/demowdeath3.ogg differ diff --git a/sounds/demolitionist/demoxdeath1.ogg b/sounds/demolitionist/demoxdeath1.ogg new file mode 100644 index 000000000..1203bce28 Binary files /dev/null and b/sounds/demolitionist/demoxdeath1.ogg differ diff --git a/sounds/demolitionist/demoxdeath2.ogg b/sounds/demolitionist/demoxdeath2.ogg new file mode 100644 index 000000000..06d32b8db Binary files /dev/null and b/sounds/demolitionist/demoxdeath2.ogg differ diff --git a/sounds/demolitionist/demoxdeath3.ogg b/sounds/demolitionist/demoxdeath3.ogg new file mode 100644 index 000000000..70db22e06 Binary files /dev/null and b/sounds/demolitionist/demoxdeath3.ogg differ diff --git a/sounds/explodiumgun/expl_case1.ogg b/sounds/explodiumgun/expl_case1.ogg new file mode 100644 index 000000000..d2e8bbc15 Binary files /dev/null and b/sounds/explodiumgun/expl_case1.ogg differ diff --git a/sounds/explodiumgun/expl_case2.ogg b/sounds/explodiumgun/expl_case2.ogg new file mode 100644 index 000000000..0d29c517c Binary files /dev/null and b/sounds/explodiumgun/expl_case2.ogg differ diff --git a/sounds/explodiumgun/expl_case3.ogg b/sounds/explodiumgun/expl_case3.ogg new file mode 100644 index 000000000..9b70fef81 Binary files /dev/null and b/sounds/explodiumgun/expl_case3.ogg differ diff --git a/sounds/explodiumgun/expl_case4.ogg b/sounds/explodiumgun/expl_case4.ogg new file mode 100644 index 000000000..7df430d80 Binary files /dev/null and b/sounds/explodiumgun/expl_case4.ogg differ diff --git a/sounds/explodiumgun/expl_checkout.ogg b/sounds/explodiumgun/expl_checkout.ogg new file mode 100644 index 000000000..ae0b1ae6c Binary files /dev/null and b/sounds/explodiumgun/expl_checkout.ogg differ diff --git a/sounds/explodiumgun/expl_deselect.ogg b/sounds/explodiumgun/expl_deselect.ogg new file mode 100644 index 000000000..80f66803c Binary files /dev/null and b/sounds/explodiumgun/expl_deselect.ogg differ diff --git a/sounds/explodiumgun/expl_fire1.ogg b/sounds/explodiumgun/expl_fire1.ogg new file mode 100644 index 000000000..43eca6090 Binary files /dev/null and b/sounds/explodiumgun/expl_fire1.ogg differ diff --git a/sounds/explodiumgun/expl_fire2.ogg b/sounds/explodiumgun/expl_fire2.ogg new file mode 100644 index 000000000..027540856 Binary files /dev/null and b/sounds/explodiumgun/expl_fire2.ogg differ diff --git a/sounds/explodiumgun/expl_fire3.ogg b/sounds/explodiumgun/expl_fire3.ogg new file mode 100644 index 000000000..2b848845d Binary files /dev/null and b/sounds/explodiumgun/expl_fire3.ogg differ diff --git a/sounds/explodiumgun/expl_hit1.ogg b/sounds/explodiumgun/expl_hit1.ogg new file mode 100644 index 000000000..0566f480a Binary files /dev/null and b/sounds/explodiumgun/expl_hit1.ogg differ diff --git a/sounds/explodiumgun/expl_hit2.ogg b/sounds/explodiumgun/expl_hit2.ogg new file mode 100644 index 000000000..30772fd88 Binary files /dev/null and b/sounds/explodiumgun/expl_hit2.ogg differ diff --git a/sounds/explodiumgun/expl_hit3.ogg b/sounds/explodiumgun/expl_hit3.ogg new file mode 100644 index 000000000..0f45b0b18 Binary files /dev/null and b/sounds/explodiumgun/expl_hit3.ogg differ diff --git a/sounds/explodiumgun/expl_jamitin.ogg b/sounds/explodiumgun/expl_jamitin.ogg new file mode 100644 index 000000000..8d02730ad Binary files /dev/null and b/sounds/explodiumgun/expl_jamitin.ogg differ diff --git a/sounds/explodiumgun/expl_mag1.ogg b/sounds/explodiumgun/expl_mag1.ogg new file mode 100644 index 000000000..6bd28b1a7 Binary files /dev/null and b/sounds/explodiumgun/expl_mag1.ogg differ diff --git a/sounds/explodiumgun/expl_mag2.ogg b/sounds/explodiumgun/expl_mag2.ogg new file mode 100644 index 000000000..4dd0d20f8 Binary files /dev/null and b/sounds/explodiumgun/expl_mag2.ogg differ diff --git a/sounds/explodiumgun/expl_mag3.ogg b/sounds/explodiumgun/expl_mag3.ogg new file mode 100644 index 000000000..4f4ec6bc5 Binary files /dev/null and b/sounds/explodiumgun/expl_mag3.ogg differ diff --git a/sounds/explodiumgun/expl_maghit1.ogg b/sounds/explodiumgun/expl_maghit1.ogg new file mode 100644 index 000000000..fcf47288b Binary files /dev/null and b/sounds/explodiumgun/expl_maghit1.ogg differ diff --git a/sounds/explodiumgun/expl_maghit2.ogg b/sounds/explodiumgun/expl_maghit2.ogg new file mode 100644 index 000000000..1739c0ea6 Binary files /dev/null and b/sounds/explodiumgun/expl_maghit2.ogg differ diff --git a/sounds/explodiumgun/expl_magin.ogg b/sounds/explodiumgun/expl_magin.ogg new file mode 100644 index 000000000..d2db80268 Binary files /dev/null and b/sounds/explodiumgun/expl_magin.ogg differ diff --git a/sounds/explodiumgun/expl_magout.ogg b/sounds/explodiumgun/expl_magout.ogg new file mode 100644 index 000000000..1b9f48105 Binary files /dev/null and b/sounds/explodiumgun/expl_magout.ogg differ diff --git a/sounds/explodiumgun/expl_magpin.ogg b/sounds/explodiumgun/expl_magpin.ogg new file mode 100644 index 000000000..0ffadae41 Binary files /dev/null and b/sounds/explodiumgun/expl_magpin.ogg differ diff --git a/sounds/explodiumgun/expl_select.ogg b/sounds/explodiumgun/expl_select.ogg new file mode 100644 index 000000000..c35396e62 Binary files /dev/null and b/sounds/explodiumgun/expl_select.ogg differ diff --git a/sounds/explodiumgun/expl_slideback.ogg b/sounds/explodiumgun/expl_slideback.ogg new file mode 100644 index 000000000..b87b2dec4 Binary files /dev/null and b/sounds/explodiumgun/expl_slideback.ogg differ diff --git a/sounds/explodiumgun/expl_slideforward.ogg b/sounds/explodiumgun/expl_slideforward.ogg new file mode 100644 index 000000000..4c0c1365d Binary files /dev/null and b/sounds/explodiumgun/expl_slideforward.ogg differ diff --git a/sounds/explodiumgun/expl_speen.ogg b/sounds/explodiumgun/expl_speen.ogg new file mode 100644 index 000000000..48124ee51 Binary files /dev/null and b/sounds/explodiumgun/expl_speen.ogg differ diff --git a/sounds/explodiumgun/expl_throwmag.ogg b/sounds/explodiumgun/expl_throwmag.ogg new file mode 100644 index 000000000..5a1f0dd33 Binary files /dev/null and b/sounds/explodiumgun/expl_throwmag.ogg differ diff --git a/sounds/voice/default/gethit1.ogg b/sounds/voice/default/gethit1.ogg new file mode 100644 index 000000000..875db6aa8 Binary files /dev/null and b/sounds/voice/default/gethit1.ogg differ diff --git a/sounds/voice/default/gethit10.ogg b/sounds/voice/default/gethit10.ogg new file mode 100644 index 000000000..6e4437b2c Binary files /dev/null and b/sounds/voice/default/gethit10.ogg differ diff --git a/sounds/voice/default/gethit11.ogg b/sounds/voice/default/gethit11.ogg new file mode 100644 index 000000000..dfe3725a7 Binary files /dev/null and b/sounds/voice/default/gethit11.ogg differ diff --git a/sounds/voice/default/gethit12.ogg b/sounds/voice/default/gethit12.ogg new file mode 100644 index 000000000..b19ede861 Binary files /dev/null and b/sounds/voice/default/gethit12.ogg differ diff --git a/sounds/voice/default/gethit13.ogg b/sounds/voice/default/gethit13.ogg new file mode 100644 index 000000000..6a9a11fb7 Binary files /dev/null and b/sounds/voice/default/gethit13.ogg differ diff --git a/sounds/voice/default/gethit14.ogg b/sounds/voice/default/gethit14.ogg new file mode 100644 index 000000000..340942703 Binary files /dev/null and b/sounds/voice/default/gethit14.ogg differ diff --git a/sounds/voice/default/gethit15.ogg b/sounds/voice/default/gethit15.ogg new file mode 100644 index 000000000..43d873fca Binary files /dev/null and b/sounds/voice/default/gethit15.ogg differ diff --git a/sounds/voice/default/gethit16.ogg b/sounds/voice/default/gethit16.ogg new file mode 100644 index 000000000..b1dea88a0 Binary files /dev/null and b/sounds/voice/default/gethit16.ogg differ diff --git a/sounds/voice/default/gethit17.ogg b/sounds/voice/default/gethit17.ogg new file mode 100644 index 000000000..5f2b4c539 Binary files /dev/null and b/sounds/voice/default/gethit17.ogg differ diff --git a/sounds/voice/default/gethit18.ogg b/sounds/voice/default/gethit18.ogg new file mode 100644 index 000000000..93da023a7 Binary files /dev/null and b/sounds/voice/default/gethit18.ogg differ diff --git a/sounds/voice/default/gethit2.ogg b/sounds/voice/default/gethit2.ogg new file mode 100644 index 000000000..a7091b8d8 Binary files /dev/null and b/sounds/voice/default/gethit2.ogg differ diff --git a/sounds/voice/default/gethit3.ogg b/sounds/voice/default/gethit3.ogg new file mode 100644 index 000000000..ebffc1560 Binary files /dev/null and b/sounds/voice/default/gethit3.ogg differ diff --git a/sounds/voice/default/gethit4.ogg b/sounds/voice/default/gethit4.ogg new file mode 100644 index 000000000..cb8996770 Binary files /dev/null and b/sounds/voice/default/gethit4.ogg differ diff --git a/sounds/voice/default/gethit5.ogg b/sounds/voice/default/gethit5.ogg new file mode 100644 index 000000000..c319c0335 Binary files /dev/null and b/sounds/voice/default/gethit5.ogg differ diff --git a/sounds/voice/default/gethit6.ogg b/sounds/voice/default/gethit6.ogg new file mode 100644 index 000000000..7278052e2 Binary files /dev/null and b/sounds/voice/default/gethit6.ogg differ diff --git a/sounds/voice/default/gethit7.ogg b/sounds/voice/default/gethit7.ogg new file mode 100644 index 000000000..03ac2f371 Binary files /dev/null and b/sounds/voice/default/gethit7.ogg differ diff --git a/sounds/voice/default/gethit8.ogg b/sounds/voice/default/gethit8.ogg new file mode 100644 index 000000000..30d293a72 Binary files /dev/null and b/sounds/voice/default/gethit8.ogg differ diff --git a/sounds/voice/default/gethit9.ogg b/sounds/voice/default/gethit9.ogg new file mode 100644 index 000000000..563403b20 Binary files /dev/null and b/sounds/voice/default/gethit9.ogg differ diff --git a/sounds/voice/default/subs.txt b/sounds/voice/default/subs.txt deleted file mode 100644 index 6e6e6dc3b..000000000 --- a/sounds/voice/default/subs.txt +++ /dev/null @@ -1,104 +0,0 @@ -Taken from the in-game english strings, may not match up. - -getweapon1 "Not bad... Not bad at all..." -getweapon2 "Good find..." -getweapon3 "Mine now..." -getweapon4 "Nice..." -getweapon5 "Bingo..." -getweapon6 "Hell yeah..." -getweapon7 "Excellent..." -getweapon8 "Yes..." -getweapon9 "There we go..." -getweapon10 "Perfect..." -getweapon11 "I like it..." -getweapon12 "That looks nice..." -getweapon13 "It's probably worth a fortune..." -locked1 "Don't have the key." -locked2 "Only opens with a key." -locked3 "Would need the key." -locked4 "Locked tight." -puzzfail1 "Damn." -puzzfail2 "Damn it." -puzzfail3 "No good." -puzzfail4 "Nope." -puzzfail5 "Uh uh." -puzzfail6 "Hmmm." -puzzsucc1 "Nice." -puzzsucc2 "That's it." -puzzsucc3 "Got it." -puzzsucc4 "Yes." -puzzsucc5 "Sweet." -fightstart1 "Here we go again." -fightstart2 "Let's get this show on the road." -fightstart3 "Time to die." -fightstart4 "Bring it on." -fightstart5 "You are all going to die." -fightstart6 "I've been spoiling for a fight." -fightstart7 "Let's do this." -fightstart8 "Time to get crazy! Kill 'em all!" -fightstart9 "You really don't want to start a fight with me." -fightstart10 "Let's get on with it." -fightstart11 "Kill!" -fightstart12 "This won't be hard." -fightstart13 "Let's do it." -fightstart14 "Let's do this." -fightstart15 "Let's just get this over with." -fightstart16 "Well, this will be an interesting challenge." -fightstart17 "Okay. Let's get started." -fightstart18 "Oh, this is just what I need right now..." -fightstart19 "Time to put on a show." -fightstart20 "I'm putting you down." -fightstart21 "Oh, good. Here I was afraid I'd have nothing to do." -mapstart1 "Ugh... this place smells horrible." -mapstart2 "Okay, let's get to work." -mapstart3 "Let's hurry this up." -mapstart4 "This place is all kinds of strange." -mapstart5 "I was born ready." -mapstart6 "It's a hard world. I do what I have to." -mapstart7 "No robot is superior to me." -mapstart8 "I've seen better." -mapstart9 "Okay. Let's head in." -mapstart10 "I don't want any trouble. I'm just passing through." -mapstart11 "Sorry to keep you waiting." -mapstart12 "I'll do my best." -mapstart13 "Just so we're clear: Anything good I find is mine." -mapstart14 "I bet the food here is terrible." -findsecret1 "Yeah, yeah, I'm the best." -findsecret2 "It's true. I do know my shit." -findsecret3 "What can I say? I'm good at what I do." -findsecret4 "It was no big deal." -findsecret5 "No trouble at all." -findsecret6 "It was easy." -findsecret7 "Thanks to me, yes." -findsecret8 "It was a walk in the park." -findsecret9 "It was a piece of cake." -findsecret10 "I still got it." -findsecret11 "I did good work, didn't I?" -findsecret12 "Wow, that's pretty lucky!" -scorekill1 "Good riddance." -scorekill2 "One down." -scorekill3 "Goodbye." -scorekill4 "Heh! You can't stop me." -scorekill5 "What a loser." -scorekill6 "We're done." -scorekill7 "Bye." -scorekill8 "Dead as can be." -scorekill9 "Another job done." -scorekill10 "The pleasure was all mine." -scorekill11 "How about something a little more challenging next time?" -scorekill12 "I'm glad that's over with." -scorekill13 "Well, it's over. That's that." -scorekill14 "Ugh. Just... go away." -scorekill15 "Get lost." -scorekill16 "Is that all?" -scorekill17 "Is that the best you can do?" -scorekill18 "You annoy me." -scorekill19 "Going to have to try harder than that." -scorekill20 "What? That it?" -scorekill21 "Get outta here." -scorekill22 "My pleasure." -scorekill23 "Out of my way." -scorekill24 "Get outta my way." -scorekill25 "Want some more?" -scorekill26 "Done and done." -scorekill27 "It's done." diff --git a/sprites/BLPFA0.png b/sprites/BLPFA0.png new file mode 100644 index 000000000..0b7acb4ff Binary files /dev/null and b/sprites/BLPFA0.png differ diff --git a/sprites/BSPKA0.png b/sprites/BSPKA0.png new file mode 100644 index 000000000..ca305323f Binary files /dev/null and b/sprites/BSPKA0.png differ diff --git a/sprites/BSPKB0.png b/sprites/BSPKB0.png new file mode 100644 index 000000000..e050771c4 Binary files /dev/null and b/sprites/BSPKB0.png differ diff --git a/sprites/BSPKC0.png b/sprites/BSPKC0.png new file mode 100644 index 000000000..6e6442038 Binary files /dev/null and b/sprites/BSPKC0.png differ diff --git a/sprites/BSPKD0.png b/sprites/BSPKD0.png new file mode 100644 index 000000000..ae4e4c2b7 Binary files /dev/null and b/sprites/BSPKD0.png differ diff --git a/sprites/BSPKE0.png b/sprites/BSPKE0.png new file mode 100644 index 000000000..117e75948 Binary files /dev/null and b/sprites/BSPKE0.png differ diff --git a/sprites/BSPKF0.png b/sprites/BSPKF0.png new file mode 100644 index 000000000..fceb465e6 Binary files /dev/null and b/sprites/BSPKF0.png differ diff --git a/sprites/BSPKG0.png b/sprites/BSPKG0.png new file mode 100644 index 000000000..739598f89 Binary files /dev/null and b/sprites/BSPKG0.png differ diff --git a/sprites/BSPKH0.png b/sprites/BSPKH0.png new file mode 100644 index 000000000..3d5ecae4f Binary files /dev/null and b/sprites/BSPKH0.png differ diff --git a/sprites/BSPKI0.png b/sprites/BSPKI0.png new file mode 100644 index 000000000..9110bd670 Binary files /dev/null and b/sprites/BSPKI0.png differ diff --git a/sprites/BSPKJ0.png b/sprites/BSPKJ0.png new file mode 100644 index 000000000..c9d66de71 Binary files /dev/null and b/sprites/BSPKJ0.png differ diff --git a/sprites/DUSTA0.png b/sprites/DUSTA0.png new file mode 100644 index 000000000..607787ae1 Binary files /dev/null and b/sprites/DUSTA0.png differ diff --git a/sprites/DUSTB0.png b/sprites/DUSTB0.png new file mode 100644 index 000000000..41eaabe63 Binary files /dev/null and b/sprites/DUSTB0.png differ diff --git a/sprites/DUSTC0.png b/sprites/DUSTC0.png new file mode 100644 index 000000000..d31f34669 Binary files /dev/null and b/sprites/DUSTC0.png differ diff --git a/sprites/DUSTD0.png b/sprites/DUSTD0.png new file mode 100644 index 000000000..bfc7b4056 Binary files /dev/null and b/sprites/DUSTD0.png differ diff --git a/sprites/DUSTE0.png b/sprites/DUSTE0.png new file mode 100644 index 000000000..7300e0d30 Binary files /dev/null and b/sprites/DUSTE0.png differ diff --git a/sprites/DUSTF0.png b/sprites/DUSTF0.png new file mode 100644 index 000000000..a2655c200 Binary files /dev/null and b/sprites/DUSTF0.png differ diff --git a/sprites/DUSTG0.png b/sprites/DUSTG0.png new file mode 100644 index 000000000..adf908a5d Binary files /dev/null and b/sprites/DUSTG0.png differ diff --git a/sprites/DUSTH0.png b/sprites/DUSTH0.png new file mode 100644 index 000000000..805b53adf Binary files /dev/null and b/sprites/DUSTH0.png differ diff --git a/sprites/DUSTI0.png b/sprites/DUSTI0.png new file mode 100644 index 000000000..7c3577fec Binary files /dev/null and b/sprites/DUSTI0.png differ diff --git a/sprites/DUSTJ0.png b/sprites/DUSTJ0.png new file mode 100644 index 000000000..2a6134136 Binary files /dev/null and b/sprites/DUSTJ0.png differ diff --git a/sprites/DUSTK0.png b/sprites/DUSTK0.png new file mode 100644 index 000000000..f9143bdeb Binary files /dev/null and b/sprites/DUSTK0.png differ diff --git a/sprites/DUSTL0.png b/sprites/DUSTL0.png new file mode 100644 index 000000000..15a70e890 Binary files /dev/null and b/sprites/DUSTL0.png differ diff --git a/sprites/DUSTM0.png b/sprites/DUSTM0.png new file mode 100644 index 000000000..a85083a35 Binary files /dev/null and b/sprites/DUSTM0.png differ diff --git a/sprites/DUSTN0.png b/sprites/DUSTN0.png new file mode 100644 index 000000000..96166e303 Binary files /dev/null and b/sprites/DUSTN0.png differ diff --git a/sprites/DUSTO0.png b/sprites/DUSTO0.png new file mode 100644 index 000000000..220f8d534 Binary files /dev/null and b/sprites/DUSTO0.png differ diff --git a/sprites/DUSTP0.png b/sprites/DUSTP0.png new file mode 100644 index 000000000..724009e55 Binary files /dev/null and b/sprites/DUSTP0.png differ diff --git a/sprites/DUSTQ0.png b/sprites/DUSTQ0.png new file mode 100644 index 000000000..a3e420a78 Binary files /dev/null and b/sprites/DUSTQ0.png differ diff --git a/sprites/DUSTR0.png b/sprites/DUSTR0.png new file mode 100644 index 000000000..526ba742c Binary files /dev/null and b/sprites/DUSTR0.png differ diff --git a/sprites/DUSTS0.png b/sprites/DUSTS0.png new file mode 100644 index 000000000..100ba3e3e Binary files /dev/null and b/sprites/DUSTS0.png differ diff --git a/sprites/DUSTT0.png b/sprites/DUSTT0.png new file mode 100644 index 000000000..227673b29 Binary files /dev/null and b/sprites/DUSTT0.png differ diff --git a/sprites/HEXPA0.png b/sprites/HEXPA0.png new file mode 100644 index 000000000..ac12d32e7 Binary files /dev/null and b/sprites/HEXPA0.png differ diff --git a/sprites/HEXPB0.png b/sprites/HEXPB0.png new file mode 100644 index 000000000..d0fc67b21 Binary files /dev/null and b/sprites/HEXPB0.png differ diff --git a/sprites/HEXPC0.png b/sprites/HEXPC0.png new file mode 100644 index 000000000..303d1672d Binary files /dev/null and b/sprites/HEXPC0.png differ diff --git a/sprites/HEXPD0.png b/sprites/HEXPD0.png new file mode 100644 index 000000000..15a56a157 Binary files /dev/null and b/sprites/HEXPD0.png differ diff --git a/sprites/HEXPE0.png b/sprites/HEXPE0.png new file mode 100644 index 000000000..28da7d87e Binary files /dev/null and b/sprites/HEXPE0.png differ diff --git a/sprites/HEXPF0.png b/sprites/HEXPF0.png new file mode 100644 index 000000000..a9bd34344 Binary files /dev/null and b/sprites/HEXPF0.png differ diff --git a/sprites/HEXPG0.png b/sprites/HEXPG0.png new file mode 100644 index 000000000..3896178be Binary files /dev/null and b/sprites/HEXPG0.png differ diff --git a/sprites/HEXPH0.png b/sprites/HEXPH0.png new file mode 100644 index 000000000..8d5ec00aa Binary files /dev/null and b/sprites/HEXPH0.png differ diff --git a/sprites/HEXPI0.png b/sprites/HEXPI0.png new file mode 100644 index 000000000..7d55b4a4a Binary files /dev/null and b/sprites/HEXPI0.png differ diff --git a/sprites/HEXPJ0.png b/sprites/HEXPJ0.png new file mode 100644 index 000000000..6aa47a4ec Binary files /dev/null and b/sprites/HEXPJ0.png differ diff --git a/sprites/HEXPK0.png b/sprites/HEXPK0.png new file mode 100644 index 000000000..0eb174b5d Binary files /dev/null and b/sprites/HEXPK0.png differ diff --git a/sprites/HEXPL0.png b/sprites/HEXPL0.png new file mode 100644 index 000000000..34146fb36 Binary files /dev/null and b/sprites/HEXPL0.png differ diff --git a/sprites/HEXPM0.png b/sprites/HEXPM0.png new file mode 100644 index 000000000..c68f3a238 Binary files /dev/null and b/sprites/HEXPM0.png differ diff --git a/sprites/HEXPN0.png b/sprites/HEXPN0.png new file mode 100644 index 000000000..5f209c0bc Binary files /dev/null and b/sprites/HEXPN0.png differ diff --git a/sprites/HEXPO0.png b/sprites/HEXPO0.png new file mode 100644 index 000000000..dad4dabd7 Binary files /dev/null and b/sprites/HEXPO0.png differ diff --git a/sprites/HEXPP0.png b/sprites/HEXPP0.png new file mode 100644 index 000000000..ce5bfdb14 Binary files /dev/null and b/sprites/HEXPP0.png differ diff --git a/sprites/HEXPQ0.png b/sprites/HEXPQ0.png new file mode 100644 index 000000000..e085bc602 Binary files /dev/null and b/sprites/HEXPQ0.png differ diff --git a/sprites/HEXPR0.png b/sprites/HEXPR0.png new file mode 100644 index 000000000..83fc27267 Binary files /dev/null and b/sprites/HEXPR0.png differ diff --git a/sprites/HMEXA0.png b/sprites/HMEXA0.png new file mode 100644 index 000000000..e75efe236 Binary files /dev/null and b/sprites/HMEXA0.png differ diff --git a/sprites/HMEXB0.png b/sprites/HMEXB0.png new file mode 100644 index 000000000..f54539868 Binary files /dev/null and b/sprites/HMEXB0.png differ diff --git a/sprites/HMEXC0.png b/sprites/HMEXC0.png new file mode 100644 index 000000000..ec605b2f2 Binary files /dev/null and b/sprites/HMEXC0.png differ diff --git a/sprites/HMEXD0.png b/sprites/HMEXD0.png new file mode 100644 index 000000000..7b75d522e Binary files /dev/null and b/sprites/HMEXD0.png differ diff --git a/sprites/HMEXE0.png b/sprites/HMEXE0.png new file mode 100644 index 000000000..03dcafd42 Binary files /dev/null and b/sprites/HMEXE0.png differ diff --git a/sprites/HMEXF0.png b/sprites/HMEXF0.png new file mode 100644 index 000000000..7c27b7b21 Binary files /dev/null and b/sprites/HMEXF0.png differ diff --git a/sprites/HMEXG0.png b/sprites/HMEXG0.png new file mode 100644 index 000000000..d4f28aef8 Binary files /dev/null and b/sprites/HMEXG0.png differ diff --git a/sprites/HMEXH0.png b/sprites/HMEXH0.png new file mode 100644 index 000000000..9e1bd1b98 Binary files /dev/null and b/sprites/HMEXH0.png differ diff --git a/sprites/HMEXI0.png b/sprites/HMEXI0.png new file mode 100644 index 000000000..8eaf11e73 Binary files /dev/null and b/sprites/HMEXI0.png differ diff --git a/sprites/HMEXJ0.png b/sprites/HMEXJ0.png new file mode 100644 index 000000000..570c1c637 Binary files /dev/null and b/sprites/HMEXJ0.png differ diff --git a/sprites/HMEXK0.png b/sprites/HMEXK0.png new file mode 100644 index 000000000..5f0ceb9b9 Binary files /dev/null and b/sprites/HMEXK0.png differ diff --git a/sprites/HMEXL0.png b/sprites/HMEXL0.png new file mode 100644 index 000000000..4923a729e Binary files /dev/null and b/sprites/HMEXL0.png differ diff --git a/sprites/HMEXM0.png b/sprites/HMEXM0.png new file mode 100644 index 000000000..ee9ad713d Binary files /dev/null and b/sprites/HMEXM0.png differ diff --git a/sprites/HMEXN0.png b/sprites/HMEXN0.png new file mode 100644 index 000000000..be9f5f43e Binary files /dev/null and b/sprites/HMEXN0.png differ diff --git a/sprites/HMEXO0.png b/sprites/HMEXO0.png new file mode 100644 index 000000000..118064c4e Binary files /dev/null and b/sprites/HMEXO0.png differ diff --git a/sprites/HMEXP0.png b/sprites/HMEXP0.png new file mode 100644 index 000000000..18a0ef1fd Binary files /dev/null and b/sprites/HMEXP0.png differ diff --git a/sprites/HMEXQ0.png b/sprites/HMEXQ0.png new file mode 100644 index 000000000..209f3de51 Binary files /dev/null and b/sprites/HMEXQ0.png differ diff --git a/sprites/HMEXR0.png b/sprites/HMEXR0.png new file mode 100644 index 000000000..60fbcbf12 Binary files /dev/null and b/sprites/HMEXR0.png differ diff --git a/sprites/HMEXS0.png b/sprites/HMEXS0.png new file mode 100644 index 000000000..be330e3bf Binary files /dev/null and b/sprites/HMEXS0.png differ diff --git a/sprites/HMEXT0.png b/sprites/HMEXT0.png new file mode 100644 index 000000000..20479661e Binary files /dev/null and b/sprites/HMEXT0.png differ diff --git a/sprites/HMEXU0.png b/sprites/HMEXU0.png new file mode 100644 index 000000000..4146e3d8f Binary files /dev/null and b/sprites/HMEXU0.png differ diff --git a/sprites/HMEXV0.png b/sprites/HMEXV0.png new file mode 100644 index 000000000..2110438ea Binary files /dev/null and b/sprites/HMEXV0.png differ diff --git a/sprites/HMEXW0.png b/sprites/HMEXW0.png new file mode 100644 index 000000000..319028898 Binary files /dev/null and b/sprites/HMEXW0.png differ diff --git a/sprites/HMEXX0.png b/sprites/HMEXX0.png new file mode 100644 index 000000000..47921f518 Binary files /dev/null and b/sprites/HMEXX0.png differ diff --git a/sprites/HMEXY0.png b/sprites/HMEXY0.png new file mode 100644 index 000000000..22a421a75 Binary files /dev/null and b/sprites/HMEXY0.png differ diff --git a/sprites/HMEXZ0.png b/sprites/HMEXZ0.png new file mode 100644 index 000000000..0d698f94c Binary files /dev/null and b/sprites/HMEXZ0.png differ diff --git a/sprites/HMEX[0.png b/sprites/HMEX[0.png new file mode 100644 index 000000000..c895c800f Binary files /dev/null and b/sprites/HMEX[0.png differ diff --git "a/sprites/HMEX\\0.png" "b/sprites/HMEX\\0.png" new file mode 100644 index 000000000..9ce8c0fcf Binary files /dev/null and "b/sprites/HMEX\\0.png" differ diff --git a/sprites/HMEX]0.png b/sprites/HMEX]0.png new file mode 100644 index 000000000..eeace0a36 Binary files /dev/null and b/sprites/HMEX]0.png differ diff --git a/sprites/HSPKA0.png b/sprites/HSPKA0.png new file mode 100644 index 000000000..7a02189e0 Binary files /dev/null and b/sprites/HSPKA0.png differ diff --git a/sprites/HSPKB0.png b/sprites/HSPKB0.png new file mode 100644 index 000000000..ad4427cba Binary files /dev/null and b/sprites/HSPKB0.png differ diff --git a/sprites/HSPKC0.png b/sprites/HSPKC0.png new file mode 100644 index 000000000..6f733e231 Binary files /dev/null and b/sprites/HSPKC0.png differ diff --git a/sprites/HSPKD0.png b/sprites/HSPKD0.png new file mode 100644 index 000000000..04cd2eb50 Binary files /dev/null and b/sprites/HSPKD0.png differ diff --git a/sprites/HSPKE0.png b/sprites/HSPKE0.png new file mode 100644 index 000000000..de24d3e0c Binary files /dev/null and b/sprites/HSPKE0.png differ diff --git a/sprites/HSPKF0.png b/sprites/HSPKF0.png new file mode 100644 index 000000000..aee404873 Binary files /dev/null and b/sprites/HSPKF0.png differ diff --git a/sprites/HSPKG0.png b/sprites/HSPKG0.png new file mode 100644 index 000000000..27a71d992 Binary files /dev/null and b/sprites/HSPKG0.png differ diff --git a/sprites/HSPKH0.png b/sprites/HSPKH0.png new file mode 100644 index 000000000..ecafc50aa Binary files /dev/null and b/sprites/HSPKH0.png differ diff --git a/sprites/HSPKI0.png b/sprites/HSPKI0.png new file mode 100644 index 000000000..c04389b8f Binary files /dev/null and b/sprites/HSPKI0.png differ diff --git a/sprites/HSPKJ0.png b/sprites/HSPKJ0.png new file mode 100644 index 000000000..612a95f84 Binary files /dev/null and b/sprites/HSPKJ0.png differ diff --git a/sprites/JFLBA0.png b/sprites/JFLBA0.png new file mode 100644 index 000000000..10e4b7384 Binary files /dev/null and b/sprites/JFLBA0.png differ diff --git a/sprites/JFLBB0.png b/sprites/JFLBB0.png new file mode 100644 index 000000000..28f3cfe72 Binary files /dev/null and b/sprites/JFLBB0.png differ diff --git a/sprites/JFLBC0.png b/sprites/JFLBC0.png new file mode 100644 index 000000000..4665136ca Binary files /dev/null and b/sprites/JFLBC0.png differ diff --git a/sprites/JFLBD0.png b/sprites/JFLBD0.png new file mode 100644 index 000000000..0628b64e7 Binary files /dev/null and b/sprites/JFLBD0.png differ diff --git a/sprites/JFLBE0.png b/sprites/JFLBE0.png new file mode 100644 index 000000000..b630c8c14 Binary files /dev/null and b/sprites/JFLBE0.png differ diff --git a/sprites/JFLBF0.png b/sprites/JFLBF0.png new file mode 100644 index 000000000..552886785 Binary files /dev/null and b/sprites/JFLBF0.png differ diff --git a/sprites/JFLBG0.png b/sprites/JFLBG0.png new file mode 100644 index 000000000..991ac898f Binary files /dev/null and b/sprites/JFLBG0.png differ diff --git a/sprites/JFLBH0.png b/sprites/JFLBH0.png new file mode 100644 index 000000000..8c3aa3d85 Binary files /dev/null and b/sprites/JFLBH0.png differ diff --git a/sprites/JFLRA0.png b/sprites/JFLRA0.png new file mode 100644 index 000000000..07752820e Binary files /dev/null and b/sprites/JFLRA0.png differ diff --git a/sprites/JFLRB0.png b/sprites/JFLRB0.png new file mode 100644 index 000000000..1bfa9f876 Binary files /dev/null and b/sprites/JFLRB0.png differ diff --git a/sprites/JFLRC0.png b/sprites/JFLRC0.png new file mode 100644 index 000000000..3279b3f86 Binary files /dev/null and b/sprites/JFLRC0.png differ diff --git a/sprites/JFLRD0.png b/sprites/JFLRD0.png new file mode 100644 index 000000000..bf3d01f73 Binary files /dev/null and b/sprites/JFLRD0.png differ diff --git a/sprites/JFLRE0.png b/sprites/JFLRE0.png new file mode 100644 index 000000000..6edc5dc76 Binary files /dev/null and b/sprites/JFLRE0.png differ diff --git a/sprites/JFLRF0.png b/sprites/JFLRF0.png new file mode 100644 index 000000000..a709287ac Binary files /dev/null and b/sprites/JFLRF0.png differ diff --git a/sprites/JFLRG0.png b/sprites/JFLRG0.png new file mode 100644 index 000000000..2997ee5ca Binary files /dev/null and b/sprites/JFLRG0.png differ diff --git a/sprites/JFLRH0.png b/sprites/JFLRH0.png new file mode 100644 index 000000000..356922890 Binary files /dev/null and b/sprites/JFLRH0.png differ diff --git a/sprites/JUNKA0.png b/sprites/JUNKA0.png new file mode 100644 index 000000000..5ca2770a7 Binary files /dev/null and b/sprites/JUNKA0.png differ diff --git a/sprites/JUNKB0.png b/sprites/JUNKB0.png new file mode 100644 index 000000000..6e25df3c0 Binary files /dev/null and b/sprites/JUNKB0.png differ diff --git a/sprites/JUNKC0.png b/sprites/JUNKC0.png new file mode 100644 index 000000000..e9f781a27 Binary files /dev/null and b/sprites/JUNKC0.png differ diff --git a/sprites/JUNKD0.png b/sprites/JUNKD0.png new file mode 100644 index 000000000..7ca423141 Binary files /dev/null and b/sprites/JUNKD0.png differ diff --git a/sprites/JUNKE0.png b/sprites/JUNKE0.png new file mode 100644 index 000000000..300b7579c Binary files /dev/null and b/sprites/JUNKE0.png differ diff --git a/sprites/JUNKF0.png b/sprites/JUNKF0.png new file mode 100644 index 000000000..65b8ba394 Binary files /dev/null and b/sprites/JUNKF0.png differ diff --git a/sprites/KSX1A0.png b/sprites/KSX1A0.png new file mode 100644 index 000000000..b70d860c4 Binary files /dev/null and b/sprites/KSX1A0.png differ diff --git a/sprites/KSX1B0.png b/sprites/KSX1B0.png new file mode 100644 index 000000000..dffcfb002 Binary files /dev/null and b/sprites/KSX1B0.png differ diff --git a/sprites/KSX1C0.png b/sprites/KSX1C0.png new file mode 100644 index 000000000..5d153ff77 Binary files /dev/null and b/sprites/KSX1C0.png differ diff --git a/sprites/KSX1D0.png b/sprites/KSX1D0.png new file mode 100644 index 000000000..08b8ca911 Binary files /dev/null and b/sprites/KSX1D0.png differ diff --git a/sprites/KSX1E0.png b/sprites/KSX1E0.png new file mode 100644 index 000000000..f4b11fe34 Binary files /dev/null and b/sprites/KSX1E0.png differ diff --git a/sprites/KSX1F0.png b/sprites/KSX1F0.png new file mode 100644 index 000000000..2175140a5 Binary files /dev/null and b/sprites/KSX1F0.png differ diff --git a/sprites/KSX1G0.png b/sprites/KSX1G0.png new file mode 100644 index 000000000..f5104f617 Binary files /dev/null and b/sprites/KSX1G0.png differ diff --git a/sprites/KSX1H0.png b/sprites/KSX1H0.png new file mode 100644 index 000000000..ef47406f6 Binary files /dev/null and b/sprites/KSX1H0.png differ diff --git a/sprites/KSX1I0.png b/sprites/KSX1I0.png new file mode 100644 index 000000000..6e48bed82 Binary files /dev/null and b/sprites/KSX1I0.png differ diff --git a/sprites/KSX1J0.png b/sprites/KSX1J0.png new file mode 100644 index 000000000..2af2dd74b Binary files /dev/null and b/sprites/KSX1J0.png differ diff --git a/sprites/KSX1K0.png b/sprites/KSX1K0.png new file mode 100644 index 000000000..d40446913 Binary files /dev/null and b/sprites/KSX1K0.png differ diff --git a/sprites/KSX1L0.png b/sprites/KSX1L0.png new file mode 100644 index 000000000..9ae87509f Binary files /dev/null and b/sprites/KSX1L0.png differ diff --git a/sprites/KSX1M0.png b/sprites/KSX1M0.png new file mode 100644 index 000000000..bcf76c167 Binary files /dev/null and b/sprites/KSX1M0.png differ diff --git a/sprites/KSX1N0.png b/sprites/KSX1N0.png new file mode 100644 index 000000000..4a8650486 Binary files /dev/null and b/sprites/KSX1N0.png differ diff --git a/sprites/KSX1O0.png b/sprites/KSX1O0.png new file mode 100644 index 000000000..dcef6b8b5 Binary files /dev/null and b/sprites/KSX1O0.png differ diff --git a/sprites/KSX1P0.png b/sprites/KSX1P0.png new file mode 100644 index 000000000..1ca102dce Binary files /dev/null and b/sprites/KSX1P0.png differ diff --git a/sprites/KSX1Q0.png b/sprites/KSX1Q0.png new file mode 100644 index 000000000..76f990417 Binary files /dev/null and b/sprites/KSX1Q0.png differ diff --git a/sprites/KSX1R0.png b/sprites/KSX1R0.png new file mode 100644 index 000000000..be66a33b2 Binary files /dev/null and b/sprites/KSX1R0.png differ diff --git a/sprites/KSX1S0.png b/sprites/KSX1S0.png new file mode 100644 index 000000000..501f55df6 Binary files /dev/null and b/sprites/KSX1S0.png differ diff --git a/sprites/KSX1T0.png b/sprites/KSX1T0.png new file mode 100644 index 000000000..6ade33438 Binary files /dev/null and b/sprites/KSX1T0.png differ diff --git a/sprites/KSX1U0.png b/sprites/KSX1U0.png new file mode 100644 index 000000000..0ba88f01d Binary files /dev/null and b/sprites/KSX1U0.png differ diff --git a/sprites/KSX1V0.png b/sprites/KSX1V0.png new file mode 100644 index 000000000..09d5fd3db Binary files /dev/null and b/sprites/KSX1V0.png differ diff --git a/sprites/KSX1W0.png b/sprites/KSX1W0.png new file mode 100644 index 000000000..5ad17cd39 Binary files /dev/null and b/sprites/KSX1W0.png differ diff --git a/sprites/KSX1X0.png b/sprites/KSX1X0.png new file mode 100644 index 000000000..f46679b40 Binary files /dev/null and b/sprites/KSX1X0.png differ diff --git a/sprites/KSX1Y0.png b/sprites/KSX1Y0.png new file mode 100644 index 000000000..7a52fbf05 Binary files /dev/null and b/sprites/KSX1Y0.png differ diff --git a/sprites/KSX1Z0.png b/sprites/KSX1Z0.png new file mode 100644 index 000000000..e44b3e161 Binary files /dev/null and b/sprites/KSX1Z0.png differ diff --git a/sprites/KSX1[0.png b/sprites/KSX1[0.png new file mode 100644 index 000000000..c8e398883 Binary files /dev/null and b/sprites/KSX1[0.png differ diff --git "a/sprites/KSX1\\0.png" "b/sprites/KSX1\\0.png" new file mode 100644 index 000000000..1857d8798 Binary files /dev/null and "b/sprites/KSX1\\0.png" differ diff --git a/sprites/KSX1]0.png b/sprites/KSX1]0.png new file mode 100644 index 000000000..36bb4b672 Binary files /dev/null and b/sprites/KSX1]0.png differ diff --git a/sprites/KSX2A0.png b/sprites/KSX2A0.png new file mode 100644 index 000000000..6d82c44a8 Binary files /dev/null and b/sprites/KSX2A0.png differ diff --git a/sprites/KSX2B0.png b/sprites/KSX2B0.png new file mode 100644 index 000000000..5ff4b0963 Binary files /dev/null and b/sprites/KSX2B0.png differ diff --git a/sprites/KSX2C0.png b/sprites/KSX2C0.png new file mode 100644 index 000000000..cce79bee6 Binary files /dev/null and b/sprites/KSX2C0.png differ diff --git a/sprites/KSX2D0.png b/sprites/KSX2D0.png new file mode 100644 index 000000000..8999ce046 Binary files /dev/null and b/sprites/KSX2D0.png differ diff --git a/sprites/KSX2E0.png b/sprites/KSX2E0.png new file mode 100644 index 000000000..73f32151d Binary files /dev/null and b/sprites/KSX2E0.png differ diff --git a/sprites/KSX2F0.png b/sprites/KSX2F0.png new file mode 100644 index 000000000..c1005159f Binary files /dev/null and b/sprites/KSX2F0.png differ diff --git a/sprites/KSX2G0.png b/sprites/KSX2G0.png new file mode 100644 index 000000000..09262232c Binary files /dev/null and b/sprites/KSX2G0.png differ diff --git a/sprites/KSX2H0.png b/sprites/KSX2H0.png new file mode 100644 index 000000000..2187b7414 Binary files /dev/null and b/sprites/KSX2H0.png differ diff --git a/sprites/KSX2I0.png b/sprites/KSX2I0.png new file mode 100644 index 000000000..f33542e4a Binary files /dev/null and b/sprites/KSX2I0.png differ diff --git a/sprites/KSX2J0.png b/sprites/KSX2J0.png new file mode 100644 index 000000000..977513201 Binary files /dev/null and b/sprites/KSX2J0.png differ diff --git a/sprites/KSX2K0.png b/sprites/KSX2K0.png new file mode 100644 index 000000000..4fe7982df Binary files /dev/null and b/sprites/KSX2K0.png differ diff --git a/sprites/KSX2L0.png b/sprites/KSX2L0.png new file mode 100644 index 000000000..65b9196ae Binary files /dev/null and b/sprites/KSX2L0.png differ diff --git a/sprites/KSX2M0.png b/sprites/KSX2M0.png new file mode 100644 index 000000000..50964046d Binary files /dev/null and b/sprites/KSX2M0.png differ diff --git a/sprites/KSX2N0.png b/sprites/KSX2N0.png new file mode 100644 index 000000000..57adfaea7 Binary files /dev/null and b/sprites/KSX2N0.png differ diff --git a/sprites/KSX2O0.png b/sprites/KSX2O0.png new file mode 100644 index 000000000..fdc023ede Binary files /dev/null and b/sprites/KSX2O0.png differ diff --git a/sprites/KSX2P0.png b/sprites/KSX2P0.png new file mode 100644 index 000000000..8110d6ba9 Binary files /dev/null and b/sprites/KSX2P0.png differ diff --git a/sprites/KSX2Q0.png b/sprites/KSX2Q0.png new file mode 100644 index 000000000..12409054c Binary files /dev/null and b/sprites/KSX2Q0.png differ diff --git a/sprites/KSX2R0.png b/sprites/KSX2R0.png new file mode 100644 index 000000000..45f3bfbd4 Binary files /dev/null and b/sprites/KSX2R0.png differ diff --git a/sprites/KSX2S0.png b/sprites/KSX2S0.png new file mode 100644 index 000000000..f30d4095b Binary files /dev/null and b/sprites/KSX2S0.png differ diff --git a/sprites/KSX2T0.png b/sprites/KSX2T0.png new file mode 100644 index 000000000..a07ffd997 Binary files /dev/null and b/sprites/KSX2T0.png differ diff --git a/sprites/KSX2U0.png b/sprites/KSX2U0.png new file mode 100644 index 000000000..002a60555 Binary files /dev/null and b/sprites/KSX2U0.png differ diff --git a/sprites/KSX2V0.png b/sprites/KSX2V0.png new file mode 100644 index 000000000..34cd2c30f Binary files /dev/null and b/sprites/KSX2V0.png differ diff --git a/sprites/KSX2W0.png b/sprites/KSX2W0.png new file mode 100644 index 000000000..1e465d42d Binary files /dev/null and b/sprites/KSX2W0.png differ diff --git a/sprites/KSX2X0.png b/sprites/KSX2X0.png new file mode 100644 index 000000000..5bf736842 Binary files /dev/null and b/sprites/KSX2X0.png differ diff --git a/sprites/KSX2Y0.png b/sprites/KSX2Y0.png new file mode 100644 index 000000000..0bbec42cf Binary files /dev/null and b/sprites/KSX2Y0.png differ diff --git a/sprites/KSX2Z0.png b/sprites/KSX2Z0.png new file mode 100644 index 000000000..22ba44a67 Binary files /dev/null and b/sprites/KSX2Z0.png differ diff --git a/sprites/KSX2[0.png b/sprites/KSX2[0.png new file mode 100644 index 000000000..b86e50243 Binary files /dev/null and b/sprites/KSX2[0.png differ diff --git "a/sprites/KSX2\\0.png" "b/sprites/KSX2\\0.png" new file mode 100644 index 000000000..913d40240 Binary files /dev/null and "b/sprites/KSX2\\0.png" differ diff --git a/sprites/KSX2]0.png b/sprites/KSX2]0.png new file mode 100644 index 000000000..3d8a03bb1 Binary files /dev/null and b/sprites/KSX2]0.png differ diff --git a/sprites/KSX3A0.png b/sprites/KSX3A0.png new file mode 100644 index 000000000..7377f56ab Binary files /dev/null and b/sprites/KSX3A0.png differ diff --git a/sprites/KSX3B0.png b/sprites/KSX3B0.png new file mode 100644 index 000000000..fd18188b6 Binary files /dev/null and b/sprites/KSX3B0.png differ diff --git a/sprites/KSX3C0.png b/sprites/KSX3C0.png new file mode 100644 index 000000000..5cf0f7bfc Binary files /dev/null and b/sprites/KSX3C0.png differ diff --git a/sprites/KSX3D0.png b/sprites/KSX3D0.png new file mode 100644 index 000000000..c05b0ad5b Binary files /dev/null and b/sprites/KSX3D0.png differ diff --git a/sprites/KSX3E0.png b/sprites/KSX3E0.png new file mode 100644 index 000000000..09753d295 Binary files /dev/null and b/sprites/KSX3E0.png differ diff --git a/sprites/KSX3F0.png b/sprites/KSX3F0.png new file mode 100644 index 000000000..90a2f37ba Binary files /dev/null and b/sprites/KSX3F0.png differ diff --git a/sprites/KSX3G0.png b/sprites/KSX3G0.png new file mode 100644 index 000000000..53473eca7 Binary files /dev/null and b/sprites/KSX3G0.png differ diff --git a/sprites/KSX3H0.png b/sprites/KSX3H0.png new file mode 100644 index 000000000..1e8c7984f Binary files /dev/null and b/sprites/KSX3H0.png differ diff --git a/sprites/KSX3I0.png b/sprites/KSX3I0.png new file mode 100644 index 000000000..03f1c1316 Binary files /dev/null and b/sprites/KSX3I0.png differ diff --git a/sprites/KSX3J0.png b/sprites/KSX3J0.png new file mode 100644 index 000000000..cb4a954e8 Binary files /dev/null and b/sprites/KSX3J0.png differ diff --git a/sprites/KSX3K0.png b/sprites/KSX3K0.png new file mode 100644 index 000000000..839d75fda Binary files /dev/null and b/sprites/KSX3K0.png differ diff --git a/sprites/KSX3L0.png b/sprites/KSX3L0.png new file mode 100644 index 000000000..f03e17570 Binary files /dev/null and b/sprites/KSX3L0.png differ diff --git a/sprites/KSX3M0.png b/sprites/KSX3M0.png new file mode 100644 index 000000000..7b6759b9c Binary files /dev/null and b/sprites/KSX3M0.png differ diff --git a/sprites/KSX3N0.png b/sprites/KSX3N0.png new file mode 100644 index 000000000..36afcfc84 Binary files /dev/null and b/sprites/KSX3N0.png differ diff --git a/sprites/KSX3O0.png b/sprites/KSX3O0.png new file mode 100644 index 000000000..694875180 Binary files /dev/null and b/sprites/KSX3O0.png differ diff --git a/sprites/KSX3P0.png b/sprites/KSX3P0.png new file mode 100644 index 000000000..b2dd64817 Binary files /dev/null and b/sprites/KSX3P0.png differ diff --git a/sprites/KSX3Q0.png b/sprites/KSX3Q0.png new file mode 100644 index 000000000..a0e146854 Binary files /dev/null and b/sprites/KSX3Q0.png differ diff --git a/sprites/KSX3R0.png b/sprites/KSX3R0.png new file mode 100644 index 000000000..5c5f63020 Binary files /dev/null and b/sprites/KSX3R0.png differ diff --git a/sprites/KSX3S0.png b/sprites/KSX3S0.png new file mode 100644 index 000000000..1507b294a Binary files /dev/null and b/sprites/KSX3S0.png differ diff --git a/sprites/KSX3T0.png b/sprites/KSX3T0.png new file mode 100644 index 000000000..8bcf9d540 Binary files /dev/null and b/sprites/KSX3T0.png differ diff --git a/sprites/KSX3U0.png b/sprites/KSX3U0.png new file mode 100644 index 000000000..3ddf2a8be Binary files /dev/null and b/sprites/KSX3U0.png differ diff --git a/sprites/KSX3V0.png b/sprites/KSX3V0.png new file mode 100644 index 000000000..0d9162de5 Binary files /dev/null and b/sprites/KSX3V0.png differ diff --git a/sprites/KSX3W0.png b/sprites/KSX3W0.png new file mode 100644 index 000000000..cf25b7397 Binary files /dev/null and b/sprites/KSX3W0.png differ diff --git a/sprites/KSX3X0.png b/sprites/KSX3X0.png new file mode 100644 index 000000000..2ad335c43 Binary files /dev/null and b/sprites/KSX3X0.png differ diff --git a/sprites/KSX3Y0.png b/sprites/KSX3Y0.png new file mode 100644 index 000000000..c0565e556 Binary files /dev/null and b/sprites/KSX3Y0.png differ diff --git a/sprites/KSX3Z0.png b/sprites/KSX3Z0.png new file mode 100644 index 000000000..c15c3db39 Binary files /dev/null and b/sprites/KSX3Z0.png differ diff --git a/sprites/KSX3[0.png b/sprites/KSX3[0.png new file mode 100644 index 000000000..fcc2bfb8d Binary files /dev/null and b/sprites/KSX3[0.png differ diff --git "a/sprites/KSX3\\0.png" "b/sprites/KSX3\\0.png" new file mode 100644 index 000000000..3a7bb9f27 Binary files /dev/null and "b/sprites/KSX3\\0.png" differ diff --git a/sprites/KSX3]0.png b/sprites/KSX3]0.png new file mode 100644 index 000000000..befe2f75f Binary files /dev/null and b/sprites/KSX3]0.png differ diff --git a/sprites/MHALA0.png b/sprites/MHALA0.png new file mode 100644 index 000000000..bf68f503c Binary files /dev/null and b/sprites/MHALA0.png differ diff --git a/sprites/MOTRA0.png b/sprites/MOTRA0.png new file mode 100644 index 000000000..f958b35fb Binary files /dev/null and b/sprites/MOTRA0.png differ diff --git a/sprites/MOTRB0.png b/sprites/MOTRB0.png new file mode 100644 index 000000000..95110f429 Binary files /dev/null and b/sprites/MOTRB0.png differ diff --git a/sprites/MOTRC0.png b/sprites/MOTRC0.png new file mode 100644 index 000000000..eaebf9ed0 Binary files /dev/null and b/sprites/MOTRC0.png differ diff --git a/sprites/MOTRD0.png b/sprites/MOTRD0.png new file mode 100644 index 000000000..5b9cf3126 Binary files /dev/null and b/sprites/MOTRD0.png differ diff --git a/sprites/MOTRE0.png b/sprites/MOTRE0.png new file mode 100644 index 000000000..73a821a7e Binary files /dev/null and b/sprites/MOTRE0.png differ diff --git a/sprites/MOTRF0.png b/sprites/MOTRF0.png new file mode 100644 index 000000000..cd976d206 Binary files /dev/null and b/sprites/MOTRF0.png differ diff --git a/sprites/MOTRG0.png b/sprites/MOTRG0.png new file mode 100644 index 000000000..fe0174e06 Binary files /dev/null and b/sprites/MOTRG0.png differ diff --git a/sprites/MOTRH0.png b/sprites/MOTRH0.png new file mode 100644 index 000000000..a643e59c1 Binary files /dev/null and b/sprites/MOTRH0.png differ diff --git a/sprites/MOTRI0.png b/sprites/MOTRI0.png new file mode 100644 index 000000000..39dc0c417 Binary files /dev/null and b/sprites/MOTRI0.png differ diff --git a/sprites/MOXPA0.png b/sprites/MOXPA0.png new file mode 100644 index 000000000..f9f16f36d Binary files /dev/null and b/sprites/MOXPA0.png differ diff --git a/sprites/MOXPB0.png b/sprites/MOXPB0.png new file mode 100644 index 000000000..33222c7c3 Binary files /dev/null and b/sprites/MOXPB0.png differ diff --git a/sprites/MOXPC0.png b/sprites/MOXPC0.png new file mode 100644 index 000000000..1b1d1138c Binary files /dev/null and b/sprites/MOXPC0.png differ diff --git a/sprites/MOXPD0.png b/sprites/MOXPD0.png new file mode 100644 index 000000000..ea656c81a Binary files /dev/null and b/sprites/MOXPD0.png differ diff --git a/sprites/MOXPE0.png b/sprites/MOXPE0.png new file mode 100644 index 000000000..db934266d Binary files /dev/null and b/sprites/MOXPE0.png differ diff --git a/sprites/MOXPF0.png b/sprites/MOXPF0.png new file mode 100644 index 000000000..d6d49bf44 Binary files /dev/null and b/sprites/MOXPF0.png differ diff --git a/sprites/MOXPG0.png b/sprites/MOXPG0.png new file mode 100644 index 000000000..04b784b31 Binary files /dev/null and b/sprites/MOXPG0.png differ diff --git a/sprites/MOXPH0.png b/sprites/MOXPH0.png new file mode 100644 index 000000000..2ac7ba444 Binary files /dev/null and b/sprites/MOXPH0.png differ diff --git a/sprites/MOXPI0.png b/sprites/MOXPI0.png new file mode 100644 index 000000000..9d639fa0f Binary files /dev/null and b/sprites/MOXPI0.png differ diff --git a/sprites/MOXPJ0.png b/sprites/MOXPJ0.png new file mode 100644 index 000000000..0aaf4d269 Binary files /dev/null and b/sprites/MOXPJ0.png differ diff --git a/sprites/MOXPK0.png b/sprites/MOXPK0.png new file mode 100644 index 000000000..6e2b7e399 Binary files /dev/null and b/sprites/MOXPK0.png differ diff --git a/sprites/MOXPL0.png b/sprites/MOXPL0.png new file mode 100644 index 000000000..f9ceffe48 Binary files /dev/null and b/sprites/MOXPL0.png differ diff --git a/sprites/MOXPM0.png b/sprites/MOXPM0.png new file mode 100644 index 000000000..67ced0968 Binary files /dev/null and b/sprites/MOXPM0.png differ diff --git a/sprites/MOXPN0.png b/sprites/MOXPN0.png new file mode 100644 index 000000000..cf46ec662 Binary files /dev/null and b/sprites/MOXPN0.png differ diff --git a/sprites/MOXPO0.png b/sprites/MOXPO0.png new file mode 100644 index 000000000..9a5f2b101 Binary files /dev/null and b/sprites/MOXPO0.png differ diff --git a/sprites/MOXPP0.png b/sprites/MOXPP0.png new file mode 100644 index 000000000..39e013308 Binary files /dev/null and b/sprites/MOXPP0.png differ diff --git a/sprites/MOXPQ0.png b/sprites/MOXPQ0.png new file mode 100644 index 000000000..a1b81f9f8 Binary files /dev/null and b/sprites/MOXPQ0.png differ diff --git a/sprites/MOXPR0.png b/sprites/MOXPR0.png new file mode 100644 index 000000000..5c25db51f Binary files /dev/null and b/sprites/MOXPR0.png differ diff --git a/sprites/MOXPS0.png b/sprites/MOXPS0.png new file mode 100644 index 000000000..25295c548 Binary files /dev/null and b/sprites/MOXPS0.png differ diff --git a/sprites/MOXPT0.png b/sprites/MOXPT0.png new file mode 100644 index 000000000..f352b817c Binary files /dev/null and b/sprites/MOXPT0.png differ diff --git a/sprites/MOXPU0.png b/sprites/MOXPU0.png new file mode 100644 index 000000000..8029a5e83 Binary files /dev/null and b/sprites/MOXPU0.png differ diff --git a/sprites/MOXPV0.png b/sprites/MOXPV0.png new file mode 100644 index 000000000..e6f5a43b4 Binary files /dev/null and b/sprites/MOXPV0.png differ diff --git a/sprites/MOXPW0.png b/sprites/MOXPW0.png new file mode 100644 index 000000000..aa02495ae Binary files /dev/null and b/sprites/MOXPW0.png differ diff --git a/sprites/MOXPX0.png b/sprites/MOXPX0.png new file mode 100644 index 000000000..68d236fb1 Binary files /dev/null and b/sprites/MOXPX0.png differ diff --git a/sprites/MOXPY0.png b/sprites/MOXPY0.png new file mode 100644 index 000000000..c269c83f3 Binary files /dev/null and b/sprites/MOXPY0.png differ diff --git a/sprites/MOXPZ0.png b/sprites/MOXPZ0.png new file mode 100644 index 000000000..19e5178a9 Binary files /dev/null and b/sprites/MOXPZ0.png differ diff --git a/sprites/MOXP[0.png b/sprites/MOXP[0.png new file mode 100644 index 000000000..a6421cb02 Binary files /dev/null and b/sprites/MOXP[0.png differ diff --git "a/sprites/MOXP\\0.png" "b/sprites/MOXP\\0.png" new file mode 100644 index 000000000..c54ddbba1 Binary files /dev/null and "b/sprites/MOXP\\0.png" differ diff --git a/sprites/QSM6A0.png b/sprites/QSM6A0.png new file mode 100644 index 000000000..c3c435404 Binary files /dev/null and b/sprites/QSM6A0.png differ diff --git a/sprites/QSM6B0.png b/sprites/QSM6B0.png new file mode 100644 index 000000000..38e0449b3 Binary files /dev/null and b/sprites/QSM6B0.png differ diff --git a/sprites/QSM6C0.png b/sprites/QSM6C0.png new file mode 100644 index 000000000..c1b8341c8 Binary files /dev/null and b/sprites/QSM6C0.png differ diff --git a/sprites/QSM6D0.png b/sprites/QSM6D0.png new file mode 100644 index 000000000..4d1ffe76f Binary files /dev/null and b/sprites/QSM6D0.png differ diff --git a/sprites/QSM6E0.png b/sprites/QSM6E0.png new file mode 100644 index 000000000..595161496 Binary files /dev/null and b/sprites/QSM6E0.png differ diff --git a/sprites/QSM6F0.png b/sprites/QSM6F0.png new file mode 100644 index 000000000..295bb2e11 Binary files /dev/null and b/sprites/QSM6F0.png differ diff --git a/sprites/QSM6G0.png b/sprites/QSM6G0.png new file mode 100644 index 000000000..03a240186 Binary files /dev/null and b/sprites/QSM6G0.png differ diff --git a/sprites/QSM6H0.png b/sprites/QSM6H0.png new file mode 100644 index 000000000..f8da61de9 Binary files /dev/null and b/sprites/QSM6H0.png differ diff --git a/sprites/QSM6I0.png b/sprites/QSM6I0.png new file mode 100644 index 000000000..4d14b6c3c Binary files /dev/null and b/sprites/QSM6I0.png differ diff --git a/sprites/QSM6J0.png b/sprites/QSM6J0.png new file mode 100644 index 000000000..90562e445 Binary files /dev/null and b/sprites/QSM6J0.png differ diff --git a/sprites/QSM6K0.png b/sprites/QSM6K0.png new file mode 100644 index 000000000..56597912f Binary files /dev/null and b/sprites/QSM6K0.png differ diff --git a/sprites/QSM6L0.png b/sprites/QSM6L0.png new file mode 100644 index 000000000..3dd87cb1d Binary files /dev/null and b/sprites/QSM6L0.png differ diff --git a/sprites/QSM6M0.png b/sprites/QSM6M0.png new file mode 100644 index 000000000..f13acfd0e Binary files /dev/null and b/sprites/QSM6M0.png differ diff --git a/sprites/QSM6N0.png b/sprites/QSM6N0.png new file mode 100644 index 000000000..a1aa2260d Binary files /dev/null and b/sprites/QSM6N0.png differ diff --git a/sprites/QSM6O0.png b/sprites/QSM6O0.png new file mode 100644 index 000000000..318ced7bf Binary files /dev/null and b/sprites/QSM6O0.png differ diff --git a/sprites/QSM6P0.png b/sprites/QSM6P0.png new file mode 100644 index 000000000..802d5d342 Binary files /dev/null and b/sprites/QSM6P0.png differ diff --git a/sprites/QSM6Q0.png b/sprites/QSM6Q0.png new file mode 100644 index 000000000..1621375ff Binary files /dev/null and b/sprites/QSM6Q0.png differ diff --git a/sprites/QSM6R0.png b/sprites/QSM6R0.png new file mode 100644 index 000000000..2be3ff732 Binary files /dev/null and b/sprites/QSM6R0.png differ diff --git a/sprites/SDSTA0.png b/sprites/SDSTA0.png new file mode 100644 index 000000000..edba7ea73 Binary files /dev/null and b/sprites/SDSTA0.png differ diff --git a/sprites/SSPKA0.png b/sprites/SSPKA0.png new file mode 100644 index 000000000..df14c48a4 Binary files /dev/null and b/sprites/SSPKA0.png differ diff --git a/sprites/XBUBA0.png b/sprites/XBUBA0.png new file mode 100644 index 000000000..b6b3ca149 Binary files /dev/null and b/sprites/XBUBA0.png differ diff --git a/sprites/XBUBB0.png b/sprites/XBUBB0.png new file mode 100644 index 000000000..5029f92bc Binary files /dev/null and b/sprites/XBUBB0.png differ diff --git a/sprites/XBUBC0.png b/sprites/XBUBC0.png new file mode 100644 index 000000000..f02377351 Binary files /dev/null and b/sprites/XBUBC0.png differ diff --git a/sprites/XBUBD0.png b/sprites/XBUBD0.png new file mode 100644 index 000000000..a97db7f4c Binary files /dev/null and b/sprites/XBUBD0.png differ diff --git a/sprites/XBUBE0.png b/sprites/XBUBE0.png new file mode 100644 index 000000000..1dfe53469 Binary files /dev/null and b/sprites/XBUBE0.png differ diff --git a/sprites/XBUBF0.png b/sprites/XBUBF0.png new file mode 100644 index 000000000..c03c3f99a Binary files /dev/null and b/sprites/XBUBF0.png differ diff --git a/sprites/XBUBG0.png b/sprites/XBUBG0.png new file mode 100644 index 000000000..557c76464 Binary files /dev/null and b/sprites/XBUBG0.png differ diff --git a/sprites/XBUBH0.png b/sprites/XBUBH0.png new file mode 100644 index 000000000..b1c8e2f76 Binary files /dev/null and b/sprites/XBUBH0.png differ diff --git a/sprites/XBUBI0.png b/sprites/XBUBI0.png new file mode 100644 index 000000000..446f08893 Binary files /dev/null and b/sprites/XBUBI0.png differ diff --git a/sprites/XBUBJ0.png b/sprites/XBUBJ0.png new file mode 100644 index 000000000..e3dd89dc9 Binary files /dev/null and b/sprites/XBUBJ0.png differ diff --git a/sprites/XBUBK0.png b/sprites/XBUBK0.png new file mode 100644 index 000000000..5e46a54fe Binary files /dev/null and b/sprites/XBUBK0.png differ diff --git a/sprites/XBUBL0.png b/sprites/XBUBL0.png new file mode 100644 index 000000000..6e0ba71b3 Binary files /dev/null and b/sprites/XBUBL0.png differ diff --git a/sprites/XBUBM0.png b/sprites/XBUBM0.png new file mode 100644 index 000000000..73e603269 Binary files /dev/null and b/sprites/XBUBM0.png differ diff --git a/sprites/XBUBN0.png b/sprites/XBUBN0.png new file mode 100644 index 000000000..64647e05e Binary files /dev/null and b/sprites/XBUBN0.png differ diff --git a/sprites/XBUBO0.png b/sprites/XBUBO0.png new file mode 100644 index 000000000..762943236 Binary files /dev/null and b/sprites/XBUBO0.png differ diff --git a/sprites/XBUBP0.png b/sprites/XBUBP0.png new file mode 100644 index 000000000..c0a908d09 Binary files /dev/null and b/sprites/XBUBP0.png differ diff --git a/sprites/XBUBQ0.png b/sprites/XBUBQ0.png new file mode 100644 index 000000000..b340c2fda Binary files /dev/null and b/sprites/XBUBQ0.png differ diff --git a/sprites/XBUBR0.png b/sprites/XBUBR0.png new file mode 100644 index 000000000..417f062c7 Binary files /dev/null and b/sprites/XBUBR0.png differ diff --git a/sprites/XBUBS0.png b/sprites/XBUBS0.png new file mode 100644 index 000000000..77f135d80 Binary files /dev/null and b/sprites/XBUBS0.png differ diff --git a/sprites/XBUBT0.png b/sprites/XBUBT0.png new file mode 100644 index 000000000..61dcce453 Binary files /dev/null and b/sprites/XBUBT0.png differ diff --git a/sprites/XEX1A0.png b/sprites/XEX1A0.png new file mode 100644 index 000000000..d9486da4b Binary files /dev/null and b/sprites/XEX1A0.png differ diff --git a/sprites/XEX1B0.png b/sprites/XEX1B0.png new file mode 100644 index 000000000..9b49cfa27 Binary files /dev/null and b/sprites/XEX1B0.png differ diff --git a/sprites/XEX1C0.png b/sprites/XEX1C0.png new file mode 100644 index 000000000..f5bc85870 Binary files /dev/null and b/sprites/XEX1C0.png differ diff --git a/sprites/XEX1D0.png b/sprites/XEX1D0.png new file mode 100644 index 000000000..709e2def5 Binary files /dev/null and b/sprites/XEX1D0.png differ diff --git a/sprites/XEX1E0.png b/sprites/XEX1E0.png new file mode 100644 index 000000000..ebf942c07 Binary files /dev/null and b/sprites/XEX1E0.png differ diff --git a/sprites/XEX1F0.png b/sprites/XEX1F0.png new file mode 100644 index 000000000..19fe197b4 Binary files /dev/null and b/sprites/XEX1F0.png differ diff --git a/sprites/XEX1G0.png b/sprites/XEX1G0.png new file mode 100644 index 000000000..4401adc5a Binary files /dev/null and b/sprites/XEX1G0.png differ diff --git a/sprites/XEX1H0.png b/sprites/XEX1H0.png new file mode 100644 index 000000000..5073c405b Binary files /dev/null and b/sprites/XEX1H0.png differ diff --git a/sprites/XEX1I0.png b/sprites/XEX1I0.png new file mode 100644 index 000000000..f1c7082dc Binary files /dev/null and b/sprites/XEX1I0.png differ diff --git a/sprites/XEX1J0.png b/sprites/XEX1J0.png new file mode 100644 index 000000000..f77c40bbb Binary files /dev/null and b/sprites/XEX1J0.png differ diff --git a/sprites/XEX1K0.png b/sprites/XEX1K0.png new file mode 100644 index 000000000..6d8ee9945 Binary files /dev/null and b/sprites/XEX1K0.png differ diff --git a/sprites/XEX1L0.png b/sprites/XEX1L0.png new file mode 100644 index 000000000..acb11a761 Binary files /dev/null and b/sprites/XEX1L0.png differ diff --git a/sprites/XEX1M0.png b/sprites/XEX1M0.png new file mode 100644 index 000000000..676586a0a Binary files /dev/null and b/sprites/XEX1M0.png differ diff --git a/sprites/XEX1N0.png b/sprites/XEX1N0.png new file mode 100644 index 000000000..0d84fdaa3 Binary files /dev/null and b/sprites/XEX1N0.png differ diff --git a/sprites/XEX1O0.png b/sprites/XEX1O0.png new file mode 100644 index 000000000..ab4ab797d Binary files /dev/null and b/sprites/XEX1O0.png differ diff --git a/sprites/XEX1P0.png b/sprites/XEX1P0.png new file mode 100644 index 000000000..c8321720e Binary files /dev/null and b/sprites/XEX1P0.png differ diff --git a/sprites/XEX1Q0.png b/sprites/XEX1Q0.png new file mode 100644 index 000000000..55bc41c3e Binary files /dev/null and b/sprites/XEX1Q0.png differ diff --git a/sprites/XEX1R0.png b/sprites/XEX1R0.png new file mode 100644 index 000000000..3f539d120 Binary files /dev/null and b/sprites/XEX1R0.png differ diff --git a/sprites/XEX1S0.png b/sprites/XEX1S0.png new file mode 100644 index 000000000..77d4da269 Binary files /dev/null and b/sprites/XEX1S0.png differ diff --git a/sprites/XEX1T0.png b/sprites/XEX1T0.png new file mode 100644 index 000000000..b2ac9709b Binary files /dev/null and b/sprites/XEX1T0.png differ diff --git a/sprites/XEX1U0.png b/sprites/XEX1U0.png new file mode 100644 index 000000000..6af701b20 Binary files /dev/null and b/sprites/XEX1U0.png differ diff --git a/sprites/XEX1V0.png b/sprites/XEX1V0.png new file mode 100644 index 000000000..e6aa76749 Binary files /dev/null and b/sprites/XEX1V0.png differ diff --git a/sprites/XEX1W0.png b/sprites/XEX1W0.png new file mode 100644 index 000000000..a258bd250 Binary files /dev/null and b/sprites/XEX1W0.png differ diff --git a/sprites/XEX1X0.png b/sprites/XEX1X0.png new file mode 100644 index 000000000..4aeb32ea4 Binary files /dev/null and b/sprites/XEX1X0.png differ diff --git a/sprites/XEX1Y0.png b/sprites/XEX1Y0.png new file mode 100644 index 000000000..2414c7fcc Binary files /dev/null and b/sprites/XEX1Y0.png differ diff --git a/sprites/XEX1Z0.png b/sprites/XEX1Z0.png new file mode 100644 index 000000000..f27793077 Binary files /dev/null and b/sprites/XEX1Z0.png differ diff --git a/sprites/XEX1[0.png b/sprites/XEX1[0.png new file mode 100644 index 000000000..45ea6a964 Binary files /dev/null and b/sprites/XEX1[0.png differ diff --git "a/sprites/XEX1\\0.png" "b/sprites/XEX1\\0.png" new file mode 100644 index 000000000..2444c7ae4 Binary files /dev/null and "b/sprites/XEX1\\0.png" differ diff --git a/sprites/XEX2A0.png b/sprites/XEX2A0.png new file mode 100644 index 000000000..4f157dc27 Binary files /dev/null and b/sprites/XEX2A0.png differ diff --git a/sprites/XEX2B0.png b/sprites/XEX2B0.png new file mode 100644 index 000000000..8b94401bf Binary files /dev/null and b/sprites/XEX2B0.png differ diff --git a/sprites/XEX2C0.png b/sprites/XEX2C0.png new file mode 100644 index 000000000..b041f23e2 Binary files /dev/null and b/sprites/XEX2C0.png differ diff --git a/sprites/XEX2D0.png b/sprites/XEX2D0.png new file mode 100644 index 000000000..763dc7441 Binary files /dev/null and b/sprites/XEX2D0.png differ diff --git a/sprites/XEX2E0.png b/sprites/XEX2E0.png new file mode 100644 index 000000000..3bbd71916 Binary files /dev/null and b/sprites/XEX2E0.png differ diff --git a/sprites/XEX2F0.png b/sprites/XEX2F0.png new file mode 100644 index 000000000..667b43edc Binary files /dev/null and b/sprites/XEX2F0.png differ diff --git a/sprites/XEX2G0.png b/sprites/XEX2G0.png new file mode 100644 index 000000000..32ed265c2 Binary files /dev/null and b/sprites/XEX2G0.png differ diff --git a/sprites/XEX2H0.png b/sprites/XEX2H0.png new file mode 100644 index 000000000..0bca69724 Binary files /dev/null and b/sprites/XEX2H0.png differ diff --git a/sprites/XEX2I0.png b/sprites/XEX2I0.png new file mode 100644 index 000000000..51292205b Binary files /dev/null and b/sprites/XEX2I0.png differ diff --git a/sprites/XEX2J0.png b/sprites/XEX2J0.png new file mode 100644 index 000000000..79576d299 Binary files /dev/null and b/sprites/XEX2J0.png differ diff --git a/sprites/XEX2K0.png b/sprites/XEX2K0.png new file mode 100644 index 000000000..4aef2307f Binary files /dev/null and b/sprites/XEX2K0.png differ diff --git a/sprites/XEX2L0.png b/sprites/XEX2L0.png new file mode 100644 index 000000000..3d4af444b Binary files /dev/null and b/sprites/XEX2L0.png differ diff --git a/sprites/XEX2M0.png b/sprites/XEX2M0.png new file mode 100644 index 000000000..888995b77 Binary files /dev/null and b/sprites/XEX2M0.png differ diff --git a/sprites/XEX2N0.png b/sprites/XEX2N0.png new file mode 100644 index 000000000..b7287441d Binary files /dev/null and b/sprites/XEX2N0.png differ diff --git a/sprites/XEX2O0.png b/sprites/XEX2O0.png new file mode 100644 index 000000000..da2ece909 Binary files /dev/null and b/sprites/XEX2O0.png differ diff --git a/sprites/XEX2P0.png b/sprites/XEX2P0.png new file mode 100644 index 000000000..26c4f1bbf Binary files /dev/null and b/sprites/XEX2P0.png differ diff --git a/sprites/XEX2Q0.png b/sprites/XEX2Q0.png new file mode 100644 index 000000000..57d5369ab Binary files /dev/null and b/sprites/XEX2Q0.png differ diff --git a/sprites/XEX2R0.png b/sprites/XEX2R0.png new file mode 100644 index 000000000..39611e8de Binary files /dev/null and b/sprites/XEX2R0.png differ diff --git a/sprites/XEX2S0.png b/sprites/XEX2S0.png new file mode 100644 index 000000000..1792f42e1 Binary files /dev/null and b/sprites/XEX2S0.png differ diff --git a/sprites/XEX3A0.png b/sprites/XEX3A0.png new file mode 100644 index 000000000..09c907dae Binary files /dev/null and b/sprites/XEX3A0.png differ diff --git a/sprites/XEX3B0.png b/sprites/XEX3B0.png new file mode 100644 index 000000000..b8d0c8ee3 Binary files /dev/null and b/sprites/XEX3B0.png differ diff --git a/sprites/XEX3C0.png b/sprites/XEX3C0.png new file mode 100644 index 000000000..fd3f9f742 Binary files /dev/null and b/sprites/XEX3C0.png differ diff --git a/sprites/XEX3D0.png b/sprites/XEX3D0.png new file mode 100644 index 000000000..150ce5abc Binary files /dev/null and b/sprites/XEX3D0.png differ diff --git a/sprites/XEX3E0.png b/sprites/XEX3E0.png new file mode 100644 index 000000000..da3eaf2ac Binary files /dev/null and b/sprites/XEX3E0.png differ diff --git a/sprites/XEX3F0.png b/sprites/XEX3F0.png new file mode 100644 index 000000000..afc62463a Binary files /dev/null and b/sprites/XEX3F0.png differ diff --git a/sprites/XEX3G0.png b/sprites/XEX3G0.png new file mode 100644 index 000000000..9d4bb07d4 Binary files /dev/null and b/sprites/XEX3G0.png differ diff --git a/sprites/XEX3H0.png b/sprites/XEX3H0.png new file mode 100644 index 000000000..0ec4ba702 Binary files /dev/null and b/sprites/XEX3H0.png differ diff --git a/sprites/XEX3I0.png b/sprites/XEX3I0.png new file mode 100644 index 000000000..1f41ae1ad Binary files /dev/null and b/sprites/XEX3I0.png differ diff --git a/sprites/XEX3J0.png b/sprites/XEX3J0.png new file mode 100644 index 000000000..fbbdad0f8 Binary files /dev/null and b/sprites/XEX3J0.png differ diff --git a/sprites/XEX3K0.png b/sprites/XEX3K0.png new file mode 100644 index 000000000..7dd609e68 Binary files /dev/null and b/sprites/XEX3K0.png differ diff --git a/sprites/XEX3L0.png b/sprites/XEX3L0.png new file mode 100644 index 000000000..88a825011 Binary files /dev/null and b/sprites/XEX3L0.png differ diff --git a/sprites/XEX3M0.png b/sprites/XEX3M0.png new file mode 100644 index 000000000..10b32386b Binary files /dev/null and b/sprites/XEX3M0.png differ diff --git a/sprites/XEX3N0.png b/sprites/XEX3N0.png new file mode 100644 index 000000000..654105f4a Binary files /dev/null and b/sprites/XEX3N0.png differ diff --git a/sprites/XEX3O0.png b/sprites/XEX3O0.png new file mode 100644 index 000000000..d47b0c005 Binary files /dev/null and b/sprites/XEX3O0.png differ diff --git a/sprites/XEX3P0.png b/sprites/XEX3P0.png new file mode 100644 index 000000000..d95405c28 Binary files /dev/null and b/sprites/XEX3P0.png differ diff --git a/sprites/XEX3Q0.png b/sprites/XEX3Q0.png new file mode 100644 index 000000000..d619220f1 Binary files /dev/null and b/sprites/XEX3Q0.png differ diff --git a/sprites/XEX3R0.png b/sprites/XEX3R0.png new file mode 100644 index 000000000..67cb0197d Binary files /dev/null and b/sprites/XEX3R0.png differ diff --git a/sprites/XEX3S0.png b/sprites/XEX3S0.png new file mode 100644 index 000000000..6901c1a41 Binary files /dev/null and b/sprites/XEX3S0.png differ diff --git a/sprites/XFLMA0.png b/sprites/XFLMA0.png new file mode 100644 index 000000000..f1d3cb3bd Binary files /dev/null and b/sprites/XFLMA0.png differ diff --git a/sprites/XFLMB0.png b/sprites/XFLMB0.png new file mode 100644 index 000000000..3096ee36a Binary files /dev/null and b/sprites/XFLMB0.png differ diff --git a/sprites/XFLMC0.png b/sprites/XFLMC0.png new file mode 100644 index 000000000..4fc3ca798 Binary files /dev/null and b/sprites/XFLMC0.png differ diff --git a/sprites/XFLMD0.png b/sprites/XFLMD0.png new file mode 100644 index 000000000..a4fe45ec6 Binary files /dev/null and b/sprites/XFLMD0.png differ diff --git a/sprites/XFLME0.png b/sprites/XFLME0.png new file mode 100644 index 000000000..e3285cec6 Binary files /dev/null and b/sprites/XFLME0.png differ diff --git a/sprites/XFLMF0.png b/sprites/XFLMF0.png new file mode 100644 index 000000000..29dc0246b Binary files /dev/null and b/sprites/XFLMF0.png differ diff --git a/sprites/XFLMG0.png b/sprites/XFLMG0.png new file mode 100644 index 000000000..ecd6a3581 Binary files /dev/null and b/sprites/XFLMG0.png differ diff --git a/sprites/XFLMH0.png b/sprites/XFLMH0.png new file mode 100644 index 000000000..59e458283 Binary files /dev/null and b/sprites/XFLMH0.png differ diff --git a/sprites/XFLMI0.png b/sprites/XFLMI0.png new file mode 100644 index 000000000..1edc74163 Binary files /dev/null and b/sprites/XFLMI0.png differ diff --git a/sprites/XFLMJ0.png b/sprites/XFLMJ0.png new file mode 100644 index 000000000..bf75c5c39 Binary files /dev/null and b/sprites/XFLMJ0.png differ diff --git a/sprites/XFLMK0.png b/sprites/XFLMK0.png new file mode 100644 index 000000000..8f54f380b Binary files /dev/null and b/sprites/XFLMK0.png differ diff --git a/sprites/XFLML0.png b/sprites/XFLML0.png new file mode 100644 index 000000000..43a9659c1 Binary files /dev/null and b/sprites/XFLML0.png differ diff --git a/sprites/XFLMM0.png b/sprites/XFLMM0.png new file mode 100644 index 000000000..1d187155e Binary files /dev/null and b/sprites/XFLMM0.png differ diff --git a/sprites/XFLMN0.png b/sprites/XFLMN0.png new file mode 100644 index 000000000..18272a0f2 Binary files /dev/null and b/sprites/XFLMN0.png differ diff --git a/sprites/XFLMO0.png b/sprites/XFLMO0.png new file mode 100644 index 000000000..ef4885160 Binary files /dev/null and b/sprites/XFLMO0.png differ diff --git a/sprites/XFLMP0.png b/sprites/XFLMP0.png new file mode 100644 index 000000000..4878644ca Binary files /dev/null and b/sprites/XFLMP0.png differ diff --git a/sprites/XFLMQ0.png b/sprites/XFLMQ0.png new file mode 100644 index 000000000..168e4a873 Binary files /dev/null and b/sprites/XFLMQ0.png differ diff --git a/sprites/XFLMR0.png b/sprites/XFLMR0.png new file mode 100644 index 000000000..f302cc9fe Binary files /dev/null and b/sprites/XFLMR0.png differ diff --git a/sprites/XFLMS0.png b/sprites/XFLMS0.png new file mode 100644 index 000000000..73d04fda7 Binary files /dev/null and b/sprites/XFLMS0.png differ diff --git a/sprites/XFLMT0.png b/sprites/XFLMT0.png new file mode 100644 index 000000000..52dc99562 Binary files /dev/null and b/sprites/XFLMT0.png differ diff --git a/sprites/XRG1A0.png b/sprites/XRG1A0.png new file mode 100644 index 000000000..38d2f57e4 Binary files /dev/null and b/sprites/XRG1A0.png differ diff --git a/sprites/XRG1B0.png b/sprites/XRG1B0.png new file mode 100644 index 000000000..e47cbf4d2 Binary files /dev/null and b/sprites/XRG1B0.png differ diff --git a/sprites/XRG1C0.png b/sprites/XRG1C0.png new file mode 100644 index 000000000..2f0ae3068 Binary files /dev/null and b/sprites/XRG1C0.png differ diff --git a/sprites/XRG1D0.png b/sprites/XRG1D0.png new file mode 100644 index 000000000..46a90d6ef Binary files /dev/null and b/sprites/XRG1D0.png differ diff --git a/sprites/XRG1E0.png b/sprites/XRG1E0.png new file mode 100644 index 000000000..2a640dc36 Binary files /dev/null and b/sprites/XRG1E0.png differ diff --git a/sprites/XRG1F0.png b/sprites/XRG1F0.png new file mode 100644 index 000000000..d373ce877 Binary files /dev/null and b/sprites/XRG1F0.png differ diff --git a/sprites/XRG1G0.png b/sprites/XRG1G0.png new file mode 100644 index 000000000..312481499 Binary files /dev/null and b/sprites/XRG1G0.png differ diff --git a/sprites/XRG1H0.png b/sprites/XRG1H0.png new file mode 100644 index 000000000..2664de297 Binary files /dev/null and b/sprites/XRG1H0.png differ diff --git a/sprites/XRG1I0.png b/sprites/XRG1I0.png new file mode 100644 index 000000000..9e5801906 Binary files /dev/null and b/sprites/XRG1I0.png differ diff --git a/sprites/XRG1J0.png b/sprites/XRG1J0.png new file mode 100644 index 000000000..31450b41c Binary files /dev/null and b/sprites/XRG1J0.png differ diff --git a/sprites/XRG1K0.png b/sprites/XRG1K0.png new file mode 100644 index 000000000..01e4b1cbd Binary files /dev/null and b/sprites/XRG1K0.png differ diff --git a/sprites/XRG1L0.png b/sprites/XRG1L0.png new file mode 100644 index 000000000..4fea1b0c6 Binary files /dev/null and b/sprites/XRG1L0.png differ diff --git a/sprites/XRG1M0.png b/sprites/XRG1M0.png new file mode 100644 index 000000000..b308bb3e4 Binary files /dev/null and b/sprites/XRG1M0.png differ diff --git a/sprites/XRG1N0.png b/sprites/XRG1N0.png new file mode 100644 index 000000000..f4b90a19b Binary files /dev/null and b/sprites/XRG1N0.png differ diff --git a/sprites/XRG1O0.png b/sprites/XRG1O0.png new file mode 100644 index 000000000..8299b7693 Binary files /dev/null and b/sprites/XRG1O0.png differ diff --git a/sprites/XRG1P0.png b/sprites/XRG1P0.png new file mode 100644 index 000000000..523da47bf Binary files /dev/null and b/sprites/XRG1P0.png differ diff --git a/sprites/XRG1Q0.png b/sprites/XRG1Q0.png new file mode 100644 index 000000000..66d6a78d4 Binary files /dev/null and b/sprites/XRG1Q0.png differ diff --git a/sprites/XRG1R0.png b/sprites/XRG1R0.png new file mode 100644 index 000000000..e50f01bca Binary files /dev/null and b/sprites/XRG1R0.png differ diff --git a/sprites/XRG1S0.png b/sprites/XRG1S0.png new file mode 100644 index 000000000..3dba85ab3 Binary files /dev/null and b/sprites/XRG1S0.png differ diff --git a/sprites/XRG1T0.png b/sprites/XRG1T0.png new file mode 100644 index 000000000..5d3182555 Binary files /dev/null and b/sprites/XRG1T0.png differ diff --git a/sprites/XRG1U0.png b/sprites/XRG1U0.png new file mode 100644 index 000000000..aaf01df3b Binary files /dev/null and b/sprites/XRG1U0.png differ diff --git a/sprites/XRG1V0.png b/sprites/XRG1V0.png new file mode 100644 index 000000000..c7cc704c6 Binary files /dev/null and b/sprites/XRG1V0.png differ diff --git a/sprites/XRG1W0.png b/sprites/XRG1W0.png new file mode 100644 index 000000000..9546ad244 Binary files /dev/null and b/sprites/XRG1W0.png differ diff --git a/sprites/XRG1X0.png b/sprites/XRG1X0.png new file mode 100644 index 000000000..d0dbaf9a6 Binary files /dev/null and b/sprites/XRG1X0.png differ diff --git a/sprites/XRG2A0.png b/sprites/XRG2A0.png new file mode 100644 index 000000000..57c36cda7 Binary files /dev/null and b/sprites/XRG2A0.png differ diff --git a/sprites/XRG2B0.png b/sprites/XRG2B0.png new file mode 100644 index 000000000..53679fa3c Binary files /dev/null and b/sprites/XRG2B0.png differ diff --git a/sprites/XRG2C0.png b/sprites/XRG2C0.png new file mode 100644 index 000000000..6938a8860 Binary files /dev/null and b/sprites/XRG2C0.png differ diff --git a/sprites/XRG2D0.png b/sprites/XRG2D0.png new file mode 100644 index 000000000..73f536a3e Binary files /dev/null and b/sprites/XRG2D0.png differ diff --git a/sprites/XRG2E0.png b/sprites/XRG2E0.png new file mode 100644 index 000000000..39d89b83b Binary files /dev/null and b/sprites/XRG2E0.png differ diff --git a/sprites/XRG2F0.png b/sprites/XRG2F0.png new file mode 100644 index 000000000..fe960ce1f Binary files /dev/null and b/sprites/XRG2F0.png differ diff --git a/sprites/XRG2G0.png b/sprites/XRG2G0.png new file mode 100644 index 000000000..ed5ccb38a Binary files /dev/null and b/sprites/XRG2G0.png differ diff --git a/sprites/XRG2H0.png b/sprites/XRG2H0.png new file mode 100644 index 000000000..35ad3ef73 Binary files /dev/null and b/sprites/XRG2H0.png differ diff --git a/sprites/XRG2I0.png b/sprites/XRG2I0.png new file mode 100644 index 000000000..07957c781 Binary files /dev/null and b/sprites/XRG2I0.png differ diff --git a/sprites/XRG2J0.png b/sprites/XRG2J0.png new file mode 100644 index 000000000..c0089244e Binary files /dev/null and b/sprites/XRG2J0.png differ diff --git a/sprites/XRG2K0.png b/sprites/XRG2K0.png new file mode 100644 index 000000000..fa0de386d Binary files /dev/null and b/sprites/XRG2K0.png differ diff --git a/sprites/XRG2L0.png b/sprites/XRG2L0.png new file mode 100644 index 000000000..aa61d931c Binary files /dev/null and b/sprites/XRG2L0.png differ diff --git a/sprites/XRG2M0.png b/sprites/XRG2M0.png new file mode 100644 index 000000000..13048a23f Binary files /dev/null and b/sprites/XRG2M0.png differ diff --git a/sprites/XRG2N0.png b/sprites/XRG2N0.png new file mode 100644 index 000000000..65544a0fb Binary files /dev/null and b/sprites/XRG2N0.png differ diff --git a/sprites/XRG2O0.png b/sprites/XRG2O0.png new file mode 100644 index 000000000..3c1442f5b Binary files /dev/null and b/sprites/XRG2O0.png differ diff --git a/sprites/XRG2P0.png b/sprites/XRG2P0.png new file mode 100644 index 000000000..879de794f Binary files /dev/null and b/sprites/XRG2P0.png differ diff --git a/sprites/XRG2Q0.png b/sprites/XRG2Q0.png new file mode 100644 index 000000000..ac2d9bc48 Binary files /dev/null and b/sprites/XRG2Q0.png differ diff --git a/sprites/XRG2R0.png b/sprites/XRG2R0.png new file mode 100644 index 000000000..162449ce6 Binary files /dev/null and b/sprites/XRG2R0.png differ diff --git a/sprites/XRG2S0.png b/sprites/XRG2S0.png new file mode 100644 index 000000000..f2e8070b9 Binary files /dev/null and b/sprites/XRG2S0.png differ diff --git a/sprites/XRG2T0.png b/sprites/XRG2T0.png new file mode 100644 index 000000000..b4b4fbaad Binary files /dev/null and b/sprites/XRG2T0.png differ diff --git a/sprites/XRG2U0.png b/sprites/XRG2U0.png new file mode 100644 index 000000000..8bb4f687b Binary files /dev/null and b/sprites/XRG2U0.png differ diff --git a/sprites/XRG2V0.png b/sprites/XRG2V0.png new file mode 100644 index 000000000..27c403e22 Binary files /dev/null and b/sprites/XRG2V0.png differ diff --git a/sprites/XRG2W0.png b/sprites/XRG2W0.png new file mode 100644 index 000000000..fac663c7e Binary files /dev/null and b/sprites/XRG2W0.png differ diff --git a/sprites/XRG2X0.png b/sprites/XRG2X0.png new file mode 100644 index 000000000..127f6edbb Binary files /dev/null and b/sprites/XRG2X0.png differ diff --git a/sprites/XRG3A0.png b/sprites/XRG3A0.png new file mode 100644 index 000000000..c316bac97 Binary files /dev/null and b/sprites/XRG3A0.png differ diff --git a/sprites/XRG3B0.png b/sprites/XRG3B0.png new file mode 100644 index 000000000..fcf8c381e Binary files /dev/null and b/sprites/XRG3B0.png differ diff --git a/sprites/XRG3C0.png b/sprites/XRG3C0.png new file mode 100644 index 000000000..9efaf6140 Binary files /dev/null and b/sprites/XRG3C0.png differ diff --git a/sprites/XRG3D0.png b/sprites/XRG3D0.png new file mode 100644 index 000000000..9df3c223c Binary files /dev/null and b/sprites/XRG3D0.png differ diff --git a/sprites/XRG3E0.png b/sprites/XRG3E0.png new file mode 100644 index 000000000..98671f940 Binary files /dev/null and b/sprites/XRG3E0.png differ diff --git a/sprites/XRG3F0.png b/sprites/XRG3F0.png new file mode 100644 index 000000000..bb8de8793 Binary files /dev/null and b/sprites/XRG3F0.png differ diff --git a/sprites/XRG3G0.png b/sprites/XRG3G0.png new file mode 100644 index 000000000..4a9dcde49 Binary files /dev/null and b/sprites/XRG3G0.png differ diff --git a/sprites/XRG3H0.png b/sprites/XRG3H0.png new file mode 100644 index 000000000..d7a642114 Binary files /dev/null and b/sprites/XRG3H0.png differ diff --git a/sprites/XRG3I0.png b/sprites/XRG3I0.png new file mode 100644 index 000000000..08e5e0b7c Binary files /dev/null and b/sprites/XRG3I0.png differ diff --git a/sprites/XRG3J0.png b/sprites/XRG3J0.png new file mode 100644 index 000000000..0dda49586 Binary files /dev/null and b/sprites/XRG3J0.png differ diff --git a/sprites/XRG3K0.png b/sprites/XRG3K0.png new file mode 100644 index 000000000..b10919ac5 Binary files /dev/null and b/sprites/XRG3K0.png differ diff --git a/sprites/XRG3L0.png b/sprites/XRG3L0.png new file mode 100644 index 000000000..b3498017d Binary files /dev/null and b/sprites/XRG3L0.png differ diff --git a/sprites/XRG3M0.png b/sprites/XRG3M0.png new file mode 100644 index 000000000..a8bf76377 Binary files /dev/null and b/sprites/XRG3M0.png differ diff --git a/sprites/XRG3N0.png b/sprites/XRG3N0.png new file mode 100644 index 000000000..6c61ac4e0 Binary files /dev/null and b/sprites/XRG3N0.png differ diff --git a/sprites/XRG3O0.png b/sprites/XRG3O0.png new file mode 100644 index 000000000..500714e6b Binary files /dev/null and b/sprites/XRG3O0.png differ diff --git a/sprites/XRG3P0.png b/sprites/XRG3P0.png new file mode 100644 index 000000000..4e4a96c18 Binary files /dev/null and b/sprites/XRG3P0.png differ diff --git a/sprites/XRG3Q0.png b/sprites/XRG3Q0.png new file mode 100644 index 000000000..232c91097 Binary files /dev/null and b/sprites/XRG3Q0.png differ diff --git a/sprites/XRG3R0.png b/sprites/XRG3R0.png new file mode 100644 index 000000000..cdb6a6dd1 Binary files /dev/null and b/sprites/XRG3R0.png differ diff --git a/sprites/XRG3S0.png b/sprites/XRG3S0.png new file mode 100644 index 000000000..b0a2bef58 Binary files /dev/null and b/sprites/XRG3S0.png differ diff --git a/sprites/XRG3T0.png b/sprites/XRG3T0.png new file mode 100644 index 000000000..ba7264409 Binary files /dev/null and b/sprites/XRG3T0.png differ diff --git a/sprites/XRG3U0.png b/sprites/XRG3U0.png new file mode 100644 index 000000000..532980c80 Binary files /dev/null and b/sprites/XRG3U0.png differ diff --git a/sprites/XRG3V0.png b/sprites/XRG3V0.png new file mode 100644 index 000000000..29a18bef8 Binary files /dev/null and b/sprites/XRG3V0.png differ diff --git a/sprites/XRG3W0.png b/sprites/XRG3W0.png new file mode 100644 index 000000000..bcade1b00 Binary files /dev/null and b/sprites/XRG3W0.png differ diff --git a/sprites/XRG3X0.png b/sprites/XRG3X0.png new file mode 100644 index 000000000..ab5ee1733 Binary files /dev/null and b/sprites/XRG3X0.png differ diff --git a/sprites/XRG4A0.png b/sprites/XRG4A0.png new file mode 100644 index 000000000..56d4685da Binary files /dev/null and b/sprites/XRG4A0.png differ diff --git a/sprites/XRG4B0.png b/sprites/XRG4B0.png new file mode 100644 index 000000000..01521b380 Binary files /dev/null and b/sprites/XRG4B0.png differ diff --git a/sprites/XRG4C0.png b/sprites/XRG4C0.png new file mode 100644 index 000000000..9c1c66bff Binary files /dev/null and b/sprites/XRG4C0.png differ diff --git a/sprites/XRG4D0.png b/sprites/XRG4D0.png new file mode 100644 index 000000000..4faf862e5 Binary files /dev/null and b/sprites/XRG4D0.png differ diff --git a/sprites/XRG4E0.png b/sprites/XRG4E0.png new file mode 100644 index 000000000..fdd8964a5 Binary files /dev/null and b/sprites/XRG4E0.png differ diff --git a/sprites/XRG4F0.png b/sprites/XRG4F0.png new file mode 100644 index 000000000..b4e577437 Binary files /dev/null and b/sprites/XRG4F0.png differ diff --git a/sprites/XRG4G0.png b/sprites/XRG4G0.png new file mode 100644 index 000000000..2a9983411 Binary files /dev/null and b/sprites/XRG4G0.png differ diff --git a/sprites/XRG4H0.png b/sprites/XRG4H0.png new file mode 100644 index 000000000..3b5c593f6 Binary files /dev/null and b/sprites/XRG4H0.png differ diff --git a/sprites/XRG4I0.png b/sprites/XRG4I0.png new file mode 100644 index 000000000..2aa2b10a7 Binary files /dev/null and b/sprites/XRG4I0.png differ diff --git a/sprites/XRG4J0.png b/sprites/XRG4J0.png new file mode 100644 index 000000000..b0fe6f04c Binary files /dev/null and b/sprites/XRG4J0.png differ diff --git a/sprites/XRG4K0.png b/sprites/XRG4K0.png new file mode 100644 index 000000000..48f816bda Binary files /dev/null and b/sprites/XRG4K0.png differ diff --git a/sprites/XRG4L0.png b/sprites/XRG4L0.png new file mode 100644 index 000000000..ba5fcfea1 Binary files /dev/null and b/sprites/XRG4L0.png differ diff --git a/sprites/XRG4M0.png b/sprites/XRG4M0.png new file mode 100644 index 000000000..3dd61cbdc Binary files /dev/null and b/sprites/XRG4M0.png differ diff --git a/sprites/XRG4N0.png b/sprites/XRG4N0.png new file mode 100644 index 000000000..77776af27 Binary files /dev/null and b/sprites/XRG4N0.png differ diff --git a/sprites/XRG4O0.png b/sprites/XRG4O0.png new file mode 100644 index 000000000..7278b28a4 Binary files /dev/null and b/sprites/XRG4O0.png differ diff --git a/sprites/XRG4P0.png b/sprites/XRG4P0.png new file mode 100644 index 000000000..1255f6bcf Binary files /dev/null and b/sprites/XRG4P0.png differ diff --git a/sprites/XRG4Q0.png b/sprites/XRG4Q0.png new file mode 100644 index 000000000..b9c6c19cf Binary files /dev/null and b/sprites/XRG4Q0.png differ diff --git a/sprites/XRG4R0.png b/sprites/XRG4R0.png new file mode 100644 index 000000000..d42ce7541 Binary files /dev/null and b/sprites/XRG4R0.png differ diff --git a/sprites/XRG4S0.png b/sprites/XRG4S0.png new file mode 100644 index 000000000..410d0fa39 Binary files /dev/null and b/sprites/XRG4S0.png differ diff --git a/sprites/XRG4T0.png b/sprites/XRG4T0.png new file mode 100644 index 000000000..5cd73aecc Binary files /dev/null and b/sprites/XRG4T0.png differ diff --git a/sprites/XRG4U0.png b/sprites/XRG4U0.png new file mode 100644 index 000000000..9cc967ec8 Binary files /dev/null and b/sprites/XRG4U0.png differ diff --git a/sprites/XRG4V0.png b/sprites/XRG4V0.png new file mode 100644 index 000000000..c8b20d10d Binary files /dev/null and b/sprites/XRG4V0.png differ diff --git a/sprites/XRG4W0.png b/sprites/XRG4W0.png new file mode 100644 index 000000000..25705c984 Binary files /dev/null and b/sprites/XRG4W0.png differ diff --git a/sprites/XRG4X0.png b/sprites/XRG4X0.png new file mode 100644 index 000000000..1da96e03e Binary files /dev/null and b/sprites/XRG4X0.png differ diff --git a/sprites/XRG5A0.png b/sprites/XRG5A0.png new file mode 100644 index 000000000..a0bb45dfe Binary files /dev/null and b/sprites/XRG5A0.png differ diff --git a/sprites/XRG5B0.png b/sprites/XRG5B0.png new file mode 100644 index 000000000..b881b636f Binary files /dev/null and b/sprites/XRG5B0.png differ diff --git a/sprites/XRG5C0.png b/sprites/XRG5C0.png new file mode 100644 index 000000000..b85c24bc5 Binary files /dev/null and b/sprites/XRG5C0.png differ diff --git a/sprites/XRG5D0.png b/sprites/XRG5D0.png new file mode 100644 index 000000000..8b62d3091 Binary files /dev/null and b/sprites/XRG5D0.png differ diff --git a/sprites/XRG5E0.png b/sprites/XRG5E0.png new file mode 100644 index 000000000..0053be099 Binary files /dev/null and b/sprites/XRG5E0.png differ diff --git a/sprites/XRG5F0.png b/sprites/XRG5F0.png new file mode 100644 index 000000000..52afced13 Binary files /dev/null and b/sprites/XRG5F0.png differ diff --git a/sprites/XRG5G0.png b/sprites/XRG5G0.png new file mode 100644 index 000000000..9e0e37e9f Binary files /dev/null and b/sprites/XRG5G0.png differ diff --git a/sprites/XRG5H0.png b/sprites/XRG5H0.png new file mode 100644 index 000000000..aa4b4bf1a Binary files /dev/null and b/sprites/XRG5H0.png differ diff --git a/sprites/XRG5I0.png b/sprites/XRG5I0.png new file mode 100644 index 000000000..35543fc16 Binary files /dev/null and b/sprites/XRG5I0.png differ diff --git a/sprites/XRG5J0.png b/sprites/XRG5J0.png new file mode 100644 index 000000000..90d2b5e89 Binary files /dev/null and b/sprites/XRG5J0.png differ diff --git a/sprites/XRG5K0.png b/sprites/XRG5K0.png new file mode 100644 index 000000000..ee2bce748 Binary files /dev/null and b/sprites/XRG5K0.png differ diff --git a/sprites/XRG5L0.png b/sprites/XRG5L0.png new file mode 100644 index 000000000..a6c234234 Binary files /dev/null and b/sprites/XRG5L0.png differ diff --git a/sprites/XRG5M0.png b/sprites/XRG5M0.png new file mode 100644 index 000000000..6d8c3d6cc Binary files /dev/null and b/sprites/XRG5M0.png differ diff --git a/sprites/XRG5N0.png b/sprites/XRG5N0.png new file mode 100644 index 000000000..2a8d92395 Binary files /dev/null and b/sprites/XRG5N0.png differ diff --git a/sprites/XRG5O0.png b/sprites/XRG5O0.png new file mode 100644 index 000000000..421bda495 Binary files /dev/null and b/sprites/XRG5O0.png differ diff --git a/sprites/XRG5P0.png b/sprites/XRG5P0.png new file mode 100644 index 000000000..24d7a2a5f Binary files /dev/null and b/sprites/XRG5P0.png differ diff --git a/sprites/XRG5Q0.png b/sprites/XRG5Q0.png new file mode 100644 index 000000000..3c0f26b39 Binary files /dev/null and b/sprites/XRG5Q0.png differ diff --git a/sprites/XRG5R0.png b/sprites/XRG5R0.png new file mode 100644 index 000000000..db0302bef Binary files /dev/null and b/sprites/XRG5R0.png differ diff --git a/sprites/XRG5S0.png b/sprites/XRG5S0.png new file mode 100644 index 000000000..298fef0ac Binary files /dev/null and b/sprites/XRG5S0.png differ diff --git a/sprites/XRG5T0.png b/sprites/XRG5T0.png new file mode 100644 index 000000000..4cdf109fd Binary files /dev/null and b/sprites/XRG5T0.png differ diff --git a/sprites/XRG5U0.png b/sprites/XRG5U0.png new file mode 100644 index 000000000..9c8b731d1 Binary files /dev/null and b/sprites/XRG5U0.png differ diff --git a/sprites/XRG5V0.png b/sprites/XRG5V0.png new file mode 100644 index 000000000..553ae1cef Binary files /dev/null and b/sprites/XRG5V0.png differ diff --git a/sprites/XRG5W0.png b/sprites/XRG5W0.png new file mode 100644 index 000000000..7887dfbc0 Binary files /dev/null and b/sprites/XRG5W0.png differ diff --git a/sprites/XRG5X0.png b/sprites/XRG5X0.png new file mode 100644 index 000000000..b6f36abdf Binary files /dev/null and b/sprites/XRG5X0.png differ diff --git a/sprites/XSEXA0.png b/sprites/XSEXA0.png new file mode 100644 index 000000000..2576dc866 Binary files /dev/null and b/sprites/XSEXA0.png differ diff --git a/sprites/XSEXB0.png b/sprites/XSEXB0.png new file mode 100644 index 000000000..20f1c684a Binary files /dev/null and b/sprites/XSEXB0.png differ diff --git a/sprites/XSEXC0.png b/sprites/XSEXC0.png new file mode 100644 index 000000000..dc92e7c61 Binary files /dev/null and b/sprites/XSEXC0.png differ diff --git a/sprites/XSEXD0.png b/sprites/XSEXD0.png new file mode 100644 index 000000000..9deb41e1a Binary files /dev/null and b/sprites/XSEXD0.png differ diff --git a/sprites/XSEXE0.png b/sprites/XSEXE0.png new file mode 100644 index 000000000..89c1cee14 Binary files /dev/null and b/sprites/XSEXE0.png differ diff --git a/sprites/XSEXF0.png b/sprites/XSEXF0.png new file mode 100644 index 000000000..d802148a1 Binary files /dev/null and b/sprites/XSEXF0.png differ diff --git a/sprites/XSEXG0.png b/sprites/XSEXG0.png new file mode 100644 index 000000000..e414144a4 Binary files /dev/null and b/sprites/XSEXG0.png differ diff --git a/sprites/XSEXH0.png b/sprites/XSEXH0.png new file mode 100644 index 000000000..671c1883e Binary files /dev/null and b/sprites/XSEXH0.png differ diff --git a/sprites/XSEXI0.png b/sprites/XSEXI0.png new file mode 100644 index 000000000..4b8c75ae8 Binary files /dev/null and b/sprites/XSEXI0.png differ diff --git a/sprites/XSEXJ0.png b/sprites/XSEXJ0.png new file mode 100644 index 000000000..0e3679b4f Binary files /dev/null and b/sprites/XSEXJ0.png differ diff --git a/sprites/XSEXK0.png b/sprites/XSEXK0.png new file mode 100644 index 000000000..afe54b170 Binary files /dev/null and b/sprites/XSEXK0.png differ diff --git a/sprites/XSEXL0.png b/sprites/XSEXL0.png new file mode 100644 index 000000000..2558935b1 Binary files /dev/null and b/sprites/XSEXL0.png differ diff --git a/sprites/XSEXM0.png b/sprites/XSEXM0.png new file mode 100644 index 000000000..4e62d3d64 Binary files /dev/null and b/sprites/XSEXM0.png differ diff --git a/sprites/XSEXN0.png b/sprites/XSEXN0.png new file mode 100644 index 000000000..ae74e6c0d Binary files /dev/null and b/sprites/XSEXN0.png differ diff --git a/sprites/XSEXO0.png b/sprites/XSEXO0.png new file mode 100644 index 000000000..c5a5a7fee Binary files /dev/null and b/sprites/XSEXO0.png differ diff --git a/sprites/XSEXP0.png b/sprites/XSEXP0.png new file mode 100644 index 000000000..09909ea41 Binary files /dev/null and b/sprites/XSEXP0.png differ diff --git a/sprites/XSEXQ0.png b/sprites/XSEXQ0.png new file mode 100644 index 000000000..14fbe169c Binary files /dev/null and b/sprites/XSEXQ0.png differ diff --git a/sprites/XSEXR0.png b/sprites/XSEXR0.png new file mode 100644 index 000000000..b1e1f9c4d Binary files /dev/null and b/sprites/XSEXR0.png differ diff --git a/sprites/XSEXS0.png b/sprites/XSEXS0.png new file mode 100644 index 000000000..634d5fba4 Binary files /dev/null and b/sprites/XSEXS0.png differ diff --git a/sprites/XSMKA0.png b/sprites/XSMKA0.png new file mode 100644 index 000000000..c0a63c7c2 Binary files /dev/null and b/sprites/XSMKA0.png differ diff --git a/sprites/XSMKB0.png b/sprites/XSMKB0.png new file mode 100644 index 000000000..4483663a6 Binary files /dev/null and b/sprites/XSMKB0.png differ diff --git a/sprites/XSMKC0.png b/sprites/XSMKC0.png new file mode 100644 index 000000000..79765f2c6 Binary files /dev/null and b/sprites/XSMKC0.png differ diff --git a/sprites/XSMKD0.png b/sprites/XSMKD0.png new file mode 100644 index 000000000..87817c3fa Binary files /dev/null and b/sprites/XSMKD0.png differ diff --git a/sprites/XSMKE0.png b/sprites/XSMKE0.png new file mode 100644 index 000000000..7bdf09756 Binary files /dev/null and b/sprites/XSMKE0.png differ diff --git a/sprites/XSMKF0.png b/sprites/XSMKF0.png new file mode 100644 index 000000000..3aabee60a Binary files /dev/null and b/sprites/XSMKF0.png differ diff --git a/sprites/XSMKG0.png b/sprites/XSMKG0.png new file mode 100644 index 000000000..38b2cff38 Binary files /dev/null and b/sprites/XSMKG0.png differ diff --git a/sprites/XSMKH0.png b/sprites/XSMKH0.png new file mode 100644 index 000000000..176b266dc Binary files /dev/null and b/sprites/XSMKH0.png differ diff --git a/sprites/XSMKI0.png b/sprites/XSMKI0.png new file mode 100644 index 000000000..0eadfb6b6 Binary files /dev/null and b/sprites/XSMKI0.png differ diff --git a/sprites/XSMKJ0.png b/sprites/XSMKJ0.png new file mode 100644 index 000000000..0f0785090 Binary files /dev/null and b/sprites/XSMKJ0.png differ diff --git a/sprites/XSMKK0.png b/sprites/XSMKK0.png new file mode 100644 index 000000000..3bee8e272 Binary files /dev/null and b/sprites/XSMKK0.png differ diff --git a/sprites/XSMKL0.png b/sprites/XSMKL0.png new file mode 100644 index 000000000..072cb8187 Binary files /dev/null and b/sprites/XSMKL0.png differ diff --git a/sprites/XSMKM0.png b/sprites/XSMKM0.png new file mode 100644 index 000000000..a1ce79dc0 Binary files /dev/null and b/sprites/XSMKM0.png differ diff --git a/sprites/XSMKN0.png b/sprites/XSMKN0.png new file mode 100644 index 000000000..6d6fe398a Binary files /dev/null and b/sprites/XSMKN0.png differ diff --git a/sprites/XSMKO0.png b/sprites/XSMKO0.png new file mode 100644 index 000000000..97c401c53 Binary files /dev/null and b/sprites/XSMKO0.png differ diff --git a/sprites/XSMKP0.png b/sprites/XSMKP0.png new file mode 100644 index 000000000..3e05a7383 Binary files /dev/null and b/sprites/XSMKP0.png differ diff --git a/sprites/XSMKQ0.png b/sprites/XSMKQ0.png new file mode 100644 index 000000000..83c105d9e Binary files /dev/null and b/sprites/XSMKQ0.png differ diff --git a/sprites/XSMKR0.png b/sprites/XSMKR0.png new file mode 100644 index 000000000..2a32fe783 Binary files /dev/null and b/sprites/XSMKR0.png differ diff --git a/sprites/XSMKS0.png b/sprites/XSMKS0.png new file mode 100644 index 000000000..df9f6cfd6 Binary files /dev/null and b/sprites/XSMKS0.png differ diff --git a/sprites/XSMKT0.png b/sprites/XSMKT0.png new file mode 100644 index 000000000..7ace3da76 Binary files /dev/null and b/sprites/XSMKT0.png differ diff --git a/textures.dummy b/textures.dummy index d9748155b..697fd10e7 100644 --- a/textures.dummy +++ b/textures.dummy @@ -34,3 +34,10 @@ Sprite "XZWWA0",1,1{} Sprite "XZWXA0",1,1{} Sprite "XZWYA0",1,1{} Sprite "XZWZA0",1,1{} +Texture "-noflat-",16,16 +{ + XScale 2 + YScale 2 + WorldPanning + Patch "chiptile", 0, 0 +} diff --git a/textures/chiptile.png b/textures/chiptile.png new file mode 100644 index 000000000..a2ea5ea85 Binary files /dev/null and b/textures/chiptile.png differ diff --git a/zscript/swwm_common.zsc b/zscript/swwm_common.zsc index 586fb1236..31d5a9d05 100644 --- a/zscript/swwm_common.zsc +++ b/zscript/swwm_common.zsc @@ -7,11 +7,782 @@ enum ESWWMGZChannels CHAN_WEAPONEXTRA = 63203, CHAN_POWERUP = 63204, CHAN_POWERUPEXTRA = 63205, + CHAN_JETPACK = 63206 }; +// One-liners +Class SWWMOneLiner : HUDMessageBase +{ + String whichline; + int lifespan, curtime; + HUDFont mTewiFont; + transient CVar safezone; + + static SWWMOneLiner Make( String whichline, int lifespan ) + { + let l = new("SWWMOneLiner"); + l.whichline = whichline; + l.curtime = l.lifespan = lifespan; + l.mTewiFont = HUDFont.Create("TewiShaded"); + return l; + } + + override bool Tick() + { + curtime--; + return (curtime<-20); + } + + override void Draw( int bottom, int visibility ) + { + if ( !safezone ) safezone = CVar.GetCVar('swwm_hudmargin',players[consoleplayer]); + int margin = safezone.GetInt(); + Vector2 hs = StatusBar.GetHUDScale(); + Vector2 ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y); + String locs = "\""..StringTable.Localize(whichline).."\""; + int len = mTewiFont.mFont.StringWidth(locs); + int h = mTewiFont.mFont.GetHeight(); + double alph = clamp((curtime/20.)+1.,0.,1.); + alph *= clamp((lifespan-curtime)/10.,0.,1.); + Screen.Dim("Black",alph*.8,int((Screen.GetWidth()-(len+12)*hs.x)/2.),int(bottom-(margin+2+h)*hs.y),int((len+12)*hs.x),int((h+4)*hs.y)); + Screen.DrawText(mTewiFont.mFont,Font.CR_FIRE,(ss.x-len)/2.,(bottom/hs.y)-(margin+h),locs,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); + } +} + +// imitates UE1 light type LT_TexturePaletteOnce/LT_TexturePaletteLoop +Class PaletteLight : DynamicLight +{ + Color pal[256]; + bool IsLooping; + + Default + { + Tag "Explosion"; + DynamicLight.Type "Point"; + Args 0,0,0,80; + ReactionTime 15; + } + private void UpdateLight() + { + int index = 255-((255*ReactionTime)/abs(default.ReactionTime)); + args[LIGHT_RED] = pal[index].r; + args[LIGHT_GREEN] = pal[index].g; + args[LIGHT_BLUE] = pal[index].b; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + int lump = Wads.CheckNumForFullname(String.Format("palettes/%s.pal",GetTag())); + String paldat = Wads.ReadLump(lump); + for ( int i=0; i<256; i++ ) + { + pal[i].r = paldat.ByteAt(i*3); + pal[i].g = paldat.ByteAt(i*3+1); + pal[i].b = paldat.ByteAt(i*3+2); + } + if ( ReactionTime < 0 ) + { + ReactionTime = -ReactionTime; + IsLooping = true; + } + UpdateLight(); + } + override void Tick() + { + Super.Tick(); + if ( isFrozen() ) return; + ReactionTime--; + if ( ReactionTime < 0 ) + { + if ( !IsLooping ) + { + Destroy(); + return; + } + else ReactionTime = abs(default.ReactionTime); + } + UpdateLight(); + } +} + +// Generic particles +Class SWWMSmoke : Actor +{ + Default + { + RenderStyle "Shaded"; + StencilColor "FFFFFF"; + Radius 2; + Height 2; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + +FORCEXYBILLBOARD; + +ROLLSPRITE; + +ROLLCENTER; + +THRUACTORS; + +NOTELEPORT; + +CANBOUNCEWATER; + -BOUNCEAUTOOFF; + BounceType "Hexen"; + BounceFactor 1.0; + WallBounceFactor 1.0; + Scale 0.3; + } + + override void PostBeginPlay() + { + Super.PostBeginPlay(); + double ang, pt; + scale *= FRandom[Puff](0.5,1.5); + alpha *= FRandom[Puff](0.5,1.5); + ang = FRandom[Puff](0,360); + pt = FRandom[Puff](-90,90); + vel += (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt))*FRandom[Puff](0.2,0.8); + roll = Frandom[Puff](0,360); + scale.x *= RandomPick[Puff](-1,1); + scale.y *= RandomPick[Puff](-1,1); + } + override void Tick() + { + Super.Tick(); + if ( isFrozen() ) return; + vel *= 0.96; + vel.z += 0.01; + if ( waterlevel > 0 ) + { + let b = Spawn("SWWMBubble",pos); + b.scale *= abs(scale.x); + b.vel = vel; + Destroy(); + } + } + + States + { + Spawn: + XSMK ABCDEFGHIJKLMNOPQRST 1 A_SetTics(1+special1); + Stop; + } +} + +Class SWWMSmallSmoke : SWWMSmoke +{ + override void PostBeginPlay() + { + Actor.PostBeginPlay(); + double ang, pt; + scale *= FRandom[Puff](0.1,0.3); + alpha *= FRandom[Puff](0.5,1.5); + ang = FRandom[Puff](0,360); + pt = FRandom[Puff](-90,90); + vel += (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt))*FRandom[Puff](0.04,0.16); + } +} +Class SWWMViewSmoke : SWWMSmoke +{ + Vector3 ofs, vvel; + + override void PostBeginPlay() + { + Actor.PostBeginPlay(); + double ang, pt; + scale *= FRandom[Puff](0.1,0.3); + alpha *= FRandom[Puff](0.5,1.5); + ang = FRandom[Puff](0,360); + pt = FRandom[Puff](-90,90); + vvel += (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt))*FRandom[Puff](0.04,0.16); + } + + override void Tick() + { + Actor.Tick(); + if ( !target || !target.player ) + { + Destroy(); + return; + } + Vector3 x, y, z; + [x, y, z] = swwm_CoordUtil.GetAxes(target.pitch,target.angle,target.roll); + Vector3 origin = level.Vec3Offset(target.Vec2OffsetZ(0,0,target.player.viewz),x*ofs.x+y*ofs.y+z*ofs.z); + SetOrigin(origin,true); + bInvisible = (players[consoleplayer].camera != target); + if ( isFrozen() ) return; + ofs += vvel; + vvel *= 0.96; + vvel.z += 0.01; + if ( waterlevel > 0 ) Destroy(); + } +} + +Class SWWMBubble : Actor +{ + Default + { + RenderStyle "Add"; + Radius 2; + Height 2; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + +FORCEXYBILLBOARD; + +NOTELEPORT; + Scale 0.5; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + double ang, pt; + scale *= FRandom[Puff](0.5,1.5); + ang = FRandom[Puff](0,360); + pt = FRandom[Puff](-90,90); + vel += (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt))*FRandom[Puff](0.2,0.8); + if ( waterlevel <= 0 ) Destroy(); + SetState(ResolveState("Spawn")+Random[Puff](0,19)); + } + override void Tick() + { + Super.Tick(); + if ( isFrozen() ) return; + vel *= 0.96; + vel.z += 0.05; + if ( (waterlevel <= 0) || !Random[Puff](0,100) ) Destroy(); + } + States + { + Spawn: + XBUB ABCDEFGHIJKLMNOPQRST 1; + Loop; + } +} + +Class SWWMSpark : Actor +{ + Default + { + RenderStyle "Add"; + Radius 2; + Height 2; + +NOBLOCKMAP; + +FORCEXYBILLBOARD; + +MISSILE; + +MOVEWITHSECTOR; + +THRUACTORS; + +NOTELEPORT; + +DONTSPLASH; + BounceType "Doom"; + BounceFactor 0.4; + Gravity 0.2; + Scale 0.05; + } + override void Tick() + { + Super.Tick(); + if ( waterlevel > 0 ) + { + let b = Spawn("SWWMBubble",pos); + b.vel = vel; + b.scale *= 0.3; + Destroy(); + } + } + States + { + Spawn: + BLPF A 1 Bright A_FadeOut(0.01); + Wait; + Death: + BLPF A 1 Bright A_FadeOut(0.05); + Wait; + } +} + +Class SWWMChip : Actor +{ + int deadtimer; + double rollvel; + + Default + { + Radius 2; + Height 2; + +NOBLOCKMAP; + +MISSILE; + +MOVEWITHSECTOR; + +THRUACTORS; + +NOTELEPORT; + +DONTSPLASH; + +INTERPOLATEANGLES; + +ROLLSPRITE; + +ROLLCENTER; + BounceType "Doom"; + BounceFactor 0.3; + Gravity 0.35; + Scale 0.2; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + deadtimer = 0; + rollvel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1); + frame = Random[Junk](0,5); + scale *= Frandom[Junk](0.8,1.2); + } + override void Tick() + { + Super.Tick(); + if ( isFrozen() ) return; + if ( InStateSequence(CurState,ResolveState("Death")) ) + { + deadtimer++; + if ( deadtimer > 300 ) A_FadeOut(0.05); + return; + } + } + States + { + Spawn: + JUNK # 1 + { + roll += rollvel; + } + Loop; + Bounce: + JUNK # 0 + { + rollvel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1); + } + Goto Spawn; + Death: + JUNK # -1; + Stop; + Dummy: + JUNK ABCDEF -1; + Stop; + } +} + +Class SWWMNothing : Actor +{ + States + { + Spawn: + TNT1 A 1; + Stop; + } +} + +// Bullet trails from DT +Class WaterHit +{ + Sector sect; + Vector3 hitpos; +} + +Class InvisibleSplasher : Actor +{ + Default + { + VSpeed -2; + } + States + { + Spawn: + TNT1 A 2; + Stop; + } +} +Class SmolInvisibleSplasher : InvisibleSplasher +{ + Default + { + Mass 25; + } +} + +Class SWWMBulletTrail : LineTracer +{ + Array WaterHitList; + Array ShootThroughList; + Actor ignoreme; + + static play void DoTrail( Actor target, Vector3 pos, Vector3 dir, int dist, int bubblechance, bool smoky = false ) + { + let t = new("SWWMBulletTrail"); + t.ignoreme = target; + t.WaterHitList.Clear(); + t.ShootThroughList.Clear(); + t.Trace(pos,level.PointInSector(pos.xy),dir,dist,0); + for ( int i=0; i= steps ) + { + cnt = 0; + str = tstr/steps; + cstate = (mode==SWING_Straight)?(-1):(delay>0)?STATE_Wait:STATE_Return; + } + else tstr += str; + break; + case STATE_Wait: + if ( ++cnt >= delay ) + { + cnt = 0; + cstate = STATE_Return; + } + break; + case STATE_Return: + target.A_SetAngle(target.angle-dir.x*(str/rmul),SPF_INTERPOLATE); + target.A_SetPitch(target.pitch-dir.y*(str/rmul),SPF_INTERPOLATE); + if ( ++cnt >= steps*rmul ) + { + cnt = 0; + cstate = -1; + } + break; + default: + Destroy(); + return; + } + } +} + +// Screen flashes from DT +Class GenericFlash : HUDMessageBase +{ + Color col; + int duration; + double alpha; + Actor cam; + transient CVar str; + GenericFlash Setup( Actor camera, Color c, int d ) + { + alpha = 1.0; + col = c; + duration = d; + cam = camera; + return self; + } + override bool Tick() + { + if ( duration > 0 ) alpha -= 1./duration; + return (alpha<=0)||(!cam); + } + override void Draw( int bottom, int visibility ) + { + if ( automapactive || (visibility != BaseStatusBar.HUDMSGLayer_UnderHUD) ) return; + if ( cam && (players[consoleplayer].camera != cam) ) return; + if ( !str ) str = CVar.GetCVar('swwm_flashstrength',players[consoleplayer]); + Screen.Dim(col,(col.a/255.)*alpha*str.GetFloat(),0,0,Screen.GetWidth(),Screen.GetHeight()); + } +} + +Class QueuedFlash +{ + Color c; + int duration; + int tic; + Actor cam; +} + // Handler responsible for item replacements and whatever else Class SWWMHandler : EventHandler { + transient String oneliner, onelinersnd; + transient int onelinertic, onelinerspan; + transient int lastlock, lastcombat; + transient Array combatactors; + transient Array combattics; + transient int highesttic; + transient Array flashes; + bool tookdamage[MAXPLAYERS]; + int spreecount[MAXPLAYERS]; + int lastkill[MAXPLAYERS]; + int multilevel[MAXPLAYERS]; + + transient CVar mutevoice; + + static int AddOneliner( String type, int delay = 5 ) + { + CVar voicetype = CVar.GetCVar('swwm_voicetype',players[consoleplayer]); + int whichline; + int countem = 0, i = 1; + String testme, locme; + do + { + testme = String.Format("SWWM_SUBS_%s_%s%d",voicetype.GetString().MakeUpper(),type.MakeUpper(),i); + locme = StringTable.Localize(testme,false); + if ( testme != locme ) countem++; + i++; + } + while ( (testme != locme) && (i < 100) ); // gotta prevent infinite loops + if ( countem == 0 ) return 0; + whichline = Random[DemoLines](1,countem); + let hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); + if ( !hnd ) return 0; + hnd.oneliner = String.Format("$SWWM_SUBS_%s_%s%d",voicetype.GetString().MakeUpper(),type.MakeUpper(),whichline); + hnd.onelinersnd = String.Format("voice/%s/%s%d",voicetype.GetString(),type,whichline); + hnd.onelinertic = gametic+delay; + hnd.onelinerspan = int(S_GetLength(hnd.onelinersnd)*Thinker.TICRATE); + return hnd.onelinertic+hnd.onelinerspan; + } + + override void OnRegister() + { + // oneliner RNG must be relative to consoleplayer + SetRandomSeed[DemoLines](Random[DemoLines]()+consoleplayer); + } + + override void WorldLoaded( WorldEvent e ) + { + if ( !mutevoice ) mutevoice = CVar.GetCVar('swwm_mutevoice',players[consoleplayer]); + if ( !e.IsSaveGame && !e.IsReopen && (gamestate != GS_TITLELEVEL) && (mutevoice.GetInt() < 3) ) + AddOneliner("mapstart"); + } + + override void PlayerEntered( PlayerEvent e ) + { + multilevel[e.playernumber] = 0; + lastkill[e.playernumber] = int.min; + } + + override void WorldTick() + { + if ( !mutevoice ) mutevoice = CVar.GetCVar('swwm_mutevoice',players[consoleplayer]); + if ( onelinertic && (onelinertic < gametic) ) + { + players[consoleplayer].mo.A_StartSound(onelinersnd,CHAN_DEMOVOICE,CHANF_LOCAL,1.,ATTN_NONE); + onelinertic = 0; + onelinerspan = 0; + } + for ( int i=0; i= gametic ) continue; + flashes.Delete(i); + i--; + } + // combat tracking + // prune old entries + for ( int i=0; i highesttic ) + highesttic = combattics[i]; + if ( combatactors[i] + && (combatactors[i].Health > 0) + && !combatactors[i].bKILLED + && !combatactors[i].bCORPSE + && (combatactors[i].target == players[consoleplayer].mo) + && (combattics[i]+2000 > gametic) ) + continue; + combatactors.Delete(i); + combattics.Delete(i); + i--; + } + bool enteredcombat = false; + // add new entries + let ti = ThinkerIterator.Create("Actor"); + Actor a; + while ( a = Actor(ti.Next()) ) + { + if ( !a.player && !a.bIsMonster && !a.bCountKill ) continue; + // ignore the dead + if ( (a.Health <= 0) || a.bKILLED || a.bCORPSE ) continue; + // ignore if not targetted or either actor can't see the other + if ( (a.target != players[consoleplayer].mo) + || !a.CheckSight(players[consoleplayer].mo) + || !players[consoleplayer].mo.CheckSight(a) ) continue; + // is it already in? + bool addme = true; + for ( int i=0; i highesttic+100)) && (mutevoice.GetInt() < 1) ) + lastcombat = AddOneliner("fightstart",10); + } + + override void WorldThingDamaged( WorldEvent e ) + { + if ( !mutevoice ) mutevoice = CVar.GetCVar('swwm_mutevoice',players[consoleplayer]); + if ( e.Thing.player ) tookdamage[e.Thing.PlayerNumber()] = true; + if ( e.DamageSource && e.DamageSource.bISMONSTER && (e.Thing == players[consoleplayer].mo) && (e.Thing.Health > 0) ) + { + if ( e.Thing.IsFriend(e.DamageSource) ) + { + // no comment if it's a friendly (to be added) + } + else + { + // hurt comment + if ( (!lastcombat || (gametic > lastcombat+20)) && (mutevoice.GetInt() < 1) ) + lastcombat = AddOneliner("gethit",15); + highesttic = gametic; + } + } + if ( (e.Thing.Health > 0) || e.Thing.bKilled || e.Thing.bCorpse ) return; + if ( !e.Thing.player && !e.Thing.bIsMonster && !e.Thing.bCountKill ) return; + if ( (e.DamageSource && e.DamageSource.player && (e.DamageSource != e.Thing)) ) + { + int pnum = e.DamageSource.PlayerNumber(); + if ( level.maptime < (lastkill[pnum]+5*Thinker.TICRATE) ) + multilevel[pnum]++; + else multilevel[pnum] = 0; + lastkill[pnum] = level.maptime; + // scoring + int score = min(2000,int(ceil(e.Thing.SpawnHealth()*.5)*10)); + if ( e.Thing.Health <= e.Thing.GetGibHealth() ) score = int(score*1.25); + score = int(score*(1.+.5*min(multilevel[pnum],16))); + if ( !tookdamage[pnum] ) score += 100+50*spreecount[pnum]; + if ( e.Thing.bBOSS ) score += 10000; + if ( level.killed_monsters == level.total_monsters ) score += 5000; + e.DamageSource.GiveInventory("SWWMCredits",score); + // TODO floating score for HUD + spreecount[pnum]++; + if ( e.DamageSource != players[consoleplayer].mo ) return; + highesttic = gametic; + if ( (!lastcombat || (gametic > lastcombat+20)) && (mutevoice.GetInt() < 1) ) + lastcombat = AddOneliner("scorekill",15); + } + } + + override void PostUiTick() + { + if ( (gametic == onelinertic) && (oneliner != "") ) + { + let l = SWWMOneLiner.Make(oneliner,onelinerspan); + StatusBar.AttachMessage(l,-3473); + } + for ( int i=0; i lastlock+20)) && (mutevoice.GetInt() < 2) ) + lastlock = AddOneliner("locked"); + } + } + override void NetworkProcess( ConsoleEvent e ) { if ( e.Name ~== "swwmgesture" ) @@ -33,6 +804,60 @@ Class SWWMHandler : EventHandler } } } + + static void DoFlash( Actor camera, Color c, int duration ) + { + QueuedFlash qf = new("QueuedFlash"); + qf.duration = duration; + qf.c = c; + qf.tic = gametic; + qf.cam = camera; + let hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); + if ( !hnd ) return; // not supposed to happen + hnd.flashes.push(qf); + } + + // Doom's explosions aren't fully 3D + static void DoBlast( Actor Source, double ExplosionRadius, double MomentumTransfer ) + { + BlockThingsIterator bi = BlockThingsIterator.Create(Source,ExplosionRadius); + while ( bi.Next() ) + { + Actor a = bi.Thing; + if ( !a || !a.bSHOOTABLE || !Source.CheckSight(a,0xf) || (a == Source) || (Source.Distance3D(a) > ExplosionRadius) || a.bCANNOTPUSH || (a.Mass >= 10000000) ) + continue; + Vector3 midpoint = a.Vec3Offset(0,0,a.height*0.5); + Vector3 dir = Level.Vec3Diff(Source.pos,midpoint); + double dist = max(1,dir.length()); + double damagescale = 1-max(0,(dist-a.radius)/ExplosionRadius); + dir = dir/dist; + a.vel += dir*damagescale*(MomentumTransfer/(Thinker.TICRATE*a.mass)); + } + } + + // Same for this + static void DoKnockback( Actor Victim, Vector3 HitDirection, double MomentumTransfer ) + { + if ( !Victim || !Victim.bSHOOTABLE || Victim.bCANNOTPUSH || (Victim.Mass >= 10000000) ) return; + Victim.vel += HitDirection*(MomentumTransfer/(Thinker.TICRATE*Victim.Mass)); + } + + static void DoSwing( Actor target, Vector2 dir, double initial, double inc, int steps, int mode = 0, int delay = 0, double rmul = 1.0 ) + { + let s = new("Swinger"); + s.ChangeStatNum(Thinker.STAT_USER); + s.target = target; + s.dir = dir; + s.inc = inc; + s.rmul = rmul; + s.steps = steps; + s.mode = mode; + s.delay = delay; + s.cnt = 0; + s.cstate = 0; + s.str = initial; + s.tstr = initial; + } } // Fancy crash effect diff --git a/zscript/swwm_hud.zsc b/zscript/swwm_hud.zsc index ae837840b..505d9cfd8 100644 --- a/zscript/swwm_hud.zsc +++ b/zscript/swwm_hud.zsc @@ -13,11 +13,18 @@ Class SWWMStatusBar : BaseStatusBar HUDFont mTewiFont; Array ChatMsgs, DeathMsgs, MiscMsgs, PickMsgs; + Actor targetactors[40], scoreactors[60], keyactors[10]; + Vector3 exitpoints[10], uselines[10]; // client cvars - transient CVar safezone, maxchat, maxdeath, maxmisc, maxpick; + transient CVar safezone, maxchat[2], maxpick; - DynamicValueInterpolator HealthInter; + // shared stuff + Vector2 ss, hs; + int margin; + double FracTic; + + DynamicValueInterpolator HealthInter, ScoreInter, FuelInter, DashInter; override void FlushNotify() { @@ -31,7 +38,22 @@ Class SWWMStatusBar : BaseStatusBar { Super.Tick(); // prune old messages + // update target actors + // update floating scores + // update interpolators HealthInter.Update(CPlayer.health); + ScoreInter.Update(CPlayer.mo.CountInv("SWWMCredits")); + let d = Demolitionist(CPlayer.mo); + if ( d ) + { + FuelInter.Update(int(d.dashfuel)); + DashInter.Update(int((40-d.dashcooldown)*3.)); + } + else + { + FuelInter.Update(0); + DashInter.Update(0); + } } override void Init() @@ -39,51 +61,138 @@ Class SWWMStatusBar : BaseStatusBar Super.Init(); SetSize(0,640,400); StatusTex = TexMan.CheckForTexture("graphics/HUD/StatusBox.png",TexMan.Type_Any); - DashTex = TexMan.CheckForTexture("graphics/HUD/DashIcon.png",TexMan.Type_Any); + DashTex = TexMan.CheckForTexture("graphics/HUD/DashBar.png",TexMan.Type_Any); FuelTex = TexMan.CheckForTexture("graphics/HUD/FuelBar.png",TexMan.Type_Any); HealthTex[0] = TexMan.CheckForTexture("graphics/HUD/HealthBar0.png",TexMan.Type_Any); HealthTex[1] = TexMan.CheckForTexture("graphics/HUD/HealthBar1.png",TexMan.Type_Any); HealthTex[2] = TexMan.CheckForTexture("graphics/HUD/HealthBar2.png",TexMan.Type_Any); HealthTex[3] = TexMan.CheckForTexture("graphics/HUD/HealthBar3.png",TexMan.Type_Any); + ScoreTex = TexMan.CheckForTexture("graphics/HUD/ScoreBox.png",TexMan.Type_Any); + WeaponTex = TexMan.CheckForTexture("graphics/HUD/WeaponBox.png",TexMan.Type_Any); mTewiFont = HUDFont.Create("TewiShaded"); - HealthInter = DynamicValueInterpolator.Create(1000,2.5,1,32); + HealthInter = DynamicValueInterpolator.Create(100,.1,1,100); + ScoreInter = DynamicValueInterpolator.Create(0,.1,1,1000); + FuelInter = DynamicValueInterpolator.Create(120,.5,1,100); + DashInter = DynamicValueInterpolator.Create(120,.5,1,40); + } + + private void DrawTarget() + { + // omnisight: usable highlights + // omnisight: key locations + // targetting array + // floating kill scores + } + + private void DrawScore() + { + Screen.DrawTexture(ScoreTex,false,ss.x-(margin+73),margin,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + Screen.DrawText(mTewiFont.mFont,Font.CR_FIRE,ss.x-(margin+58),margin+1,String.Format("%09d",clamp(ScoreInter.GetValue(),0,999999999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + } + + private void DrawInventory() + { + // active items (armor / powerups) + // inventory box / bar + } + + private void DrawWeapon() + { + if ( CPlayer.ReadyWeapon is 'SWWMWeapon' ) SWWMWeapon(CPlayer.ReadyWeapon).DrawWeapon(FracTic,ss.x-margin,ss.y-(margin+28),hs,ss); + else + { + // TODO generic display + } + Screen.DrawTexture(WeaponTex,false,ss.x-(margin+61),ss.y-(margin+29),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + double xx = ss.x-(margin+58), yy = ss.y-(margin+29); + for ( int i=1; i<=10; i++ ) + { + int ncolor = Font.CR_WHITE; + if ( !CPlayer.HasWeaponsInSlot(i%10) ) ncolor = Font.CR_DARKGRAY; + else if ( CPlayer.PendingWeapon && (CPlayer.PendingWeapon != WP_NOCHANGE) && (CPlayer.PendingWeapon.SlotNumber == (i%10)) ) ncolor = Font.CR_FIRE; + else if ( (!CPlayer.PendingWeapon || (CPlayer.PendingWeapon == WP_NOCHANGE)) && CPlayer.ReadyWeapon && (CPlayer.ReadyWeapon.SlotNumber == (i%10)) ) ncolor = Font.CR_FIRE; + else + { + bool hasammo = false; + for ( Inventory inv=CPlayer.mo.Inv; inv; inv=inv.Inv ) + { + bool dummy; + int slot; + if ( inv is 'Weapon' ) [dummy, slot] = CPlayer.weapons.LocateWeapon(Weapon(inv).GetClass()); + if ( (slot == (i%10)) && (!Weapon(inv).Ammo1 || (Weapon(inv).Ammo1.Amount > 0)) ) + hasammo = true; + } + if ( !hasammo ) ncolor = Font.CR_RED; + } + Screen.DrawText(mTewiFont.mFont,ncolor,xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + xx += 12; + if ( i == 5 ) + { + xx = ss.x-(margin+58); + yy += 14; + } + } + } + + private void DrawStatus() + { + Screen.DrawTexture(StatusTex,false,margin,ss.y-(margin+27),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + let d = Demolitionist(CPlayer.mo); + int dw = DashInter.GetValue(); + double alph = .6; + if ( !d || (d.dashfuel > 20) || ((gametic%10) < 5) ) alph = 1.; + Screen.DrawTexture(DashTex,false,margin+2,ss.y-(margin+21),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,dw,DTA_Alpha,alph); + int fw = FuelInter.GetValue(); + Screen.DrawTexture(FuelTex,false,margin+2,ss.y-(margin+25),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,fw); + int ht = clamp(HealthInter.GetValue(),0,10000); + int hw = min(ht,100); + Screen.DrawTexture(HealthTex[0],false,margin+2,ss.y-(margin+15),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); + if ( ht > 100 ) + { + hw = min(ht-100,100); + Screen.DrawTexture(HealthTex[1],false,margin+2,ss.y-(margin+15),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); + } + if ( ht > 200 ) + { + hw = int(min(ht-100,400)*0.25); + Screen.DrawTexture(HealthTex[2],false,margin+2,ss.y-(margin+15),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); + } + if ( ht > 500 ) + { + hw = int(min(ht-500,500)*0.2); + Screen.DrawTexture(HealthTex[2],false,margin+2,ss.y-(margin+15),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); + } + int hcolor = Font.CR_RED; + if ( ht > 500 ) hcolor = Font.CR_GOLD; + else if ( ht > 200 ) hcolor = Font.CR_PURPLE; + else if ( ht > 100 ) hcolor = Font.CR_CYAN; + Screen.DrawText(mTewiFont.mFont,hcolor,margin+108,ss.y-(margin+16),String.Format("%3d",clamp(ht,0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + } + + private void DrawMessages() + { + // common message area + // pickup messages } override void Draw( int state, double TicFrac ) { Super.Draw(state,TicFrac); if ( (state != HUD_StatusBar) && (state != HUD_Fullscreen) ) return; + if ( !safezone ) safezone = CVar.GetCVar('swwm_hudmargin',players[consoleplayer]); + if ( !maxchat[0] ) maxchat[0] = CVar.GetCVar('swwm_maxshown',players[consoleplayer]); + if ( !maxchat[1] ) maxchat[1] = CVar.GetCVar('swwm_maxshownbig',players[consoleplayer]); + if ( !maxpick ) maxpick = CVar.GetCVar('swwm_maxpickup',players[consoleplayer]); BeginHUD(); - let d = Demolitionist(CPlayer.mo); - Vector2 hs = GetHUDScale(); - Vector2 ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y); - Screen.DrawTexture(StatusTex,false,20,ss.y-47,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( d && (((d.dashcooldown <= 0) && (d.dashfuel >= 20.)) || (gametic%8 < 4)) ) - Screen.DrawTexture(DashTex,false,22,ss.y-45,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int fw = d?int(d.dashfuel*1.12):0; - Screen.DrawTexture(FuelTex,false,42,ss.y-45,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,fw); - int ht = clamp(HealthInter.GetValue(),0,10000); - int hw = int(min(ht,1000)*0.1); - Screen.DrawTexture(HealthTex[0],false,22,ss.y-35,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); - if ( ht > 1000 ) - { - hw = int(min(ht-1000,1000)*0.1); - Screen.DrawTexture(HealthTex[1],false,22,ss.y-35,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); - } - if ( ht > 2000 ) - { - hw = int(min(ht-1000,4000)*0.025); - Screen.DrawTexture(HealthTex[2],false,22,ss.y-35,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); - } - if ( ht > 5000 ) - { - hw = int(min(ht-5000,5000)*0.02); - Screen.DrawTexture(HealthTex[2],false,22,ss.y-35,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRight,hw); - } - int hcolor = Font.CR_RED; - if ( ht > 5000 ) hcolor = Font.CR_GOLD; - else if ( ht > 2000 ) hcolor = Font.CR_PURPLE; - else if ( ht > 1000 ) hcolor = Font.CR_CYAN; - Screen.DrawText(mTewiFont.mFont,hcolor,128,ss.y-36,String.Format("%04d",clamp(ht,0,9999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + hs = GetHUDScale(); + ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y); + margin = clamp(safezone.GetInt(),0,40); + FracTic = TicFrac; + DrawTarget(); + DrawScore(); + DrawInventory(); + DrawStatus(); + DrawWeapon(); + DrawMessages(); } } diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index 9cee10422..d91e8a613 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -70,6 +70,170 @@ Class SWWMArmor : Armor } } +// Base casing classes +Class SWWMCasing : Actor +{ + int deadtimer, numbounces; + double pitchvel, anglevel; + double heat; + + Default + { + Radius 2; + Height 2; + +NOBLOCKMAP; + +MISSILE; + +MOVEWITHSECTOR; + +THRUACTORS; + +USEBOUNCESTATE; + +INTERPOLATEANGLES; + +NOTELEPORT; + +ROLLSPRITE; + +ROLLCENTER; + Mass 1; + Gravity 0.35; + BounceType "Hexen"; + WallBounceFactor 0.65; + BounceFactor 0.65; + BounceSound "explodium/casing"; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + deadtimer = 0; + pitchvel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1); + anglevel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1); + heat = 1.0; + } + override void Tick() + { + Super.Tick(); + if ( isFrozen() ) return; + if ( InStateSequence(CurState,ResolveState("Death")) ) + { + deadtimer++; + if ( deadtimer > 300 ) A_FadeOut(0.05); + return; + } + heat -= 0.05; + if ( heat <= 0 ) return; + let s = Spawn("SWWMSmallSmoke",pos); + s.alpha *= heat; + } + States + { + Spawn: + XZW1 A 1 + { + angle += anglevel; + pitch += pitchvel; + } + Loop; + Bounce: + #### # 0 + { + pitchvel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1); + anglevel = FRandom[Junk](10,30)*RandomPick[Junk](-1,1); + vel = (vel.unit()+(FRandom[Junk](-.2,.2),FRandom[Junk](-.2,.2),FRandom[Junk](-.2,.2))).unit()*vel.length(); + if ( numbounces && ((numbounces > 3) || (Random[Junk](1,20) < 17) || (vel.z > -1.4)) ) + { + ClearBounce(); + ExplodeMissile(); + } + numbounces++; + } + Goto Spawn; + Death: + #### # -1 + { + pitch = 0; + angle = FRandom[Junk](0,360); + roll = FRandom[Junk](0,360); + } + Stop; + } +} + +Class SWWMBulletImpact : Actor +{ + Default + { + RenderStyle "Add"; + Radius 0.1; + Height 0; + +NOGRAVITY; + +NOBLOCKMAP; + +DONTSPLASH; + +NOTELEPORT; + Scale 0.25; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + A_SprayDecal("Pock",-20); + int numpt = int(Random[Junk](5,10)*scale.x*4); + Vector3 x = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); + for ( int i=0; i 2 ) Destroy(); + } +} + // Base class for all SWWM Weapons Class SWWMWeapon : Weapon { @@ -89,6 +253,15 @@ Class SWWMWeapon : Weapon A_ClearRefire(); Super.OwnerDied(); } + override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack ) + { + if ( mod == 'Melee' ) return StringTable.Localize("$O_MELEE"); + return Super.GetObituary(victim,inflictor,mod,playerattack); + } + // draw ammo on hud above weapon box + virtual ui void DrawWeapon( double TicFrac, double bx, double by, Vector2 hs, Vector2 ss ) + { + } // instant raise/lower action void A_FullRaise() { @@ -124,6 +297,64 @@ Class SWWMWeapon : Weapon player.SetPSprite(PSP_FLASH,null); player.mo.BringUpWeapon(); } + private action bool TryMelee( double angle, int dmg ) + { + FTranslatedLineTarget t; + double slope = AimLineAttack(angle,DEFMELEERANGE,t,0.,ALF_CHECK3D); + FLineTraceData d; + LineTrace(angle,DEFMELEERANGE,slope,0,player.viewheight,data:d); + if ( d.HitType != TRACE_HitNone ) + { + bool bloodless = true; + if ( d.HitType == TRACE_HitActor ) + { + double diff = deltaangle(self.angle,AngleTo(d.HitActor)); + self.angle += clamp(diff,-5.,5.); + dmg = d.HitActor.DamageMobj(invoker,self,dmg,'Melee',DMG_USEANGLE|DMG_THRUSTLESS,atan2(d.HitDir.y,d.HitDir.x)); + SWWMHandler.DoKnockback(d.HitActor,d.HitDir,dmg*1000); + if ( d.HitActor.player ) d.HitActor.A_QuakeEx(2,2,2,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.25); + if ( !d.HitActor.bNOBLOOD ) + { + d.HitActor.TraceBleed(dmg,invoker); + d.HitActor.SpawnBlood(d.HitLocation,atan2(d.HitDir.y,d.HitDir.x)+180,dmg); + } + else bloodless = false; + } + else if ( d.HitType == TRACE_HitWall ) + d.HitLine.RemoteActivate(self,d.LineSide,SPAC_Impact,d.HitLocation-d.HitDir*4); + A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.12); + A_StartSound(bloodless?"demolitionist/punch":"demolitionist/punchf",CHAN_WEAPON,CHANF_OVERLAP); + A_AlertMonsters(); + return true; + } + return false; + } + action void A_Melee( int dmg = 20 ) + { + for ( int i=0; i<16; i++ ) if ( TryMelee(angle+i*(45./16),dmg) || TryMelee(angle-i*(45./16),dmg) ) return; + } + override void PlayUpSound( Actor origin ) + { + if ( UpSound ) origin.A_StartSound(UpSound,CHAN_WEAPON,CHANF_OVERLAP); + } + action void A_SWWMFlash( StateLabel flashlabel = null ) + { + if ( !player || !player.ReadyWeapon ) + return; + Weapon weap = player.ReadyWeapon; + State flashstate = null; + if ( !flashlabel ) + { + if ( weap.bAltFire ) + flashstate = weap.FindState('AltFlash'); + if ( !flashstate ) + flashstate = weap.FindState('Flash'); + } + else flashstate = weap.FindState(flashlabel); + player.SetPSprite(PSP_FLASH,flashstate); + A_OverlayFlags(PSP_FLASH,PSPF_RENDERSTYLE,true); + A_OverlayRenderStyle(PSP_FLASH,STYLE_Add); + } Default { Weapon.BobStyle "Alpha"; @@ -132,6 +363,7 @@ Class SWWMWeapon : Weapon Weapon.BobRangeY 0.2; Weapon.YAdjust 0; +WEAPON.NOALERT; + +WEAPON.NODEATHINPUT; +FLOATBOB; FloatBobStrength 0.25; } diff --git a/zscript/swwm_menu.zsc b/zscript/swwm_menu.zsc index ff2e7bbef..3e01ee2ab 100644 --- a/zscript/swwm_menu.zsc +++ b/zscript/swwm_menu.zsc @@ -1 +1,49 @@ // internal "knowledge base" and more +Class SWWMKnowledgeBaseMenu : GenericMenu +{ + // TODO everything, just have it be a blank menu for now + Font TewiFont; + + override void Init( Menu parent ) + { + Super.Init(parent); + TewiFont = Font.GetFont('TewiShaded'); + MenuSound("menu/activate"); + } + + override bool MenuEvent( int mkey, bool fromcontroller ) + { + switch( mkey ) + { + case MKEY_ENTER: + case MKEY_BACK: + MenuSound(GetCurrentMenu()?"menu/backup":"menu/clear"); + Close(); + return true; + } + return false; + } + + override void Drawer() + { + Super.Drawer(); + String str; + double hs = min(floor(Screen.GetWidth()/640.),floor(Screen.GetHeight()/400.)); + if ( hs < 1. ) + { + str = StringTable.Localize("$SWWM_TOOSMALL"); + BrokenLines l = TewiFont.BreakLines(str,CleanWidth/2); + int xx, yy = (CleanHeight-l.Count()*TewiFont.GetHeight())/2; + for ( int i=0; ifloorz ) SetStateLabel("Fall"); - else SetStateLabel("JumpEnd"); + if ( player.onground ) SetStateLabel("JumpEnd"); + else SetStateLabel("Fall"); } return; } - invoker.fuelcooldown = 10; + fuelcooldown = max(20,fuelcooldown); + } + override bool CanCollideWith( Actor other, bool passive ) + { + if ( !InStateSequence(CurState,FindState("Dash")) ) return true; + if ( other.bSHOOTABLE && (other.mass < LARGE_MASS) && !other.bDONTTHRUST ) + { + A_StartSound("demolitionist/bump",CHAN_FOOTSTEP,CHANF_OVERLAP); + other.A_StartSound("demolitionist/bump",CHAN_FOOTSTEP,CHANF_OVERLAP); + other.DamageMobj(self,self,int(max(10,vel.length())),'Dash',DMG_THRUSTLESS); + if ( other ) + { + other.vel += vel*(40./other.mass); + other.vel.z += vel.length()*(3./other.mass); + } + } + return true; } override void Tick() { Super.Tick(); + if ( player.onground && !bNoGravity && !lastground && (waterlevel < 2) && (health > 0) ) + { + if ( lastvelz < -30 ) + { + let s = Spawn("DemolitionistShockwave",pos); + s.target = self; + s.special1 = int(-lastvelz); + ReactionTime = 17; + A_Stop(); + A_AlertMonsters(); + if ( player == players[consoleplayer] ) + { + A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP); + A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP,pitch:.7); + A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP,pitch:.4); + } + } + if ( lastvelz < -10 ) A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP); + A_Footstep(0,true,clamp(-lastvelz*0.05,0.01,1.0)); + } + lastground = player.onground; + lastvelz = prevvelz; + prevvelz = vel.z; bNOFRICTION = InStateSequence(CurState,FindState("Dash")); fuelcooldown = max(0,fuelcooldown-1); + dashcooldown = max(0,dashcooldown-1); + boostcooldown = max(0,boostcooldown-1); if ( fuelcooldown <= 0 ) - dashfuel = min(100.,dashfuel+max(dashfuel*.01,.05)); + dashfuel = min(120.,dashfuel+max(dashfuel*.01,.05)); + if ( (dashboost > 0.) && (InStateSequence(CurState,FindState("Dash")) || (InStateSequence(CurState,FindState("Jump")) && player.cmd.buttons&BT_JUMP)) ) + dashsnd = true; + else + { + if ( dashsnd ) A_StartSound("demolitionist/jetstop",CHAN_JETPACK); + dashsnd = false; + } + if ( dashboost <= 0. ) return; + if ( InStateSequence(CurState,FindState("Dash")) ) + { + Actor a; + for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ ) + { + a = Spawn("DashTrail",Vec3Angle(30,angle+i*160,30)); + a.vel = (RotateVector((j,0),angle+i*160),0)-(0,0,1)*j; + a.vel -= vel*.5; + } + } + else if ( InStateSequence(CurState,FindState("Jump")) ) + { + Actor a; + for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ ) + { + a = Spawn("DashTrail",Vec3Angle(10,angle+i*160,30)); + a.vel = .5*(RotateVector((j,0),angle+i*160),0)-(0,0,1)*j; + a.vel -= vel*.5; + } + } } override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle ) { + // lucky collar + if ( Health < 25 ) damage /= 4; return lastdamage = Super.DamageMobj(inflictor,source,damage,mod,flags,angle); } + override void CalcHeight() + { + Super.CalcHeight(); + // handle smooth step down (hacky but looks ok) + player.viewz += ssup; + ssup = max(0,(ssup*.7)-.25); + } override void MovePlayer() { if ( InStateSequence(CurState,FindState("Dash")) ) player.cmd.forwardmove = player.cmd.sidemove = 0; Super.MovePlayer(); + if ( player.onground ) lastgroundtic = gametic; + // anchor to ground when going down steps + if ( !player.onground && !bNoGravity && (waterlevel < 2) && (abs(pos.z-floorz) <= maxdropoffheight) && (player.jumptics == 0) && (vel.z < 0) ) + { + ssup = max(0,(pos.z-floorz)); + SetOrigin(Vec2OffsetZ(0,0,floorz),true); + player.onground = true; + } if ( !(player.cmd.forwardmove|player.cmd.sidemove) ) PlayIdle(); - if ( player.onground ) last_jump_held = int.min; Vector3 dodge = (0,0,0), x, y, z; [x, y, z] = swwm_CoordUtil.GetAxes(pitch,angle,roll); int fm = player.cmd.forwardmove; @@ -88,9 +202,13 @@ Class Demolitionist : PlayerPawn if ( !(fm|sm) ) fm = 1; if ( fm ) dodge += (fm>0)?X:-X; if ( sm ) dodge += (sm>0)?Y:-Y; - if ( player.onground ) dodge.z = max(0,dodge.z); + if ( player.onground ) + { + dodge.z = max(0,dodge.z); + if ( dodge == (0,0,0) ) dodge.xy = RotateVector((1,0),angle); + } dodge.z += .15; - if ( (dodge.length() > 0) && (dashcooldown <= 0) && (dashfuel > 20.) && player.cmd.buttons&BT_STRAFE ) + if ( (dodge.length() > 0) && (dashcooldown <= 0) && (dashfuel > 20.) && player.cmd.buttons&BT_USER2 ) { dashdir = dodge.unit(); dashcooldown = 40; @@ -104,24 +222,21 @@ Class Demolitionist : PlayerPawn vel *= 0; player.jumptics = -1; SetStateLabel("Dash"); - last_jump_held = int.min; - } - else if ( player.onground || !(level.maptime%3) ) - { - dashcooldown = max(0,dashcooldown-1); - boostcooldown = max(0,boostcooldown-1); + A_StartSound("demolitionist/jet",CHAN_JETPACK,CHANF_LOOP); } } override void CheckJump() { if ( InStateSequence(CurState,FindState("Dash")) ) return; // do not - bool walljump = LineTrace(angle-180,Radius*4,0,offsetz:height*.2); + bool walljump = LineTrace(angle-180,Radius*4,0,TRF_NOSKY|TRF_THRUHITSCAN,height*.2); if ( player.cmd.buttons&BT_JUMP ) { if ( player.crouchoffset ) player.crouching = 1; else if ( waterlevel >= 2 ) vel.z = 4*Speed; else if ( bNoGravity ) vel.z = 3.; - else if ( level.IsJumpingAllowed() && (last_jump_held < gametic-4) && (((dashfuel > 10.) && (boostcooldown <= 0)) || player.onground || walljump) ) + else if ( level.IsJumpingAllowed() + && (player.onground && (player.jumptics == 0)) + || (!player.onground && (level.maptime > last_jump_held) && (((dashfuel > 10.) && (boostcooldown <= 0)) || walljump)) ) { double jumpvelz = JumpZ*35./TICRATE; double jumpfac = 0; @@ -136,7 +251,6 @@ Class Demolitionist : PlayerPawn } if ( jumpfac > 0 ) jumpvelz *= jumpfac; vel.z = max(0,vel.z)+jumpvelz; - vel.z *= 1.25; if ( !player.onground ) { // check for wall kicks @@ -146,16 +260,21 @@ Class Demolitionist : PlayerPawn bOnMobj = false; player.jumpTics = -1; if ( !(player.cheats&CF_PREDICTING) ) - A_StartSound("*jump",CHAN_BODY); + A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP); if ( (dashfuel > 10.) && !player.onground && !walljump ) { dashboost = 3.; - boostcooldown = 5; + boostcooldown = 20; + A_StartSound("demolitionist/jet",CHAN_JETPACK,CHANF_LOOP); + } + else + { + dashboost = 0.; + vel.z *= 1.25; } - else dashboost = 0.; SetStateLabel("Jump"); } - last_jump_held = gametic; + last_jump_held = level.maptime+1; } } override void PlayIdle() @@ -187,7 +306,10 @@ Class Demolitionist : PlayerPawn else if ( InStateSequence(CurState,FindState("See")) || InStateSequence(CurState,FindState("Float")) || InStateSequence(CurState,FindState("FloatLoop")) ) + { SetStateLabel("Spawn"); + A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP,.2); + } else if ( InStateSequence(CurState,FindState("SeeFast")) || InStateSequence(CurState,FindState("SeeFastLoop")) ) SetStateLabel("SeeFastEnd"); @@ -253,7 +375,10 @@ Class Demolitionist : PlayerPawn SetStateLabel("SeeFast"); else if ( InStateSequence(CurState,FindState("Spawn")) || InStateSequence(CurState,FindState("Turn")) ) + { SetStateLabel("See"); + A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.2); + } } } else if ( !bNoGravity && (waterlevel < 1) ) @@ -288,16 +413,94 @@ Class Demolitionist : PlayerPawn { PlayAttacking(); } - action void A_DMFade() + void A_DMFade() { if ( !deathmatch || player ) return; A_FadeOut(0.03); } - action void A_DemoPain() + void A_DemoPain() { - if ( invoker.lastdamage > 300 ) A_StartSound("*pain100",CHAN_VOICE); - else if ( invoker.lastdamage > 50 ) A_StartSound("*pain50",CHAN_VOICE); - else A_StartSound("*pain25",CHAN_VOICE); + if ( !myvoice ) myvoice = CVar.GetCVar('swwm_voicetype',player); + if ( !mute ) mute = CVar.GetCVar('swwm_mutevoice',player); + if ( lastdamage > 60 ) + { + A_StartSound("*pain25",CHAN_VOICE); + if ( mute.GetInt() < 4 ) + A_StartSound(String.Format("voice/%s/hipain",myvoice.GetString()),CHAN_DEMOVOICE,CHANF_OVERLAP); + } + else if ( lastdamage > 40 ) + { + A_StartSound("*pain50",CHAN_VOICE); + if ( mute.GetInt() < 4 ) + A_StartSound(String.Format("voice/%s/pain",myvoice.GetString()),CHAN_DEMOVOICE,CHANF_OVERLAP); + } + else if ( lastdamage > 0 ) + { + A_StartSound("*pain100",CHAN_VOICE); + if ( mute.GetInt() < 4 ) + A_StartSound(String.Format("voice/%s/lopain",myvoice.GetString()),CHAN_DEMOVOICE,CHANF_OVERLAP); + } + } + void A_DemoScream() + { + if ( !myvoice ) myvoice = CVar.GetCVar('swwm_voicetype',player); + if ( !mute ) mute = CVar.GetCVar('swwm_mutevoice',player); + A_PlayerScream(); + if ( mute.GetInt() < 4 ) + A_StartSound(String.Format("voice/%s/death",myvoice.GetString()),CHAN_DEMOVOICE,CHANF_OVERLAP); + } + override bool OnGiveSecret( bool printmsg, bool playsound ) + { + if ( !mute ) mute = CVar.GetCVar('swwm_mutevoice',player); + int score = 500; + // last secret (this is called before counting it up, so have to subtract) + if ( level.found_secrets == level.total_secrets-1 ) score = 5000; + Console.Printf(StringTable.Localize("$SWWM_FINDSECRET"),player.GetUserName(),score); + if ( CheckLocalView() && (mute.GetInt() < 2) ) SWWMHandler.AddOneliner("findsecret",40); + GiveInventory("SWWMCredits",score); + return true; + } + override void AddInventory( Inventory item ) + { + if ( !mute ) mute = CVar.GetCVar('swwm_mutevoice',player); + Super.AddInventory(item); + if ( (item is 'Weapon') && CheckLocalView() && (mute.GetInt() < 2) ) + SWWMHandler.AddOneliner("getweapon"); + if ( multiplayer && (item is 'Key') ) + { + // share all keys in mp + for ( int i=0; i= 2) ) + return Super.UseInventory(item); + bool res = Super.UseInventory(item); + if ( res ) SWWMHandler.AddOneliner("puzzsucc",10); + else SWWMHandler.AddOneliner("puzzfail",20); + return res; + } + void A_Footstep( double yofs, bool run = false, double vol = .3 ) + { + if ( run ) + { + A_StartSound("demolitionist/run",CHAN_FOOTSTEP,CHANF_OVERLAP,vol); + let b = Spawn("InvisibleSplasher",(RotateVector((0,yofs*.25*radius),angle),0)); + b.A_CheckTerrain(); + } + else + { + A_StartSound("demolitionist/walk",CHAN_FOOTSTEP,CHANF_OVERLAP,vol*.5); + let b = Spawn("SmolInvisibleSplasher",(RotateVector((0,yofs*.25*radius),angle),0)); + b.A_CheckTerrain(); + } } States { @@ -309,33 +512,42 @@ Class Demolitionist : PlayerPawn See: // normal walking #### # 2; - XZW1 BCDEFGHIJKLMNOPA 2 A_JumpIf(player&&(player.cmd.buttons&BT_SPEED),"SeeFast"); + XZW1 BCD 2 A_JumpIf(player&&(player.cmd.buttons&BT_SPEED),"SeeFast"); + XZW1 E 0 A_Footstep(1); + XZW1 EFGHIJKL 2 A_JumpIf(player&&(player.cmd.buttons&BT_SPEED),"SeeFast"); + XZW1 M 0 A_Footstep(-1); + XZW1 MNOPA 2 A_JumpIf(player&&(player.cmd.buttons&BT_SPEED),"SeeFast"); Goto See+1; Turn: - #### # 8; - XZW1 C 1 A_JumpIf(!player||!player.cmd.yaw,"Spawn"); + #### # 8 A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.2); + XZW1 C 1 A_JumpIf(!player||!player.cmd.yaw,1); Wait; + XZW1 C 3 A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP,.2); + Goto Spawn+1; SeeFast: // sprinting - #### # 2; + #### # 2 A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.3); XZW1 QRST 2; Goto SeeFastLoop; SeeFastLoop: // keep sprinting + XZW1 U 0 A_Footstep(1,true); XZW1 UVWXYZ 2 A_JumpIf(player&&!(player.cmd.buttons&BT_SPEED),"SeeFastEnd"); - XZW2 ABCDEFG 2 A_JumpIf(player&&!(player.cmd.buttons&BT_SPEED),"SeeFastEnd"); + XZW2 A 2 A_JumpIf(player&&!(player.cmd.buttons&BT_SPEED),"SeeFastEnd"); + XZW2 B 0 A_Footstep(-1,true); + XZW2 BCDEFG 2 A_JumpIf(player&&!(player.cmd.buttons&BT_SPEED),"SeeFastEnd"); XZW1 T 2 A_JumpIf(player&&!(player.cmd.buttons&BT_SPEED),"SeeFastEnd"); Goto SeeFastLoop; SeeFastEnd: // brake - #### # 2; + #### # 2 A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP,.3); XZW2 HIJKL 2; Goto Spawn+1; Pain: // ouchy XZW1 A 0 A_JumpIf(player&&(player.mo==self)&&(player.crouchdir==-1),"CrouchPain"); - XZW1 A 1 A_Pain(); - XZW2 MNOPQ 1; + XZW2 M 1 A_DemoPain(); + XZW2 NOPQ 1; Goto Spawn+1; Death: XDeath: @@ -343,7 +555,7 @@ Class Demolitionist : PlayerPawn XZW1 A 0 A_JumpIf(player&&(player.mo==self)&&(player.crouchdir==-1),"CrouchDeath"); XZW1 A 2 { - A_PlayerScream(); + A_DemoScream(); A_NoBlocking(); } XZW2 RSTUVWXYZ 2; @@ -433,7 +645,7 @@ Class Demolitionist : PlayerPawn Goto Spawn+1; StartCrouch: // go crouching - #### # 2; + #### # 2 A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.45); XZW7 DEFGH 1; XZW7 IJKL 2; Goto Crouch+1; @@ -442,7 +654,11 @@ Class Demolitionist : PlayerPawn XZW7 M -1; Stop; CrouchMove: - XZW7 MNOPQRSTUV 2; + XZW7 MN 2; + XZW7 O 0 A_StartSound("demolitionist/runstart",CHAN_FOOTSTEP,CHANF_OVERLAP,.2); + XZW7 OPQRS 2; + XZW7 T 0 A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP,.2); + XZW7 TUV 2; Loop; CrouchMissile: XZW7 M 2; @@ -450,13 +666,14 @@ Class Demolitionist : PlayerPawn XZW8 AB 2; Goto Crouch+1; CrouchPain: - XZW7 M 1 A_DemoPain(); - XZW8 CDEF 1; + XZW7 M 1; + XZW8 C 1 A_DemoPain(); + XZW8 DEF 1; Goto Crouch+1; CrouchDeath: XZW7 M 2 { - A_PlayerScream(); + A_DemoScream(); A_NoBlocking(); } XZW8 GHIJK 2; @@ -464,8 +681,215 @@ Class Demolitionist : PlayerPawn XZW8 L 1 A_DMFade(); Wait; EndCrouch: - #### # 2; + #### # 2 A_StartSound("demolitionist/runstop",CHAN_FOOTSTEP,CHANF_OVERLAP,.45); XZW8 MNOPQRS 2; Goto Spawn+1; } } + +Class DashTrail : Actor +{ + Default + { + RenderStyle "Add"; + Radius 2; + Height 2; + Scale 0.3; + +NOGRAVITY; + +NOBLOCKMAP; + +DONTSPLASH; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + SetState(FindState("Spawn")+Random[ExploS](0,7)); + let t = Spawn("DashTrail2",pos); + t.vel = vel*1.2; + let s = Spawn("SWWMSmoke",pos); + s.vel = vel*.8; + s.SetShade(Color(1,1,1)*Random[ExploS](64,128)); + s.special1 = Random[ExploS](2,4); + s.scale *= 1.4; + s.alpha *= .3; + } + States + { + Spawn: + JFLB ABCDEFGH 1 Bright + { + A_FadeOut(.2); + A_SetScale(scale.x*.95); + } + Loop; + } +} + +Class DashTrail2 : Actor +{ + Default + { + RenderStyle "Add"; + Radius 2; + Height 2; + Scale 0.2; + Alpha 0.4; + +NOGRAVITY; + +NOBLOCKMAP; + +DONTSPLASH; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + SetState(FindState("Spawn")+Random[ExploS](0,7)); + } + States + { + Spawn: + JFLR ABCDEFGH 1 Bright + { + A_FadeOut(.02); + A_SetScale(scale.x*1.04); + if ( waterlevel > 0 ) + { + let b = Spawn("SWWMBubble",pos); + b.vel = vel; + b.scale *= scale.x; + Destroy(); + } + } + Loop; + } +} + +Class DemolitionistRadiusShockwaveTail : Actor +{ + Default + { + RenderStyle "Translucent"; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + +WALLSPRITE; + } + States + { + Spawn: + SDST A 1 + { + A_FadeOut(0.08); + A_SetScale(scale.x,scale.y*0.98); + } + Wait; + } +} + +Class DemolitionistRadiusShockwave : Actor +{ + Default + { + RenderStyle "Translucent"; + Speed 10; + DamageFunction int(20*alpha); + DamageType "GroundPound"; + Radius 16; + Height 8; + Alpha 0.8; + Scale 1.2; + +NOBLOCKMAP; + +DONTSPLASH; + +MISSILE; + +STEPMISSILE; + +NOEXPLODEFLOOR; + +WALLSPRITE; + +RIPPER; + } + override int DoSpecialDamage( Actor target, int damage, Name damagetype ) + { + if ( damage <= 0 ) return damage; + if ( (target.mass < LARGE_MASS) && !target.bDONTTHRUST ) + { + target.vel.xy += vel.xy.unit()*(5000./target.mass)*alpha; + target.vel.z += (800./target.mass)*alpha; + } + return damage; + } + States + { + Spawn: + SDST A 1 + { + SetZ(floorz); + let s = Spawn("DemolitionistRadiusShockwaveTail",pos); + s.vel = vel*.8; + s.scale = scale; + s.alpha = alpha; + s.angle = angle; + A_FadeOut(.04); + A_SetScale(scale.x*1.03,scale.y*0.99); + } + Wait; + Death: + SDST A 1 + { + SetZ(floorz); + A_FadeOut(.1); + A_SetScale(scale.x*1.06,scale.y*0.98); + } + Wait; + } +} + +Class DemolitionistShockwave : Actor +{ + Default + { + +NOGRAVITY; + +NOBLOCKMAP; + +NODAMAGETHRUST; + +FORCERADIUSDMG; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + A_QuakeEx(7,7,7,30,0,300+min(special1,50)*4,"",QF_RELATIVE|QF_SCALEDOWN,falloff:200,rollIntensity:1.5); + if ( target.player != players[consoleplayer] ) + { + A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP,attenuation:.3); + A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP,attenuation:.2,pitch:.7); + A_StartSound("demolitionist/hardland",CHAN_FOOTSTEP,CHANF_OVERLAP,attenuation:.1,pitch:.4); + } + target.A_Blast(BF_AFFECTBOSSES,200+min(special1*3,100),70+min(special1*2,100),10+min(special1/10,20),"SWWMNothing",""); + A_Explode(10+min(special1/3,30),70+min(special1*2,100),XF_EXPLICITDAMAGETYPE,damagetype:'GroundPound'); + for ( int i=0; i<360; i+=5 ) + { + let r = Spawn("DemolitionistRadiusShockwave",Vec3Angle(5,i)); + r.target = target; + r.angle = i; + r.vel.xy = (cos(i),sin(i))*r.speed; + r.alpha *= .1+min(special1*.03,.9); + } + for ( int i=0; i<360; i+=5 ) + { + Vector3 pvel = (FRandom[ExploS](-1,1),FRandom[ExploS](-1,1),FRandom[ExploS](-1,1)).unit()*FRandom[ExploS](1,3); + let s = Spawn("SWWMSmoke",Vec3Angle(4,i,8)); + s.vel = pvel+(cos(i),sin(i),0)*7.; + s.SetShade(Color(1,1,1)*Random[ExploS](64,224)); + s.special1 = Random[ExploS](1,4); + s.scale *= 1.5; + s.alpha *= .4; + } + int numpt = Random[ExploS](10,20); + for ( int i=0; i 0. ) cvel = vel.unit(); + } + Wait; + Death: + TNT1 A 0 A_BlowUp(); + XEX1 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 1 Bright; + Stop; + } +} + +Class ExploLight : PaletteLight +{ + Default + { + ReactionTime 15; + } +} +Class ExploLight2 : PaletteLight +{ + Default + { + ReactionTime 30; + Args 0,0,0,120; + } +} + +Class ExplodiumBulletImpact : Actor +{ + Default + { + DamageType "Explodium"; + RenderStyle "Add"; + Scale 1.2; + +NOGRAVITY; + +NOBLOCKMAP; + +NODAMAGETHRUST; + +FORCERADIUSDMG; + +FORCEXYBILLBOARD; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + A_AlertMonsters(); + SWWMHandler.DoBlast(self,120,80000); + A_Explode(50,120); + A_QuakeEx(4,4,4,10,0,250,"",QF_RELATIVE|QF_SCALEDOWN,falloff:150,rollintensity:0.2); + A_StartSound("explodium/hit",CHAN_BODY,attenuation:.2); + A_StartSound("explodium/hit",CHAN_VOICE,attenuation:.1); + A_SprayDecal("Scorch",-172); + Scale *= FRandom[ExploS](0.8,1.1); + Scale.x *= RandomPick[ExploS](-1,1); + Scale.y *= RandomPick[ExploS](-1,1); + int numpt = Random[ExploS](10,20); + for ( int i=0; i= 7 ) return ResolveState("CheckBullet"); + return ResolveState(null); + } + XZW2 TUVWXYZ 1; + XZW3 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP,.3); + XZW3 B 1 { invoker.clipcount = 0; } + XZW3 C 1; + XZW3 D 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP); + XZW3 EFGH 1; + XZW3 I 1 A_DropMag(true); + Goto ReloadEnd; + ReloadEmpty: + XZW2 A 1; + XZW3 JKLMNOP 1; + XZW3 Q 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP,.3); + XZW3 RS 1; + XZW3 T 1 A_StartSound("explodium/magout",CHAN_WEAPON,CHANF_OVERLAP); + XZW3 UVWX 1; + XZW3 Y 1 A_DropMag(); + Goto ReloadEnd; + ReloadEnd: + XZW3 Z 1; + XZW4 ABCDE 1; + XZW4 F 1 A_StartSound("explodium/magin",CHAN_WEAPON,CHANF_OVERLAP); + XZW4 GHIJKLMNOPQ 1; + XZW4 R 1 { A_StartSound("explodium/jamitin",CHAN_WEAPON,CHANF_OVERLAP); invoker.clipcount = 7; } + XZW4 STUV 1; + XZW2 A 1 A_JumpIf(!invoker.chambered,"Slide"); + Goto Ready; + Slide: + XZW2 A 1; + XZW4 WXY 1; + XZW5 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP,.3); + XZW5 BC 1; + XZW5 D 1 { invoker.chambered = true; invoker.clipcount--; } + XZW5 EFG 1; + XZW5 H 1 A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP); + XZW5 IJKLM 1; + Goto Ready; + Zoom: + XZW2 A 1 A_Jump(256,"Zoom1","Zoom2","Zoom2"); + Goto Ready; + CheckBullet: + XZW2 A 1; + XZW7 ABCDE 1; + XZW7 F 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP); + XZW7 GHIJKLMNOP 1; + XZW7 Q 1 A_StartSound("explodium/slideforward",CHAN_WEAPON,CHANF_OVERLAP); + XZW7 RS 1; + Goto Ready; + User1: + XZW2 A 1; + XZW7 TU 1; + User1Hold: + XZW7 V 1 A_StartSound("demolitionist/swing",CHAN_WEAPON,CHANF_OVERLAP); + XZW7 WX 1; + XZW7 Y 1 A_Melee(); + XZW7 Z 2; + XZW8 ABCDE 2; + XZW8 F 1 A_JumpIf(player.cmd.buttons&BT_USER1,"User1Hold"); + XZW2 B 0 { invoker.PlayUpSound(self); } + Goto Select; + Zoom1: + XZW2 A 2 A_StartSound("explodium/checkout",CHAN_WEAPON,CHANF_OVERLAP); + XZW8 GHIJKLMNOPQRSTUVWXYZ 2; + Goto Ready; + Zoom2: + XZW2 A 1 A_StartSound("explodium/speen",CHAN_WEAPON,CHANF_OVERLAP); + XZW9 ABCDEFGHIJKLMNOPQRSTUVW 1; Goto Ready; Deselect: - XZW2 ATUVWB 2; + XZW2 A 2 A_StartSound("explodium/deselect",CHAN_WEAPON,CHANF_OVERLAP); + XZWA TUVW 2; + XZW2 B 2; XZW2 B -1 A_FullLower(); Stop; + Flash: + XZWZ A 2 + { + let psp = player.GetPSprite(PSP_FLASH); + psp.frame = Random[GunFlash](0,9); + let l = Spawn("SWWMWeaponLight",pos); + l.target = self; + } + Stop; } }