From 1f649790ddd48774d3be09ca505e5ca641c7f2a4 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Tue, 15 Dec 2020 20:46:26 +0100 Subject: [PATCH] Prep work for future DLC Weaponset. DLC Weaponset: Slot 0 weapon added. --- FuturePlans.md | 1 + cvarinfo.txt | 1 + language.def_base | 31 ++++++--- language.def_lore | 4 ++ language.def_menu | 14 ++-- language.es_base | 29 +++++--- language.es_lore | 2 + language.es_menu | 13 ++-- language.version | 2 +- lore/default/grandlance.txt | 34 +++++++++ lore/es/grandlance.txt | 30 ++++++++ menudef.txt | 3 + models/modelnotes.txt | 4 ++ zscript.txt | 2 +- zscript/dlc1/swwm_blackfire.zsc | 1 + zscript/dlc1/swwm_dlcammo.zsc | 50 +++++++++++++ zscript/dlc1/swwm_hammertime.zsc | 1 + zscript/dlc1/swwm_heavymahsheengun.zsc | 1 + zscript/dlc1/swwm_hugeassrailgun.zsc | 41 +++++++++++ zscript/dlc1/swwm_notashotgun.zsc | 1 + zscript/dlc1/swwm_rebolber.zsc | 1 + zscript/dlc1/swwm_supermarioworld.zsc | 1 + zscript/dlc1/swwm_thiccbolts.zsc | 1 + zscript/dlc1/swwm_veryveryfrightening.zsc | 1 + zscript/dlc3/swwm_hugeassrailgun.zsc | 85 ----------------------- zscript/swwm_blazeit.zsc | 1 + zscript/swwm_cbt.zsc | 1 + zscript/swwm_danmaku.zsc | 1 + zscript/swwm_deathlydeathcannon.zsc | 1 + zscript/swwm_handler.zsc | 19 +++++ zscript/swwm_inter.zsc | 4 +- zscript/swwm_inventory.zsc | 67 +++++++++++++++++- zscript/swwm_jackhammer.zsc | 30 ++++++++ zscript/swwm_shot.zsc | 1 + zscript/swwm_sparkyboi.zsc | 1 + zscript/swwm_tastytreat.zsc | 1 + zscript/swwm_thiccboolet.zsc | 1 + zscript/swwm_thinkers.zsc | 1 + 38 files changed, 362 insertions(+), 121 deletions(-) create mode 100644 lore/default/grandlance.txt create mode 100644 lore/es/grandlance.txt create mode 100644 zscript/dlc1/swwm_hugeassrailgun.zsc delete mode 100644 zscript/dlc3/swwm_hugeassrailgun.zsc diff --git a/FuturePlans.md b/FuturePlans.md index ebcd4c9da..2b1b180b8 100644 --- a/FuturePlans.md +++ b/FuturePlans.md @@ -9,6 +9,7 @@ This is just a bit of *"future planning"* for stuff that I ***might*** add after - [7] Blackfire Igniter *(UnSX 5, Ultra Suite 3)* - [8] Rail Carbine *("Tesla Beamer" in Ultra Suite 2 & 3)* - [9] Ray-Khom *(UnSX)* + - [0] Grand Lance *(SWWM Iridium)* * ***(Maybe)* Add the collectibles that were removed due to time constraints:** - The Black Rat's Coven - Walpurgisnacht *(Debut album)* - Cat Catcher *(Promo poster)* diff --git a/cvarinfo.txt b/cvarinfo.txt index cccbaf027..8a296b63a 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -90,6 +90,7 @@ user int swwm_damagetarget = 1; // conditional healthbar hiding (1 - hide unti server int swwm_strictuntouchable = 0; // untouchable bonus ends... (1 - even if your armor absorbed all the damage, 2 - if you get hit by anything PERIOD) server int swwm_silencemap = 0; // silences the map when all kills/items/secrets are achieved (2 - play calm music) user int swwm_shadowdist = 2000; // max distance beyond which blob shadows are no longer rendered, helps performance +server bool swwm_swapweapons = true; // [DLC1] allows carrying only one weapon in each slot (excluding starter melee and pistol) server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; // self-explanatory diff --git a/language.def_base b/language.def_base index 745f22d68..b2ac351a3 100644 --- a/language.def_base +++ b/language.def_base @@ -34,6 +34,7 @@ T_BLACKFIRE = "Blackfire Igniter"; T_EMPCARBINE = "Rail Carbine"; I_EMPCARBINE = "EMP Rail Carbine"; T_RAYKHOM = "Ray-Khom"; +T_GRANDLANCE = "Grand Lance"; T_REDSHELL = "Shell"; T_REDSHELLS = "Shells"; T_GREENSHELL = "Slug"; @@ -82,6 +83,8 @@ T_EMPCORE = "Dysedum Rod"; T_RAYBOLT = "Ray-Khom Bolt"; T_RAYAMMO = "Ray-Khom Magazine"; T_RAYBATTERY = "Ray-Khom Battery"; +T_GRANDSPEAR = "Grand Lance Spear"; +T_GRANDAMMO = "Grand Lance Magazine"; T_BLASTSUIT = "Blast Suit"; T_EMBIGGENER = "Hammerspace Embiggener"; T_FABRICATOR1 = "Ammo Fabricator (Common)"; @@ -731,6 +734,8 @@ O_BLACKFIRE2 = "%o was very coldly impaled by %k."; O_EMPCARBINE = "%o was quite shocked by %k's lightning powers."; O_RAYKHOM = "%o received an express delivery of deadly plasma from %k."; O_RAYKHOM2 = "%o witnessed %k's UNLIMITED POWER."; +O_GRANDLANCE = "%o was torn asunder by %k's Grand Lance."; +O_GRANDLANCE2 = "%k showed %o how efficient nuclear fusion is."; O_POUND = "%o was very impressed by %k's landing."; O_DASH = "%o was discombobulated by a very fast moving %k."; O_BUTT = "%o received a lethal impact from %k's butt."; @@ -859,6 +864,7 @@ D_FROGGY2 = "\cj... for \cdFroggy Chair\cj.\c-"; D_BARRIER = "The Elemental Coating wore off."; D_MASHIRO = "\cjShe knows where you are...\c-"; SWWM_YNYKRONREADY = "Ynykron Artifact ready for firing."; +SWWM_SWAPWEAPON = "\cjPress \cfUse\cj to swap \cf%s\cj for \cf%s\cj.\c-"; SWWM_TITLEPRESENTS = "presents"; SWWM_TITLEMODBY = "a mod by \cxMarisa Kirisame"; SWWM_TITLESCROLL = "SWWM GZ ~ Cute Robutt Whomst Love To Explode Demons\nA wondrous GZDoom gameplay mod by Marisa Kirisame of UnSX Team\nLovingly designed 3D models with hand-painted 256-color dithered textures\nNearly 40,000 lines of ZScript, and still counting (god help me)\nThe deepest lore this side of the Doom Modiverse\nAnd much much more!\nGreetz to Mub, Ribbed, Slemg, Bunr, Kegbine, Term-kun, Hype64, Bartendy, Skelly, Mr. BIG SHOT WildWeasel, Endy, Mima-sama, Sinkie, BillowPlaster, Disgusting Dog Water, Dangle Logo, Lämp Paipu, Leek Spah, MarTREE, Dusty Demon Bread, Roasted Rock, Ed the Netcode Boy, Thirst Cactus, JimJam, Cappy Jay, A Nom, Missy Fits, Minor Cookie, Squid Kid, YukiCute, MafSulk, FineRaff25, NetroRutcase, ShudTheFugUpRyan, Kobl, Cacous Seriodemon, Zomb, Man of Chins, Bun Pun, Zikeous Shadestructor, Blimyot, Baja Blast Tittums, DrySpy.py, Typo Gem, Wantopus, Morf, Daedalus, Popato, SpengRob, Sgt. Shellpost, Loud M, Snk, Donut, C.Kid, Emit Birb, You Go To Sleep, Rach, Le No Chicken, Murasa, Smart Cactus Dude, Phantomboobs, Sanae Kochiya, Gardeboy, Cat, HK417, Smol Koa, Joe Mama, Jahn, Guta, Glue, Atan, Schweet Prints, Angury Teeth Practitioner, Sell Her, MiSiFu, Portuguese Sausage, Scoob Stub, Actually Jabba, Very Honest Cat, Chiaki's Tit Mole, Homie, Snacks, Tubz, Toof, Teef, Frisp, Sanyanya, Trashkat, Succ 'n Spicy, Melissa Follower When, Shokku, Scummyboi, Kat Gravity Rush, John Romero, John Carmack, Tim Allen, Tim Sweeney and last but not least my beloved pet dragon\nI tried to squeeze as many names as possible in there, that I could remember, at least, so if you're not in there and want in, feel free to ask\nThere's nothing else to see here, the scroll will now wrap around, see you again, have a nice day"; @@ -933,7 +939,7 @@ SWWM_SELLEXTRA = "\cf%s\cf sold an extra %s\cf. +%d\c-"; SWWM_ALLCLEAR = "\cxLevel all clear! \cf+%d\c-"; SWWM_NEWMISSION = "Mission briefing has been updated."; // intermission tips -SWWM_NINTERTIP = "85"; +SWWM_NINTERTIP = "90"; SWWM_INTERTIP = "Tip #%d:"; SWWM_INTERTIP1 = "The Demolitionist is immune to drowning, poison and even fall damage (excluding instant kill pits)."; SWWM_INTERTIP2 = "The Explodium Gun's altfire has an explosive yield proportional to the bullets left in the mag."; @@ -994,15 +1000,15 @@ SWWM_INTERTIP56 = "Some of these tips aren't really tips, but you probably alrea SWWM_INTERTIP57 = "Kinylum salt is not edible. Not only is it radioactive, but it would easily ignite in your stomach."; SWWM_INTERTIP58 = "Always keep your GZDoom up to date. Especially for mods like this one."; SWWM_INTERTIP59 = "Carbonated drinks are best consumed with a straw, to avoid damaging your teeth."; -SWWM_INTERTIP60 = "Add minced garlic, white pepper and basil to your tomato sauce, goes really well with pasta, you can thank me later."; -SWWM_INTERTIP61 = "The Reinforced Combat Hammer is pretty strong on its own, but with a Ragekit active, it will be boosted into a beastly headsmasher."; -SWWM_INTERTIP62 = "The Puntzer guns will gradually lose accuracy the quicker you shoot. Always remember: Short, controlled bursts."; -SWWM_INTERTIP63 = "\"The Sheen HMG is such a delicious festival of dakka that the mere sound of it firing makes me unleash Leviathan in my panties, and you can quote me on that.\" — Saya Miyamoto"; -SWWM_INTERTIP64 = "Pressing fire immediately after hitting something with the Quadravol's blades will result in a boosted point-blank explosion that'll send whatever's at the other end of the gun flying."; -SWWM_INTERTIP65 = "The Blackfire Igniter leaves a lingering trail of coldness long after its flames have died down, dealing even more damage."; -SWWM_INTERTIP66 = "The Blackfire Igniter can produce blocks of ice that float above liquids, becoming temporary walkable platforms. Do note that this obviously won't work on lava."; -SWWM_INTERTIP67 = "You can mark multiple targets with the Rail Carbine's ionizer and then hit them all in a single discharge. Do be quick, however, because the charge fades over time."; -SWWM_INTERTIP68 = "Being primarily a coilgun, the Ray-Khom is almost entirely silent and perfect for stealthy kills. Do note though that the impact of the projectile itself will be very loud."; +SWWM_INTERTIP60 = "The Reinforced Combat Hammer is pretty strong on its own, but with a Ragekit active, it will be boosted into a beastly headsmasher."; +SWWM_INTERTIP61 = "The Puntzer guns will gradually lose accuracy the quicker you shoot. Always remember: Short, controlled bursts."; +SWWM_INTERTIP62 = "\"The Sheen HMG is such a delicious festival of dakka that the mere sound of it firing makes me unleash Leviathan in my panties, and you can quote me on that.\" — Saya Miyamoto"; +SWWM_INTERTIP63 = "Pressing fire immediately after hitting something with the Quadravol's blades will result in a boosted point-blank explosion that'll send whatever's at the other end of the gun flying."; +SWWM_INTERTIP64 = "The Blackfire Igniter leaves a lingering trail of coldness long after its flames have died down, dealing even more damage."; +SWWM_INTERTIP65 = "The Blackfire Igniter can produce blocks of ice that float above liquids, becoming temporary walkable platforms. Do note that this obviously won't work on lava."; +SWWM_INTERTIP66 = "You can mark multiple targets with the Rail Carbine's ionizer and then hit them all in a single discharge. Do be quick, however, because the charge fades over time."; +SWWM_INTERTIP67 = "Being primarily a coilgun, the Ray-Khom is almost entirely silent and perfect for stealthy kills. Do note though that the impact of the projectile itself will be very loud."; +SWWM_INTERTIP68 = "The Grand Lance is a much safer alternative to the Ynykron Artifact if you don't want to accidentally kill yourself or your friends."; SWWM_INTERTIP69 = "Nice."; SWWM_INTERTIP70 = "Did you know that even with seat belts people die all the time in car crashes? I thought that was interesting."; SWWM_INTERTIP71 = "\"On the internet nobody can hear you being subtle.\" — Linus Torvalds"; @@ -1020,6 +1026,11 @@ SWWM_INTERTIP82 = "\"IF THE ZOO BANS ME FOR HOLLERING AT THE ANIMALS I WILL FACE SWWM_INTERTIP83 = "SWWM GZ is truly Some Weird Weapons Mod for GZDoom."; SWWM_INTERTIP84 = "\"In its vastness, the universe is no more than a mere grain of sand when compared to the limitless bounds of one's imagination.\" — Zanaveth Nekuraku III"; SWWM_INTERTIP85 = "You can shuffle the intermission art with Zoom, and these tips with Reload. Holding Altfire will hide the UI so you can see the art in full."; +SWWM_INTERTIP86 = "Add minced garlic, white pepper and basil to your tomato sauce, goes really well with pasta, you can thank me later."; +SWWM_INTERTIP87 = "This mod is compatible with H-Doom. No, seriously."; +SWWM_INTERTIP88 = "Some demons aren't actually evil. They'd rather just have a quiet life and enjoy a tasty hoagie every now and then."; +SWWM_INTERTIP89 = "Saya's design for the Demolitionist was inspired by Raidemin, the main character of a famous Nukuri anime."; +SWWM_INTERTIP90 = "As Nekuronbot AIs actually have a soul, they are capable of using magic. Saya taught Demo-chan the \"Blow Kiss\" spell just because she thought it'd be cute."; // intermission fanart SWWM_FANART = "Art: "; SWWM_NFANART = "6"; diff --git a/language.def_lore b/language.def_lore index 6d554a18d..fdc1be98d 100644 --- a/language.def_lore +++ b/language.def_lore @@ -445,6 +445,10 @@ SWWM_LORETAG_NOVOSKHANA = "Novoskhana"; SWWM_LORETAB_NOVOSKHANA = "Lore"; SWWM_LOREREL_NOVOSKHANA = "Anarukon"; SWWM_LORETXT_NOVOSKHANA = "\cxName:\c-\n\cf Undying Eternal Empire of Novoskhana\c-\n\cxClassification:\c-\n\cf Largest empire in existence\c-\n\cxLocation:\c-\n\cf Novoskhana\c-\n\nThe \cfEmpire of Novoskhana\c- was founded in 45306 BC by \cfEternal Empress Sythana Va Sarkha Daia Mykha Azanth Serei Yanikov I\c-. It is a tyrannical super-state spanning most of the habitable territory of the world it shares a name with, with an estimated population of 13 billion. Despite showing clear signs of physical and mental degradation, having lived for tens of thousands of years while still aging normally unlike the rest of her kin, the Eternal Empress has remained as its sole leader ever since its creation, with any and all potential successors being personally executed or exiled by her, and any who attempt an assassination being quite colorfully disemboweled by her in the process.\n\nThe societal structure of the empire is strictly matriarchal, all men exist only to serve their wives and provide them with children. In addition, most if not all women born in Novoskhana are raised for warfare, especially those of lower classes. Due to this fact, no one has dared to start any sort of war or conflict with the empire, as it is always at the ready to strike back, with its unstoppable armies of immortal warriors.\n\nThe Eternal Empress holds absolute power over all of Novoskhana, and is the one to make all important decisions, including the creation of new laws. Of all the various laws that have come from her, many have become so controversial that it has resulted in large groups of people \"splitting off\" from the empire to form their own separate nations. The Empress personally directs (and often herself performs) all executions of citizens that are deemed \cf\"Deviants\"\c-, a term used for all those who do not obey the empire's laws.\n\nThere are countless ways one could be labeled an \"enemy of the state\", among them, showing signs of \"destabilizing the natural order of society\", which includes but is not limited to: Men who reject marriage or having children, men who father another man as their first child, or are incapable of having any descendants, men who are witnessed maintaining relationships with other men, any individual who shares a name with the empress, any individual who \"lives in disconnect from society\" (usually used to refer to those who remain unemployed for extended periods of time, or who lack a home), women who do not contribute to war efforts, women who are seen maintaining relationships with other women, \"divergent\" individuals (term used for those that don't fall under the male/female binary), etc.\n\nTwo of the major bodies that split from the Empire are the \cfKurenai Kingdom\c-, initially founded by the \cfVexx Sisterhood\c- as a safe haven for enemies of the state, and the \cfSykhai Empire\c-, an ironically named anarcho-communist state founded by a branch of the Yanikov family that disagreed strongly with the \"broken system\" of the Empire. A large part of the total \cfAnarukon\c- population in the multiverse is contained in these two, though many others have settled in various other places, including Earth.\n\n\cxSaya's Notes:\c-\n\cfHoly shit, dude. If there ever was a contest for who's the most cartoonishly evil dictator in the history of the whole world, this fucker would get first place. Fucking... TERF empire. Wonderful, simply wonderful...\c-\n\n\cfYeah, I would never want to even get fucking close to that place, holy fuck. I'd get my head yeeted clean off for pretty much ALL reasons or something, as soon as I set foot in there. What I really don't understand is... like... HOW IN THE FUCK are there still people in there??? WHO THE FUCK EVEN would want to live there at all???\c-\n\n\cfOh, who am I kidding, of course there are people who'd be perfect with a shithole like that, there always are. If history has taught us anything, I mean... Yeah... Some people are shit enough to follow a leader like that, or worse...\c-"; +SWWM_LORETAG_GRANDLANCE = "Grand Lance"; +SWWM_LORETAB_GRANDLANCE = "Item"; +SWWM_LOREREL_GRANDLANCE = "Kmonn;Xekke;Saya;Unissix"; +SWWM_LORETXT_GRANDLANCE = "\cxDesignation:\c-\n\cf Suvan-Kin (\"Grand Lance\")\c-\n\cxManufacturer:\c-\n\cf Eushura Kmonn Jr.\c-\n\cxClassification:\c-\n\cf Portable Rail Gun\c-\n\nDevised as the \"last word\" in weaponry, the \cfSuvan-Kin\c- (\"Grand Lance\" in the \cfXekkas\c- language) is the world's first truly portable rail gun, capable of launching projectiles at speeds of up to 7500km/h (or 14000km/h at full charge). The weapon is powered entirely by a compact quad-cell Korberon-Eneiebium battery pack, easy to replace when needed. The ammunition employed are high-resonant Almasteel spears, capable of piercing cleanly through anything, without even as much as a single dent.\n\nIf the piercing potential of these spears isn't destructive enough, a miniature pure-fusion bomb embedded at the head will surely add up even more to that. In the words of the \cfXekkian\c- people: \cf\"The blinding flames of a sacrificed newborn star shall tear asunder all life, rend the soul from its body, and leave no trace whatsoever of those unfortunate to have wronged the wielder of the Grand Lance.\"\c-\n\n\cfPrimary Fire:\c- Single-target firing. The spear will automatically detonate on contact with anything. The area of effect is rather massive, so keep your distance. Due to the resilience of the material used, the spear will not be destroyed, and may potentially ricochet and hit something else.\n\n\cfSecondary Fire:\c- Multi-target firing. The spear is shot at a much higher velocity, and will penetrate multiple targets until finally stopping at something sufficiently solid.\n\n\cfPrimary Reload:\c- Reload the weapon.\n\n\cfSecondary Reload:\c- Swaps the battery. This action can only be performed once the charge is low enough, as it would be wasteful otherwise.\n\n\cfTechniques:\c- The longer you hold secondary fire, the stronger and faster the shot will be. At full charge it may even breach walls.\n\n\cxSaya's Notes:\c-\n\cfExcuse me, WHAT THE FUCK IS THIS???\c-\n\n\cfIs this a motherfucking rail gun? Like, the real deal? And it's actually portable?? AND IT SHOOTS MOTHERFUCKING SPEARS WITH MOTHERFUCKING FUSION BOMBS IN THEM??? OK, forget what I said about that other bigass gun from Kmonn, THIS SHIT is actually even more fucking ridiculous, like, what in the actual name of fuck???\c-\n\n\cfYeah, so that's why it's placed on the same slot as the Ynykron. Think of it as a \"safer\" alternative, basically. It's not world-ending, but it's still way too fucking strong.\c-"; SWWM_LORETAG_VOICEBOX = "Loudboi Voicebox"; SWWM_LORETAB_VOICEBOX = "Item"; SWWM_LOREREL_VOICEBOX = "AkariLabs;Ibuki;Demolitionist"; diff --git a/language.def_menu b/language.def_menu index f3adcbb4b..22f5aac3d 100644 --- a/language.def_menu +++ b/language.def_menu @@ -174,6 +174,7 @@ SWWM_SILENCE_KEEP = "Don't Change"; SWWM_SILENCE_SILENT = "Silence"; SWWM_SILENCE_CALM = "Calm Track"; SWWM_SHADOWDIST = "Shadow Distance"; +SWWM_SWAPWEAPONS = "Weapon Swapping"; TOOLTIP_SWWM_VOICETYPE = "Sets the voice pack for the player."; TOOLTIP_SWWM_MUTEVOICE = "Control what gets muted, if you'd rather have a more silent protagonist."; TOOLTIP_SWWM_FLASHSTRENGTH = "Screen flashes usually happen when firing some weapons, you can lower this if these effects are harmful for you."; @@ -254,6 +255,7 @@ TOOLTIP_SWWM_DAMAGETARGET = "Select when targetter healthbars should be shown."; TOOLTIP_SWWM_STRICTUNTOUCHABLE = "By default, the \"Untouchable\" bonus is active until you take direct damage. If you feel this isn't strict enough, you can also make it end if armor absorbs the damage, or, for extra strictness, on ANY hit, even while invulnerable."; TOOLTIP_SWWM_SILENCEMAP = "Chooses whether you want music to stop when you 100% a map. A third option is available which switches to a soothing calm track from a game you may recognize if you know me well."; TOOLTIP_SWWM_SHADOWDISTANCE = "Maximum distance at which to show blob shadows. May help performance."; +TOOLTIP_SWWM_SWAPWEAPONS = "Allow only one weapon per slot (excluding Deep Impact and Explodium Gun). Disable if you'd rather ignore this puny attempt at balance."; // knowledge base SWWM_COMINGSOON = "(coming soon)"; SWWM_MISSTAB = "Mission"; @@ -290,19 +292,19 @@ SWWM_STATSKILL = "Longest Untouchable Spree: "; SWWM_STATFAVWEAP = "Favorite Weapon: "; SWWM_STATHISCORE = "Highest Score: "; SWWM_INVTAB = "Inventory"; -SWWM_INVFAIL = "You can't use this right now"; -SWWM_INVNDROP = "You can't drop this"; +SWWM_INVFAIL = "You can't use this right now."; +SWWM_INVNDROP = "You can't drop this."; SWWM_NOINV = "(inventory is empty)"; SWWM_KEYTAB = "Keychain"; SWWM_NOKEYS = "(no keys found)"; SWWM_KBASETAB = "Library"; SWWM_STORETAB = "Store"; -SWWM_STOREFULL = "You can't hold more of that"; -SWWM_STOREMUNS = "You don't have enough money"; +SWWM_STOREFULL = "You can't hold more of that."; +SWWM_STOREMUNS = "You don't have enough money."; SWWM_NOSTORE = "(no items left to buy)"; SWWM_TRADETAB = "Trading"; -SWWM_TRADEFULL = "They can't hold more of that"; -SWWM_TRADEFAIL = "You can't trade this item"; +SWWM_TRADEFULL = "They can't hold more of that."; +SWWM_TRADEFAIL = "You can't trade this item."; SWWM_NOTRADE = "(no units found nearby for trade)"; SWWM_TRADETO = "Sent to"; SWWM_TRADEFROM = "Received from"; diff --git a/language.es_base b/language.es_base index e07e66a81..11ab3aa33 100644 --- a/language.es_base +++ b/language.es_base @@ -23,6 +23,7 @@ T_SHEENHMG = "Ametralladora Sheen"; I_SHEENHMG = "Ametralladora Pesada \"Sheen\""; I_QUADRAVOL = "Lanzador de Bolas de Fuego \"Quadravol\""; T_BLACKFIRE = "Encendedor de Fuego Negro"; +T_GRANDLANCE = "Gran Lanza"; T_EMPCARBINE = "Carabina Raíl"; I_EMPCARBINE = "Carabina Raíl EMP"; T_REDSHELL = "Cartucho"; @@ -73,6 +74,8 @@ T_EMPCORE = "Barra de Dysedum"; T_RAYBOLT = "Proyectil de Ray-Khom"; T_RAYAMMO = "Cargador de Ray-Khom"; T_RAYBATTERY = "Batería de Ray-Khom"; +T_GRANDSPEAR = "Arpón de Gran Lanza"; +T_GRANDAMMO = "Cargador de Gran Lanza"; T_BLASTSUIT = "Chaleco Antiexplosivos"; T_EMBIGGENER = "Ensanchecedor de Hammerspace"; T_FABRICATOR1 = "Fabricador de Munición (Común)"; @@ -676,6 +679,8 @@ O_BLACKFIRE2 = "%o fue empalado muy fríamente por %k."; O_EMPCARBINE = "%o quedó en shock tras presenciar los poderes de rayo de %k."; O_RAYKHOM = "%o recibió un envío exprés de plasma mortal de parte de %k."; O_RAYKHOM2 = "%o presenció el PODER ILIMITADO de %k."; +O_GRANDLANCE = "%o fue despedazad@[ao_esp] por la Gran Lanza de %k."; +O_GRANDLANCE2 = "%k mostró a %o lo eficiente que es la fusión nuclear."; O_POUND = "%o se llevó una gran impresión del aterrizaje de %k."; O_DASH = "%o fue descuajeringad@[ao_esp] a todo gas por %k."; O_BUTT = "%o recibió un impacto letal del trasero de %k."; @@ -802,6 +807,7 @@ D_FROGGY2 = "\cj... por una \cdSilla Rana\cj.\c-"; D_BARRIER = "El Revestimiento Elemental se ha desvanecido."; D_MASHIRO = "\cjSabe donde estás...\c-"; SWWM_YNYKRONREADY = "Artefacto Ynykron listo para disparar."; +SWWM_SWAPWEAPON = "\cjPulsa \cfUsar\cj para cambiar \cf%s\cj por \cf%s\cj.\c-"; SWWM_TITLEPRESENTS = "presenta"; SWWM_TITLEMODBY = "un mod de \cxMarisa Kirisame"; SWWM_TITLESCROLL = "SWWM GZ ~ Cute Robutt Whomst Love To Explode Demons\nUn maravilleante mod de gameplay para GZDoom por Marisa Kirisame de UnSX Team\nModelos 3D diseñados con cariño con texturas pintadas a mano de 256 colores con dithering\nCasi 40.000 líneas de ZScript, y aun contando (dios me ayude)\nEl lore más profundo a este lado del Modiverso de Doom\n¡Y mucho mucho más!\nSaludos a Mub, Ribbed, Slemg, Bunr, Kegbine, Term-kun, Hype64, Bartendy, Skelly, Mr. BIG SHOT WildWeasel, Endy, Mima-sama, Sinkie, BillowPlaster, Disgusting Dog Water, Dangle Logo, Lämp Paipu, Leek Spah, MarTREE, Dusty Demon Bread, Roasted Rock, Ed the Netcode Boy, Thirst Cactus, JimJam, Cappy Jay, A Nom, Missy Fits, Minor Cookie, Squid Kid, YukiCute, MafSulk, FineRaff25, NetroRutcase, ShudTheFugUpRyan, Kobl, Cacous Seriodemon, Zomb, Man of Chins, Bun Pun, Zikeous Shadestructor, Blimyot, Baja Blast Tittums, DrySpy.py, Typo Gem, Wantopus, Morf, Daedalus, Popato, SpengRob, Sgt. Shellpost, Loud M, Snk, Donut, C.Kid, Emit Birb, You Go To Sleep, Rach, Le No Chicken, Murasa, Smart Cactus Dude, Phantomboobs, Sanae Kochiya, Gardeboy, Cat, HK417, Smol Koa, Joe Mama, Jahn, Guta, Glue, Atan, Schweet Prints, Angury Teeth Practitioner, Sell Her, MiSiFu, Portuguese Sausage, Scoob Stub, Actually Jabba, Very Honest Cat, Chiaki's Tit Mole, Homie, Snacks, Tubz, Toof, Teef, Frisp, Sanyanya, Trashkat, Succ 'n Spicy, Melissa Follower When, Shokku, Scummyboi, Kat Gravity Rush, John Romero, John Carmack, Tim Allen, Tim Sweeney y por último pero no menos importante mi querido dragón mascota\nHe intentado estrujar todos los nombres que he podido ahí, que haya podido recordar, por lo menos, así que si no estás ahí y quieres entrar, solo pídelo\nYa no queda nada más que ver aquí, el scroll ahora hará bucle, see you again, have a nice day"; @@ -926,15 +932,15 @@ SWWM_INTERTIP56 = "Algunos de estos consejos no son realmente consejos, pero seg SWWM_INTERTIP57 = "La sal de Kinylum no es comestible. No solo es radioactiva, sino que también explotará en tu estómago."; SWWM_INTERTIP58 = "Mantén siempre GZDoom actualizado. Especialmente para mods como este."; SWWM_INTERTIP59 = "Las bebidas carbonatadas se toman mejor con una pajita, para evitar dañar tus dientes."; -SWWM_INTERTIP60 = "Mezcla ajo molido, pimienta blanca y albahaca con tu salsa de tomate, va ideal con pasta, puedes darme las gracias luego."; -SWWM_INTERTIP61 = "El Mazo de Combate Reforzado es bastante fuerte de por sí, pero con un Ragekit activo, se transformará en todo un revientacráneos."; -SWWM_INTERTIP62 = "Las armas Puntzer perderán puntería gradualmente cuanto más rápido dispares. Recuerda siempre: Ráfagas cortas y controladas."; -SWWM_INTERTIP63 = "\"La Ametralladora Sheen es tal festival delicioso de dakka que el mero sonido de dispararla hace que desate a Leviatán en mis bragas, y puedes citarme en eso.\" — Saya Miyamoto"; -SWWM_INTERTIP64 = "Pulsando disparo inmediatamente después de golpear algo con las bayonetas del Quadravol resultará en una explosión aumentada a bocajarro que mandará a lo que sea que esté al otro lado volando."; -SWWM_INTERTIP65 = "El Encendedor de Fuego Negro deja un rastro prolongado de frío mucho después de que sus llamas se hayan apagado, causando mucho más daño."; -SWWM_INTERTIP66 = "El Encendedor de Fuego Negro puede producir bloques de hielo que flotan sobre líquidos, convirtiéndose en plataformas temporales. Ten en cuenta que esto obviamente no funcionará en lava."; -SWWM_INTERTIP67 = "Puedes marcar múltiples objetivos con el ionizador de la Carabina de Raíl y luego alcanzarlos a todos en una sola descarga. Pero debes hacerlo rápido, ya que la carga se disipa con el tiempo."; -SWWM_INTERTIP68 = "Siendo principalmente una pistola de bobina, la Ray-Khom es casi completamente silenciosa y perfecta para matar sigilosamente. Ten en cuenta sin embargo que el impacto del proyectil en sí será muy ruidoso."; +SWWM_INTERTIP60 = "El Mazo de Combate Reforzado es bastante fuerte de por sí, pero con un Ragekit activo, se transformará en todo un revientacráneos."; +SWWM_INTERTIP61 = "Las armas Puntzer perderán puntería gradualmente cuanto más rápido dispares. Recuerda siempre: Ráfagas cortas y controladas."; +SWWM_INTERTIP62 = "\"La Ametralladora Sheen es tal festival delicioso de dakka que el mero sonido de dispararla hace que desate a Leviatán en mis bragas, y puedes citarme en eso.\" — Saya Miyamoto"; +SWWM_INTERTIP63 = "Pulsando disparo inmediatamente después de golpear algo con las bayonetas del Quadravol resultará en una explosión aumentada a bocajarro que mandará a lo que sea que esté al otro lado volando."; +SWWM_INTERTIP64 = "El Encendedor de Fuego Negro deja un rastro prolongado de frío mucho después de que sus llamas se hayan apagado, causando mucho más daño."; +SWWM_INTERTIP65 = "El Encendedor de Fuego Negro puede producir bloques de hielo que flotan sobre líquidos, convirtiéndose en plataformas temporales. Ten en cuenta que esto obviamente no funcionará en lava."; +SWWM_INTERTIP66 = "Puedes marcar múltiples objetivos con el ionizador de la Carabina de Raíl y luego alcanzarlos a todos en una sola descarga. Pero debes hacerlo rápido, ya que la carga se disipa con el tiempo."; +SWWM_INTERTIP67 = "Siendo principalmente una pistola de bobina, la Ray-Khom es casi completamente silenciosa y perfecta para matar sigilosamente. Ten en cuenta sin embargo que el impacto del proyectil en sí será muy ruidoso."; +SWWM_INTERTIP68 = "La Gran Lanza es una alternativa más segura al Artefacto Ynykron si no quieres matarte a ti o a tus amigos accidentalmente."; SWWM_INTERTIP70 = "¿Sabíais que incluso con cinturones de seguridad la gente muere todo el tiempo en accidentes de coche? Pensé que era interesante."; SWWM_INTERTIP71 = "\"En internet nadie puede escucharte ser sutil.\" — Linus Torvalds"; SWWM_INTERTIP72 = "Hay aproximadamente 9.3 mil millones de demonios criados solo para la guerra en el Infierno. Eso es ochocientas setenta y seis mil veces el conteo de monstruos de nuts.wad, y eso es terrible."; @@ -949,6 +955,11 @@ SWWM_INTERTIP82 = "\"SI EL ZOO ME PROHIBE LA ENTRADA POR GRITAR A LOS ANIMALES H SWWM_INTERTIP83 = "SWWM GZ es realmente Un Extraño Mod de Armas (Some Weird Weapons Mod) para GZDoom."; SWWM_INTERTIP84 = "\"En su inmensidad, el universo no es más que un mero grano de arena cuando se compara a los límites ilimitados de nuestra imaginación.\" — Zanaveth Nekuraku III"; SWWM_INTERTIP85 = "Puedes alternar el arte de intermisión con Zoom, y estos consejos con Recarga. Mantener Fuego Secundario ocultará la interfaz para que puedas ver el arte al completo."; +SWWM_INTERTIP86 = "Mezcla ajo molido, pimienta blanca y albahaca con tu salsa de tomate, va ideal con pasta, puedes darme las gracias luego."; +SWWM_INTERTIP87 = "Este mod es compatible con H-Doom. No, en serio."; +SWWM_INTERTIP88 = "Algunos demonios no son realmente malvados. Prefieren llevar una vida tranquila y disfrutar de un delicioso emparedado de vez en cuanto."; +SWWM_INTERTIP89 = "El diseño de Saya para la Demolicionista fue inspirado por Raidemin, el protagonista de un famoso anime Nukuri."; +SWWM_INTERTIP90 = "Ya que las IAs Nekuronbot resultan tener un alma, son capaces de usar magia. Saya le enseñó a Demo-chan el conjuro de \"Lanzar Beso\" solo porque pensaba que sería mono."; // intermission fanart SWWM_FANART = "Arte: "; // achievements diff --git a/language.es_lore b/language.es_lore index d19bcd008..bb29a0677 100644 --- a/language.es_lore +++ b/language.es_lore @@ -47,6 +47,8 @@ SWWM_LORETXT_EXPLODIUM = "\cxNombre:\c-\n\cf Explódium\c-\n\cxClasificación:\c SWWM_LORETXT_XEKKE = "\cxNombre:\c-\n\cf Xekke\c-\n\cxClasificación:\c-\n\cf Tierra de gigantes\c-\n\cxLocalización:\c-\n\cf Ixxeney, sistema Zenna, Coalición X'Animen\c-\n\n\cfXekke\c- es la mayor nación de \cfIxxeney\c-, el cual es también el mayor planeta del \cfsistema Zenna\c-. Cubriendo las regiones montañosas al oeste de la nación vecina de \cfDevanikna\c-, es el hogar de los \cfXekkian\c-, una raza de humanoides gigantes (con una altura media de 3.87 metros).\n\nLa nación es liderada por el rey y la reina de Xekke, actualmente \cfMal Kuratagon\c-, nieto de la deidad de la locura \cfMaruku Sarahabinaku\c- y \cfMysu Adasake\c-, hija menor de los \cfEnmascarados de Adasake\c-. Adicionalmente, la deidad de la locura también tiene el papel de patrón de los Xekkian.\n\nEntre las muchas civilizaciones miembro de la \cfCoalición X'Animen\c-, los Xekkian son una de las más avanzadas tecnológicamente, aunque sea solo a pocos pasos por detrás de los \cfNukuri\c-. Son bien conocidos por todos sus logros en el campo militar, y muchas de sus armas tienen fama por doquier, tanto como la fuerza de sus ejércitos de titanes. De hecho, la mayoría de miembros de la coalición suelen contratar mercenarios Xekkian para su defensa.\n\nEn cuanto a estructura, toda la nación se divide en sólo cinco ciudades, cada una de ellas separadas lejanamente de las otras, y localizadas en puntos estratégicos entre las montañas. La más pequeña de estas es la ciudad capital de Adkesa, alzada sobre la mayor cima de Ixxeney, y desde la cual se dice que el rey puede observar con claridad las otras cuatro ciudades. También en la capital se encuentra la embajada Nukuri, la cual en 1793 AC fue víctima de un ataque terrorista en respuesta al descontento general con la \cfFamilia Imperal Yathai\c-. Permanecería en ruinas hasta la caída del imperio, tras la cual fue reconstruida inmediatamente para demostrar la aprobación por parte de los Xekkian de la victoria del \cfFrente de Liberación de Nahkami\c-.\n\nSobre la gente en sí, lo primero que se hace notar es su elocuencia. El idioma Xekkas hablado por todos es percibido como siniestro y potente con cada palabra pronunciada, bastante adecuado para las intensas personalidades que muchos destilan. Sin embargo, aunque parezcan fieros e imponentes, también saben bien como mostrar su bondad a aquellos que lo necesiten, tal y como enseña su deidad patrón.\n\n\cxNotas de Saya:\c-\n\cfSolo he visto fotos del sitio este, de Zana-sama. Definitivamente mola, todas esas montañas rocosas, las ciudades expandiéndose alrededor, los lagos y cataratas, las zonas volcánicas con ríos enormes de magma y GENTE BAÑÁNDOSE EN ELLA (madre de dios)...\c-\n\n\cfY sí, ese es justo básicamente el hogar de Maruku-sama. Tiene ahí a toda la familia y todo, incluyendo a su... madre. Oh dios mío joder no hagas que empiece con su madre. Si es que voy a acabar otra vez encogida en un rincón pensando en AQUELLA vez.\c-\n\n\cfEs que no me lo creo una puñetera diosa milf de cinco metros todo buenorra va y me ofrece sexo justo ahí y entonces y luego puta joder me cago en todo por que tuve que ir y desmayarme joder es que podría haber tenido EL MEJOR SEXO DE MI PUTA VIDA CON LA PUTA DIOSA DE LA LUJURIA.\c-"; SWWM_LORETXT_MIXOM = "\cxNombre:\c-\n\cf Herramientas Mixom\c-\n\cxClasificación:\c-\n\cf Fabricante de Material Industrial\c-\n\cxLocalización:\c-\n\cf Japón\c-\n\cxPágina Web:\c-\n\cf https://mixom.co.jp\c-\n\n\cfMixom\c- es el mayor proveedor de material industrial del mundo, con cobertura casi global (extendiéndose más allá de la Tierra gracias a su asociación y negocios con la \cfUAC\c-, habiendo producido la mayoría de su equipamiento básico e infraestructura). Los únicos que han podido evitar su dominio completo del mercado son la Australiana \cfSymnatek\c- y la Escocesa \cfTecnologías Tach-Engine\c-, junto con su único competidor directo, \cfMoxim\c-.\n\nLos conflictos entre Mixom y Moxim muchas veces son noticia, dadas sus rápidamente incrementales \"guerras de demandas\" sobre quien provee de la mejor calidad en cierto producto.\n\nMixom es, además, uno de los últimos bastiones del capitalismo restantes en el país de Japón desde las grandes reformas del \cfPartido Comunista de Japón\c- en 2048.\n\n\cxNotas de Saya:\c-\n\cfDinero y poder, dominio absoluto, mierda de capitalismo. Asco grande... Ojalá exploten todos.\c-\n\n\cfNo puedes dar dos pasos sin cruzarte con algo que han hecho, están EN PUTAS TODAS PARTES. Como, por ejemplo, ¿todos los tornillos en tu cuerpo? Marca Mixom. ¿La refrigeración líquida? También Mixom... Seguiría, pero es que me da todo el asco decir su nombre tanto.\c-"; SWWM_LORETXT_IMANAKI = "\cxNombre:\c-\n\cf Fundación de Investigación Imanaki\c-\n\cxClasificación:\c-\n\cf Centro de Investigación de Alto Secreto\c-\n\cxLocalización:\c-\n\cf Kereshnovka, Rusia\c-\n\nLa \cfFundación de Investigación Imanaki\c- fue fundada en 2004 por \cfTetsuya Imanaki\c-, con sus oficinas centrales en el pueblo de \cfKereshnovka\c-, al norte de Siberia.\n\nAunque intentaron mantener todo su trabajo en secreto, mucha información era filtrada regularmente por fuentes anónimas. Es bien sabido que Imanaki Corp se dedicaba a experimentar con viajes interdimensionales, específicamente al mundo del \cfInfierno\c-. Mucho se estudió de ese mundo, y con los conocimientos ganados con la investigación, la fundación entonces comenzó a hacer pruebas con combinar tecnología humana y demoníaca. Al principio no se sabía exactamente como obtuvieron la tecnología para el viaje interdimensional, hasta que documentos de la \cfFacultad de Iluminados Nadies\c- fueron descubiertos a finales de 2099 demostrando su colaboración, y que la mayor parte de su tecnología era de origen \cfXevethan\c-, al igual que la IA \cfLANIR\c-.\n\nTras un incidente en el que algunos de los ghouls locales intentaron atacar las instalaciones, Imanaki Corp contactó con la \cfUAAF\c- para pedir defensa armada. Cuando el hombre que enviaron para negociar su contrato llegó al pueblo, fue asesinado al momento por uno de los ghouls. Esto hizo que la UAAF enviara soldados inmediatamente al área, para exterminar a estas criaturas, ya que resultó que eran mucho más hostiles de lo que habían pensado. Esta \"caza\" de los ghouls comenzó a mediados de 2007, y duró dos años seguidos, mientras todo el pueblo y sus alrededores fueron peinados a conciencia y toda criatura encontrada fue exterminada, excepto una.\n\nEl último ghoul que encontraron probó ser mucho más duro que el resto, llevándose varias vidas por delante mientras causaba incendios masivos en el bosque de Nuskar. Los pueblerinos les habían advertido de que esto no era un monstruo normal, sino algo mucho más poderoso, algo que no podrían derrotar. Llevó varios días debilitar al ghoul, y cuando finalmente se preparaban para el golpe de gracia, un hombre se aproximó a los soldados, y se puso entre ellos y la bestia. Definitivamente no era uno de los lugareños, y hablaba un idioma que no pudo ser identificado por nadie. A pesar de que se le ordenara retroceder, no se movió de su lugar, señalando a los soldados y gritándoles. Al final decidieron abrir fuego. Este fue uno de los mayores errores que la humanidad cometería.\n\nEse hombre no era otro sino el \cfPríncipe Anthon Anderken\c-, uno de los miembros más importantes de la realeza \cfAnarukon\c-, quien, por pura casualidad, había llegado a la Tierra para capturar a ese ghoul específicamente, por razones no determinadas, justo en el momento exacto en que comenzó la caza. Tras recibir los disparos, el ghoul se enfureció, y empleó sus últimas fuerzas para envolver todo en fuego infernal. La fuerza de esta explosión de fuego cegador pudo oírse por todo el mundo. Ningún soldado sobrevivió, siendo todo el bosque reducido a cenizas en un instante. Se desconoce lo que ocurrió con Anthon y el ghoul, pero la mayoría asume que ambos sobrevivieron.\n\nTras este espectacular incidente, Imanki Corp resumió sus operaciones, ahora libre de la amenaza de los ghouls, aunque se enfrentaron a muchas críticas de los lugareños por su decisión de destruir lo que consideraban un \"tesoro nacional\". Esta paz relativa no duró mucho, ya que las consecuencias del ataque a Anthon finalmente los alcanzarían. En Diciembre de 2009, antes de otra expedición rutinaria al Infierno, sus portales fueron redirigidos por un atacante no identificado, y de ellos salió un enjambre de soldados Anarukon, aniquilando a todo aquel que encontraran en las instalaciones y sus alrededores. Las oficinas de Imanaki Corp fueron destruidas completamente, y las fuerzas Anarukon permanecieron en el pueblo durante días, hasta regresar a su mundo una vez satisfechos con la destrucción que habían causado como venganza.\n\nUn tiempo después de estos eventos, un pequeño equipo de reconocimiento consiguió recuperar algunos de los materiales de investigación y otros documentos de entre los escombros, los cuales caerían después en las manos de la \cfUAC\c-.\n\n\cxNotas de Saya:\c-\n\cfYa he hablado de lo de la caza de ghouls en otro artículo, así que no voy a meterme en detalles aquí, pero sí, mira tú. La \"gran y poderosa\" UAC, robando mierdas de esta gente.\c-\n\n\cfSabes, cuando empezaron a hablar de meterse en teletransportes y tal, LO SABÍA. Sabía perfectamente justo entonces que estaban usando toda esa mierda que robaron. Putos bastardos, hasta dijeron ser \"los primeros\", también.\c-"; +SWWM_LORETAG_GRANDLANCE = "Gran Lanza"; +SWWM_LORETXT_GRANDLANCE = "\cxDesignación:\c-\n\cf Suvan-Kin (\"Gran Lanza\")\c-\n\cxFabricante:\c-\n\cf Eushura Kmonn Jr.\c-\n\cxClasificación:\c-\n\cf Cañón de Riel Portátil\c-\n\nIdeado como la \"última palabra\" en armamento, la \cfSuvan-Kin\c- (\"Gran Lanza\" en el idioma \cfXekkas\c-) es el primer cañón de riel realmente portátil del mundo, capaz de lanzar proyectiles a velocidades de hasta 7500km/h (o 14000km/h a carga máxima). El arma es potenciada en su totalidad por un compacto paquete de batería de cuatro celdas de Korberon-Eneiebium, fácil de reemplazar cuando se necesite. La munición empleada son arpones de Almacero de alta resonancia, capaces de atravesar limpiamente todo, sin llevar ni un solo rasguño.\n\nSi el potencial penetrante de estos arpones no es lo suficientemente destructivo, una bomba de fusión pura en miniatura incrustada a la cabeza ciertamente añadirá aun más a eso. En palabras de la gente \cfXekkian\c-: \cf\"Las llamas cegadoras de un sol sacrificado a su nacer desgarrarán toda vida, arrancarán el alma de su cuerpo, y no dejarán rastro alguno de aquellos desafortunados que hayan agraviado al portador de la Gran Lanza.\"\c-\n\n\cfFuego Primario:\c- Disparo de único objetivo. El arpón detonará automáticamente en contacto con cualquier cosa. El área de efecto es bastante enorme, así que mantén la distancia.\n\n\cfFuego Secundario:\c- Disparo de múltiple objetivo. El arpón es disparado a mayor velocidad, y penetrará varios objetivos hasta detenerse finalmente contra algo suficientemente sólido.\n\n\cfRecarga Primaria:\c- Recarga el arma.\n\n\cfRecarga Secundaria:\c- Cambia la batería. Esta acción solo puede hacerse en cuanto la carga sea lo suficientemente baja, ya que sería un derroche de otro modo.\n\n\cfTécnicas:\c- Cuanto más mantengas el fuego secundario, con más fuerza y velocidad se disparará. A carga máxima podrá incluso derribar paredes.\n\n\cxNotas de Saya:\c-\n\cfPerdón pero, ¿¿¿QUE COÑO ES ESTO???\c-\n\n\cf¿Es esto un puto cañón de riel? Vamos, ¿uno de verdad? ¿¿Y resulta que es portátil?? ¿¿¿Y DISPARA PUTOS ARPONES CON PUTAS BOMBAS DE FUSIÓN EN ELLOS??? Vale, olvida lo que dije sobra la otra arma enorme de Kmonn, ESTA MIERDA es incluso aun más puto ridícula, es que, ¿¿¿que puto cojones es todo esto???\c-\n\n\cfPues eso, por eso está colocada en el mismo puesto que el Ynykron. Piensa en ella como una alternativa \"más segura\", básicamente. No es apocalíptica, pero sigue siendo jodidamente fuerte.\c-"; SWWM_LORETAG_VESTAL = "Alimentos Vestal"; SWWM_LORETXT_VESTAL = "\cxNombre:\c-\n\cf Alimentos Vestal\c-\n\cxClasificación:\c-\n\cf Cooperativa Productora de Aperitivos y Bebidas\c-\n\cxLocalización:\c-\n\cf Colonia de Investigación de Vesta\c-\n\cxPágina Web:\c-\n\cf https://vestal.org/foods\c-\n\n\cfAlimentos Vestal\c- fue fundada en 2098 por miembros de la \cfColonia de Investigación de Vesta\c- establecida en el asteroide del mismo nombre, iniciada como una forma de mostrar los resultados de su cultivo de alimentos en una colonia fuera de la Tierra. Han ganado tracción recientemente gracias al patrocinio de \cfAkari Labs\c-, con su repertorio incrementando gradualmente con el tiempo al recibir peticiones de aperitivos más variados.\n\n\cxNotas de Saya:\c-\n\cfLas gentes de Vestal en serio saben como hacer los mejores aperitivos, y es una pena que no los conozcan tanto porque son solo una cooperativa diminuta de científicos en una colonia de asteroide en lugar de una megacorporación multi-billonaria. Los apoyo firmemente con todo mi amor (y recibo deliciosos regalos a cambio).\c-"; SWWM_LORETXT_KMONN = "\cxNombre Completo:\c-\n\cf Eushura Kmonn Jr.\c-\n\cxNacionalidad:\c-\n\cf Xekkian\c-\n\cxFecha de Nacimiento:\c-\n\cf 8731 BC\c-\n\n\cfEushura Kmonn Jr.\c-, hijo de \cfEushura Kmonn Sr.\c-, es un gran inventor del \cfReino de Xekke\c-, en el planeta de \cfIxxeney\c-. Desde una edad temprana fue preparado para igualar la grandeza de su padre, y no tardó mucho en conseguir realizar su propia fama tras años de trabajo como su ayudante. Su creatividad e imaginación no tenían límites, y hay a su nombre un gran total de 279 logros notables en los campos tanto de la ofensa como defensa militar, lo cual ha ayudado a potenciar las fuerzas del reino, haciendo de ellos uno de los más fiables y reclamados por toda la \cfCoalición X'Animen\c- para tareas de defensa aliada.\n\nEntre algunas de sus creaciones más notables, está la \cfRay-Khom, el arma estándar de soldados Xekkian, el \c-Motor Isonómico\cf, el cual hace funcionar los motores de velocidad luz de todas las naves de la coalición y el \c-Revestimiento Elemental\cf, un dispositivo de protección semi-mágico para el uso en entornos extremos.\n\nJunto a su padre, fue uno de los muchos ingenieros que trabajaron en el famoso proyecto del \c-Operador de Metarealidad K79-D\cf. Un arma legendaria cuyo nombre es conocido por muchos, pero ninguno recuerda lo que hacía, ni siquiera aquellos involucrados en su creación.\n\n\cxNotas de Saya:\c-\n\cfBuah el tío este es VIEJO. Ya sé que la peña esa vive por miles de años pero, hostia puta, si es más aun que el viejales de Tach-Engine.\c-\n\n\cfOh ya, el artículo menciona el K79-D. La cosa más puto extraña esa. Resulta que SÉ lo que pasó con eso, porque me lo contó Maruku-sama, ya que estaba presente, y es un dios y todo ese tema. Al parecer el arma intentó violar directamente la causalidad durante un disparo de prueba, así que un \"mecanismo de auto-conservación\" del universo se disparó a lo bestia y lo borró todo al instante incluyendo toda la info de como se hizo el arma (incluso haciendo borrados de memoria, madre de dios).\c-"; diff --git a/language.es_menu b/language.es_menu index 4789afed9..002c7107d 100644 --- a/language.es_menu +++ b/language.es_menu @@ -252,6 +252,7 @@ TOOLTIP_SWWM_DAMAGETARGET = "Selecciona cuando deben mostrarse las barras de vid TOOLTIP_SWWM_STRICTUNTOUCHABLE = "Por defecto, el bonus \"Intocable\" permanece activo hasta que recibas daño directo. Si sientes que esto no es suficientemente estricto, también puedes hacer que termine si la armadura absorbe el daño, o, para mayor severidad, con CUALQUIER golpe, incluso siendo invulnerable."; TOOLTIP_SWWM_SILENCEMAP = "Elige si quieres que la música se detenga cuando completas un mapa al 100%. Hay una tercera opción disponible que cambiará a un relajante tema tranquilo de un juego que podrás reconocer si me conoces bien."; TOOLTIP_SWWM_SHADOWDISTANCE = "Distancia máxima a la que mostrar sombras. Puede ayudar al rendimiento."; +TOOLTIP_SWWM_SWAPWEAPONS = "Permitir solo un arma por puesto (excluyendo Deep Impact y Pistola de Explodium). Desactiva si prefieres ignorar este intento inútil de balance."; // knowledge base SWWM_COMINGSOON = "(próximamente)"; SWWM_MISSTAB = "Misión"; @@ -288,19 +289,19 @@ SWWM_STATSKILL = "Mayor Racha Intocable: "; SWWM_STATFAVWEAP = "Arma Favorita: "; SWWM_STATHISCORE = "Puntuación Máxima: "; SWWM_INVTAB = "Inventario"; -SWWM_INVFAIL = "No puedes usar esto ahora"; -SWWM_INVNDROP = "No puedes tirar esto"; +SWWM_INVFAIL = "No puedes usar esto ahora."; +SWWM_INVNDROP = "No puedes tirar esto."; SWWM_NOINV = "(inventario vacío)"; SWWM_KEYTAB = "Llavero"; SWWM_NOKEYS = "(ninguna llave encontrada)"; SWWM_KBASETAB = "Biblioteca"; SWWM_STORETAB = "Tienda"; -SWWM_STOREFULL = "No puedes llevar más de eso"; -SWWM_STOREMUNS = "No tienes suficiente dinero"; +SWWM_STOREFULL = "No puedes llevar más de eso."; +SWWM_STOREMUNS = "No tienes suficiente dinero."; SWWM_NOSTORE = "(no queda nada que comprar)"; SWWM_TRADETAB = "Intercambio"; -SWWM_TRADEFULL = "No puede llevar más de eso"; -SWWM_TRADEFAIL = "No puedes enviar este ítem"; +SWWM_TRADEFULL = "No puede llevar más de eso."; +SWWM_TRADEFAIL = "No puedes enviar este ítem."; SWWM_NOTRADE = "(no hay unidades con las que intercambiar)"; SWWM_TRADETO = "Enviado a"; SWWM_TRADEFROM = "Recibido de"; diff --git a/language.version b/language.version index 7e081bb16..cf099fe01 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r680 \cu(Mon 14 Dec 21:03:08 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r682 \cu(Tue 15 Dec 20:47:51 CET 2020)"; diff --git a/lore/default/grandlance.txt b/lore/default/grandlance.txt new file mode 100644 index 000000000..626870b10 --- /dev/null +++ b/lore/default/grandlance.txt @@ -0,0 +1,34 @@ +TAG +Grand Lance +TAB +Item +REL +Kmonn;Xekke;Saya;Unissix +TXT +\cxDesignation:\c- +\cf Suvan-Kin ("Grand Lance")\c- +\cxManufacturer:\c- +\cf Eushura Kmonn Jr.\c- +\cxClassification:\c- +\cf Portable Rail Gun\c- + +Devised as the "last word" in weaponry, the **Suvan-Kin** ("Grand Lance" in the **Xekkas** language) is the world's first truly portable rail gun, capable of launching projectiles at speeds of up to 7500km/h (or 14000km/h at full charge). The weapon is powered entirely by a compact quad-cell Korberon-Eneiebium battery pack, easy to replace when needed. The ammunition employed are high-resonant Almasteel spears, capable of piercing cleanly through anything, without even as much as a single dent. + +If the piercing potential of these spears isn't destructive enough, a miniature pure-fusion bomb embedded at the head will surely add up even more to that. In the words of the **Xekkian** people: **"The blinding flames of a sacrificed newborn star shall tear asunder all life, rend the soul from its body, and leave no trace whatsoever of those unfortunate to have wronged the wielder of the Grand Lance."** + +\cfPrimary Fire:\c- Single-target firing. The spear will automatically detonate on contact with anything. The area of effect is rather massive, so keep your distance. Due to the resilience of the material used, the spear will not be destroyed, and may potentially ricochet and hit something else. + +\cfSecondary Fire:\c- Multi-target firing. The spear is shot at a much higher velocity, and will penetrate multiple targets until finally stopping at something sufficiently solid. + +\cfPrimary Reload:\c- Reload the weapon. + +\cfSecondary Reload:\c- Swaps the battery. This action can only be performed once the charge is low enough, as it would be wasteful otherwise. + +\cfTechniques:\c- The longer you hold secondary fire, the stronger and faster the shot will be. At full charge it may even breach walls. + +\cxSaya's Notes:\c- +\cfExcuse me, WHAT THE FUCK IS THIS???\c- + +\cfIs this a motherfucking rail gun? Like, the real deal? And it's actually portable?? AND IT SHOOTS MOTHERFUCKING SPEARS WITH MOTHERFUCKING FUSION BOMBS IN THEM??? OK, forget what I said about that other bigass gun from Kmonn, THIS SHIT is actually even more fucking ridiculous, like, what in the actual name of fuck???\c- + +\cfYeah, so that's why it's placed on the same slot as the Ynykron. Think of it as a "safer" alternative, basically. It's not world-ending, but it's still way too fucking strong.\c- diff --git a/lore/es/grandlance.txt b/lore/es/grandlance.txt new file mode 100644 index 000000000..da072e450 --- /dev/null +++ b/lore/es/grandlance.txt @@ -0,0 +1,30 @@ +TAG +Gran Lanza +TXT +\cxDesignación:\c- +\cf Suvan-Kin ("Gran Lanza")\c- +\cxFabricante:\c- +\cf Eushura Kmonn Jr.\c- +\cxClasificación:\c- +\cf Cañón de Riel Portátil\c- + +Ideado como la "última palabra" en armamento, la **Suvan-Kin** ("Gran Lanza" en el idioma **Xekkas**) es el primer cañón de riel realmente portátil del mundo, capaz de lanzar proyectiles a velocidades de hasta 7500km/h (o 14000km/h a carga máxima). El arma es potenciada en su totalidad por un compacto paquete de batería de cuatro celdas de Korberon-Eneiebium, fácil de reemplazar cuando se necesite. La munición empleada son arpones de Almacero de alta resonancia, capaces de atravesar limpiamente todo, sin llevar ni un solo rasguño. + +Si el potencial penetrante de estos arpones no es lo suficientemente destructivo, una bomba de fusión pura en miniatura incrustada a la cabeza ciertamente añadirá aun más a eso. En palabras de la gente **Xekkian**: **"Las llamas cegadoras de un sol sacrificado a su nacer desgarrarán toda vida, arrancarán el alma de su cuerpo, y no dejarán rastro alguno de aquellos desafortunados que hayan agraviado al portador de la Gran Lanza."** + +\cfFuego Primario:\c- Disparo de único objetivo. El arpón detonará automáticamente en contacto con cualquier cosa. El área de efecto es bastante enorme, así que mantén la distancia. + +\cfFuego Secundario:\c- Disparo de múltiple objetivo. El arpón es disparado a mayor velocidad, y penetrará varios objetivos hasta detenerse finalmente contra algo suficientemente sólido. + +\cfRecarga Primaria:\c- Recarga el arma. + +\cfRecarga Secundaria:\c- Cambia la batería. Esta acción solo puede hacerse en cuanto la carga sea lo suficientemente baja, ya que sería un derroche de otro modo. + +\cfTécnicas:\c- Cuanto más mantengas el fuego secundario, con más fuerza y velocidad se disparará. A carga máxima podrá incluso derribar paredes. + +\cxNotas de Saya:\c- +\cfPerdón pero, ¿¿¿QUE COÑO ES ESTO???\c- + +\cf¿Es esto un puto cañón de riel? Vamos, ¿uno de verdad? ¿¿Y resulta que es portátil?? ¿¿¿Y DISPARA PUTOS ARPONES CON PUTAS BOMBAS DE FUSIÓN EN ELLOS??? Vale, olvida lo que dije sobra la otra arma enorme de Kmonn, ESTA MIERDA es incluso aun más puto ridícula, es que, ¿¿¿que puto cojones es todo esto???\c- + +\cfPues eso, por eso está colocada en el mismo puesto que el Ynykron. Piensa en ella como una alternativa "más segura", básicamente. No es apocalíptica, pero sigue siendo jodidamente fuerte.\c- diff --git a/menudef.txt b/menudef.txt index b424f6adc..49b167cdf 100644 --- a/menudef.txt +++ b/menudef.txt @@ -123,6 +123,7 @@ OptionMenu "SWWMOptionMenu" Option "$SWWM_SIMPLEFOG", "swwm_simplefog", "YesNo" Option "$SWWM_SHOTGIB", "swwm_shotgib", "YesNo" Option "$SWWM_STRICTUNTOUCHABLE", "swwm_strictuntouchable", "SWWMUntouchableStrictness" + Option "$SWWM_SWAPWEAPONS", "swwm_swapweapons", "YesNo" StaticText " " StaticText "$SWWM_ITITLE", "Blue" Option "$SWWM_ARMORUSE", "swwm_autousearmor", "YesNo" @@ -142,6 +143,8 @@ OptionMenu "SWWMOptionMenu" StaticText " " StaticText "$SWWM_MCTITLE", "Blue" Option "$SWWM_LDSPOIL", "swwm_ldspoil", "YesNo" + StaticText " " + StaticText " " } AddOptionMenu "OptionsMenu" diff --git a/models/modelnotes.txt b/models/modelnotes.txt index 7f48a8170..061ad2917 100644 --- a/models/modelnotes.txt +++ b/models/modelnotes.txt @@ -58,6 +58,7 @@ Weapon models: - Blackfire Igniter - EMP Rail Carbine - Ray-Khom + - Grand Lance Ammo models: - SMW.05 Ammo @@ -75,3 +76,6 @@ Ammo models: - Single - Mag - Battery + - Grand Lance Ammo + - Single + - Mag diff --git a/zscript.txt b/zscript.txt index 83c8100cc..3c8535bfb 100644 --- a/zscript.txt +++ b/zscript.txt @@ -61,6 +61,7 @@ version "4.5" //#include "zscript/dlc1/swwm_blackfire.zsc" //#include "zscript/dlc1/swwm_veryveryfrightening.zsc" //#include "zscript/dlc1/swwm_thiccbolts.zsc" +//#include "zscript/dlc3/swwm_hugeassrailgun.zsc" // DLC2 - Game Set //#include "zscript/dlc2/swwm_tetris.zsc" //#include "zscript/dlc2/swwm_pong.zsc" @@ -71,4 +72,3 @@ version "4.5" // DLC3 - Strife Support //#include "zscript/dlc3/swwm_crimesdlg.zsc" //#include "zscript/dlc3/swwm_strife.zsc" -//#include "zscript/dlc3/swwm_hugeassrailgun.zsc" diff --git a/zscript/dlc1/swwm_blackfire.zsc b/zscript/dlc1/swwm_blackfire.zsc index a5259e68c..a10f01590 100644 --- a/zscript/dlc1/swwm_blackfire.zsc +++ b/zscript/dlc1/swwm_blackfire.zsc @@ -20,6 +20,7 @@ Class BlackfireIgniter : SWWMWeapon Weapon.SelectionOrder 550; Weapon.AmmoType1 "DarkCanister"; Weapon.AmmoGive1 1; + SWWMWeapon.SwapWeapon "Sparkster"; SWWMWeapon.DropAmmoType "DarkCanister"; BlackfireIgniter.ClipCount 100; Stamina 220000; diff --git a/zscript/dlc1/swwm_dlcammo.zsc b/zscript/dlc1/swwm_dlcammo.zsc index 630437c8b..83b64226c 100644 --- a/zscript/dlc1/swwm_dlcammo.zsc +++ b/zscript/dlc1/swwm_dlcammo.zsc @@ -308,3 +308,53 @@ Class RayBattery : Ammo Stop; } } + +Class GrandSpear : MagAmmo +{ + Default + { + Tag "$T_GRANDSPEAR"; + Inventory.PickupMessage "$T_GRANDSPEAR"; + Inventory.Icon "graphics/HUD/Icons/A_GrandSpear.png"; + MagAmmo.ParentAmmo "GrandAmmo"; + MagAmmo.ClipSize 5; + Inventory.MaxAmount 10; + Inventory.InterHubAmount 10; + +FLOATBOB; + FloatBobStrength 0.25; + } + States + { + Spawn: + XZW1 A -1; + Stop; + } +} + +Class GrandAmmo : Ammo +{ + Mixin SWWMAmmo; + Mixin SWWMOverlapPickupSound; + Mixin SWWMUseToPickup; + + Default + { + Tag "$T_GRANDAMMO"; + Inventory.PickupMessage "$T_GRANDAMMO"; + Stamina 1200000; + Inventory.Icon "graphics/HUD/Icons/A_RayAmmo.png"; + Inventory.Amount 1; + Inventory.MaxAmount 2; + Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 6; + Ammo.DropAmount 1; + +FLOATBOB; + FloatBobStrength 0.25; + } + States + { + Spawn: + XZW1 A -1; + Stop; + } +} diff --git a/zscript/dlc1/swwm_hammertime.zsc b/zscript/dlc1/swwm_hammertime.zsc index 2fb7769f5..158293f5b 100644 --- a/zscript/dlc1/swwm_hammertime.zsc +++ b/zscript/dlc1/swwm_hammertime.zsc @@ -13,6 +13,7 @@ Class ItamexHammer : SWWMWeapon Weapon.SlotPriority 3.; Weapon.SelectionOrder 1200; Stamina 9000; + SWWMWeapon.SwapWeapon "PusherWeapon"; +WEAPON.MELEEWEAPON; } States diff --git a/zscript/dlc1/swwm_heavymahsheengun.zsc b/zscript/dlc1/swwm_heavymahsheengun.zsc index ddcddfca1..cc600eeca 100644 --- a/zscript/dlc1/swwm_heavymahsheengun.zsc +++ b/zscript/dlc1/swwm_heavymahsheengun.zsc @@ -14,6 +14,7 @@ Class HeavyMahSheenGun : SWWMWeapon Weapon.SelectionOrder 100; Weapon.AmmoType1 "SheenAmmo"; Weapon.AmmoGive1 200; + SWWMWeapon.SwapWeapon "Eviscerator"; SWWMWeapon.DropAmmoType "SheenAmmo"; Stamina 100000; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/dlc1/swwm_hugeassrailgun.zsc b/zscript/dlc1/swwm_hugeassrailgun.zsc new file mode 100644 index 000000000..06e900623 --- /dev/null +++ b/zscript/dlc1/swwm_hugeassrailgun.zsc @@ -0,0 +1,41 @@ +// Kmonn Shuna Grand Lance (planned for unreleased SWWM Iridium) +// Slot 0, spawns shared with Ynykron Artifact + +Class GrandLance : SWWMWeapon +{ + int clipcount, clipcount2; + bool chambered; + + Property ClipCount : clipcount; + Property ClipCount2 : clipcount2; + + Default + { + Tag "$T_GRANDLANCE"; + Inventory.PickupMessage "$T_GRANDLANCE"; + Obituary "$O_GRANDLANCE"; + Inventory.Icon "graphics/HUD/Icons/W_GrandLance.png"; + Weapon.SlotNumber 0; + Weapon.SlotPriority 2.; + Weapon.SelectionOrder 8000; + Weapon.AmmoType1 "GrandAmmo"; + Weapon.AmmoGive1 1; + Weapon.AmmoType2 "RayBattery"; + Weapon.AmmoGive2 0; + SWWMWeapon.SwapWeapon "Ynykron"; + SWWMWeapon.DropAmmoType "GrandAmmo"; + GrandLance.ClipCount 5; + GrandLance.ClipCount2 500; + Stamina 4200000; + +SWWMWEAPON.NOFIRSTGIVE; + +WEAPON.PRIMARY_USES_BOTH; + +WEAPON.EXPLOSIVE; + +WEAPON.BFG; + } + States + { + Spawn: + XZW1 A -1; + Stop; + } +} diff --git a/zscript/dlc1/swwm_notashotgun.zsc b/zscript/dlc1/swwm_notashotgun.zsc index 1d8992a02..f64c7c203 100644 --- a/zscript/dlc1/swwm_notashotgun.zsc +++ b/zscript/dlc1/swwm_notashotgun.zsc @@ -19,6 +19,7 @@ Class Quadravol : SWWMWeapon Weapon.SelectionOrder 650; Weapon.AmmoType1 "QuadAmmo"; Weapon.AmmoGive1 1; + SWWMWeapon.SwapWeapon "Hellblazer"; SWWMWeapon.DropAmmoType "QuadAmmo"; Quadravol.ClipCount 4; Stamina 80000; diff --git a/zscript/dlc1/swwm_rebolber.zsc b/zscript/dlc1/swwm_rebolber.zsc index cd2f7c4cd..1a8e367f3 100644 --- a/zscript/dlc1/swwm_rebolber.zsc +++ b/zscript/dlc1/swwm_rebolber.zsc @@ -18,6 +18,7 @@ Class PuntzerBeta : SWWMWeapon Weapon.SelectionOrder 450; Weapon.AmmoType1 "SMW05Ammo"; Weapon.AmmoGive1 6; + SWWMWeapon.SwapWeapon "Spreadgun"; SWWMWeapon.DropAmmoType "SMW05Ammo"; Stamina 10000; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/dlc1/swwm_supermarioworld.zsc b/zscript/dlc1/swwm_supermarioworld.zsc index 7bc68c2ff..6655c65d4 100644 --- a/zscript/dlc1/swwm_supermarioworld.zsc +++ b/zscript/dlc1/swwm_supermarioworld.zsc @@ -20,6 +20,7 @@ Class PuntzerGamma : SWWMWeapon PuntzerGamma.ClipCount 30; Weapon.AmmoType1 "SMW05Ammo"; Weapon.AmmoGive1 30; + SWWMWeapon.SwapWeapon "Wallbuster"; SWWMWeapon.DropAmmoType "SMW05Ammo"; Stamina 30000; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/dlc1/swwm_thiccbolts.zsc b/zscript/dlc1/swwm_thiccbolts.zsc index 0475090c1..e3522865d 100644 --- a/zscript/dlc1/swwm_thiccbolts.zsc +++ b/zscript/dlc1/swwm_thiccbolts.zsc @@ -22,6 +22,7 @@ Class RayKhom : SWWMWeapon Weapon.AmmoGive1 1; Weapon.AmmoType2 "RayBattery"; Weapon.AmmoGive2 0; + SWWMWeapon.SwapWeapon "CandyGun"; SWWMWeapon.DropAmmoType "RayAmmo"; RayKhom.ClipCount 20; RayKhom.ClipCount2 500; diff --git a/zscript/dlc1/swwm_veryveryfrightening.zsc b/zscript/dlc1/swwm_veryveryfrightening.zsc index 29e4a1976..2491b2247 100644 --- a/zscript/dlc1/swwm_veryveryfrightening.zsc +++ b/zscript/dlc1/swwm_veryveryfrightening.zsc @@ -20,6 +20,7 @@ Class EMPCarbine : SWWMWeapon Weapon.SelectionOrder 850; Weapon.AmmoType1 "EMPCore"; Weapon.AmmoGive1 1; + SWWMWeapon.SwapWeapon "SilverBullet"; SWWMWeapon.DropAmmoType "EMPCore"; EMPCarbine.ClipCount 4; Stamina 500000; diff --git a/zscript/dlc3/swwm_hugeassrailgun.zsc b/zscript/dlc3/swwm_hugeassrailgun.zsc deleted file mode 100644 index 17ad50c4c..000000000 --- a/zscript/dlc3/swwm_hugeassrailgun.zsc +++ /dev/null @@ -1,85 +0,0 @@ -// Kmonn Shuna Grand Lance (planned for unreleased SWWM Iridium) -// Slot 0, spawns shared with Ynykron Artifact - -Class GrandSpear : MagAmmo -{ - Default - { - Tag "$T_GRANDSPEAR"; - Inventory.PickupMessage "$T_GRANDSPEAR"; - Inventory.Icon "graphics/HUD/Icons/A_GrandSpear.png"; - MagAmmo.ParentAmmo "GrandAmmo"; - MagAmmo.ClipSize 5; - Inventory.MaxAmount 10; - Inventory.InterHubAmount 10; - +FLOATBOB; - FloatBobStrength 0.25; - } - States - { - Spawn: - XZW1 A -1; - Stop; - } -} - -Class GrandAmmo : Ammo -{ - Mixin SWWMAmmo; - Mixin SWWMOverlapPickupSound; - Mixin SWWMUseToPickup; - - Default - { - Tag "$T_GRANDAMMO"; - Inventory.PickupMessage "$T_GRANDAMMO"; - Stamina 1200000; - Inventory.Icon "graphics/HUD/Icons/A_RayAmmo.png"; - Inventory.Amount 1; - Inventory.MaxAmount 2; - Ammo.BackpackAmount 0; - Ammo.BackpackMaxAmount 6; - Ammo.DropAmount 1; - +FLOATBOB; - FloatBobStrength 0.25; - } - States - { - Spawn: - XZW1 A -1; - Stop; - } -} - -Class GrandLance : SWWMWeapon -{ - int clipcount; - - Property ClipCount : clipcount; - - Default - { - Tag "$T_GRANDLANCE"; - Inventory.PickupMessage "$I_GRANDLANCE"; - Obituary "$O_GRANDLANCE"; - Inventory.Icon "graphics/HUD/Icons/W_GrandLance.png"; - Weapon.SlotNumber 0; - Weapon.SlotPriority 2.; - Weapon.SelectionOrder 8000; - Weapon.AmmoType1 "GrandAmmo"; - Weapon.AmmoGive1 1; - SWWMWeapon.DropAmmoType "GrandAmmo"; - GrandLance.ClipCount 5; - Stamina 4200000; - +SWWMWEAPON.NOFIRSTGIVE; - +WEAPON.BFG; - +WEAPON.EXPLOSIVE; - } - States - { - Spawn: - XZW1 A -1; - Stop; - } -} - diff --git a/zscript/swwm_blazeit.zsc b/zscript/swwm_blazeit.zsc index 61b7bd083..449ac4048 100644 --- a/zscript/swwm_blazeit.zsc +++ b/zscript/swwm_blazeit.zsc @@ -1680,6 +1680,7 @@ Class Hellblazer : SWWMWeapon Stamina 90000; Weapon.AmmoType1 "HellblazerMissiles"; Weapon.AmmoGive1 6; + //SWWMWeapon.SwapWeapon "Quadravol"; SWWMWeapon.DropAmmoType "RocketAmmo"; Hellblazer.ClipCount 6; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/swwm_cbt.zsc b/zscript/swwm_cbt.zsc index 13f9e424a..3941e11c3 100644 --- a/zscript/swwm_cbt.zsc +++ b/zscript/swwm_cbt.zsc @@ -1629,6 +1629,7 @@ Class Wallbuster : SWWMWeapon Weapon.UpSound "wallbuster/select"; Weapon.AmmoType1 "RedShell"; Weapon.AmmoGive1 5; + //SWWMWeapon.SwapWeapon "PuntzerGamma"; SWWMWeapon.DropAmmoType "Shell"; Stamina 35000; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/swwm_danmaku.zsc b/zscript/swwm_danmaku.zsc index 2bb403c37..98e2fa19d 100644 --- a/zscript/swwm_danmaku.zsc +++ b/zscript/swwm_danmaku.zsc @@ -821,6 +821,7 @@ Class Eviscerator : SWWMWeapon Stamina 50000; Weapon.AmmoType1 "EvisceratorShell"; Weapon.AmmoGive1 4; + //SWWMWeapon.SwapWeapon "HeavyMahSheenGun"; SWWMWeapon.DropAmmoType "EvisceratorShell"; +WEAPON.EXPLOSIVE; Radius 20; diff --git a/zscript/swwm_deathlydeathcannon.zsc b/zscript/swwm_deathlydeathcannon.zsc index 369ab88be..5428ba851 100644 --- a/zscript/swwm_deathlydeathcannon.zsc +++ b/zscript/swwm_deathlydeathcannon.zsc @@ -2876,6 +2876,7 @@ Class Ynykron : SWWMWeapon Stamina 5000000; Weapon.AmmoType1 "YnykronAmmo"; Weapon.AmmoGive1 1; + //SWWMWeapon.SwapWeapon "GrandLance"; SWWMWeapon.DropAmmoType "YnykronAmmo"; +SWWMWEAPON.NOFIRSTGIVE; Ynykron.ClipCount 1; diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 231ef5158..0643c6aaa 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -2468,6 +2468,25 @@ Class SWWMHandler : EventHandler if ( !item ) return; if ( SWWMCredits.Take(players[e.Args[0]],e.Args[1]) ) { + // drop the swapweapon if we own it first + let def = GetDefaultByType(item); + if ( swwm_swapweapons && (item is 'SWWMWeapon') && SWWMWeapon(def).SwapWeapon ) + { + let sw = Weapon(players[e.Args[0]].mo.FindInventory(SWWMWeapon(def).SwapWeapon)); + if ( sw ) + { + bool swapto = (sw == players[e.Args[0]].ReadyWeapon); + let drop = players[e.Args[0]].mo.DropInventory(sw); + // add some random velocity so multiple drops don't get bunched together + if ( drop ) drop.vel += (Actor.RotateVector((FRandom[Junk](-1.5,.5),FRandom[Junk](-2.5,2.5)),players[e.Args[0]].mo.angle),FRandom[Junk](2.,5.)); + // don't autoswitch just yet (hacky) + if ( swapto ) + { + players[e.Args[0]].ReadyWeapon = null; + players[e.Args[0]].PendingWeapon = WP_NOCHANGE; + } + } + } if ( (item is 'ArmorNuggetItem') || (item is 'HealthNuggetItem') ) { // these have to be given in a loop because fun reasons diff --git a/zscript/swwm_inter.zsc b/zscript/swwm_inter.zsc index e45e67a3f..9b385db41 100644 --- a/zscript/swwm_inter.zsc +++ b/zscript/swwm_inter.zsc @@ -117,11 +117,11 @@ Class SWWMStatScreen : StatusScreen abstract for ( int i=1; i<=maxtip; i++ ) { // skip DLC tips for now - if ( (i >= 61) && (i <= 68) ) continue; + if ( (i >= 60) && (i <= 68) ) continue; ents.Push(i); } // account for skipped dlc tips (important, will crash otherwise) - maxtip -= 8; + maxtip -= 9; if ( pdata.lasttip.Size() >= maxtip ) { // exclude last one, start over diff --git a/zscript/swwm_inventory.zsc b/zscript/swwm_inventory.zsc index ccf7a4f12..66e497738 100644 --- a/zscript/swwm_inventory.zsc +++ b/zscript/swwm_inventory.zsc @@ -981,15 +981,17 @@ Class SWWMCrosshairTracer : LineTracer Class SWWMWeapon : Weapon abstract { Mixin SWWMOverlapPickupSound; - Mixin SWWMUseToPickup; + bool wasused; private int SWeaponFlags; Actor pfield; // instance of parry field for current melee attack bool wallponch; // is punching a wall (for activation checks) Class dropammotype; + Class SwapWeapon; // player can only own either this weapon or the SwapWeapon, if defined Property DropAmmoType : dropammotype; + Property SwapWeapon : SwapWeapon; FlagDef NoFirstGive : SWeaponFlags, 0; // don't give ammo on first pickup (for weapons with a clip count) FlagDef HideInMenu : SWeaponFlags, 1; // don't show in inventory menu (usually for sister weapons) @@ -1001,6 +1003,66 @@ Class SWWMWeapon : Weapon abstract ui Color ccol; ui Vector2 lagvpos; + override void Touch( Actor toucher ) + { + // cannot pick up swapweapon unless explicitly pressing use + if ( swwm_swapweapons && SwapWeapon && toucher.FindInventory(SwapWeapon) ) + { + if ( toucher.CheckLocalView() ) + { + String t2 = GetDefaultByType(SwapWeapon).GetTag(); + Console.MidPrint(SmallFont,String.Format(StringTable.Localize("$SWWM_SWAPWEAPON"),t2,GetTag())); + } + return; + } + Super.Touch(toucher); + } + // allow pickup by use + swap weapon support + override bool Used( Actor user ) + { + Vector3 itempos = Vec3Offset(0,0,Height/2), + userpos = user.Vec2OffsetZ(0,0,user.player.viewz); + // test vertical range + Vector3 diff = level.Vec3Diff(user.Vec3Offset(0,0,user.Height/2),Vec3Offset(0,0,Height/2)); + double rang = user.player?PlayerPawn(user.player.mo).UseRange:(user.Height/2); + if ( abs(diff.z) > rang ) return false; + // if the toucher owns our SwapWeapon, drop it before picking us up + bool swapto = false; + if ( swwm_swapweapons && SwapWeapon ) + { + let sw = user.FindInventory(SwapWeapon); + if ( sw ) + { + if ( Weapon(sw) == user.player.ReadyWeapon ) + swapto = true; + user.DropInventory(sw); + // don't autoswitch just yet (hacky) + if ( swapto ) + { + user.player.ReadyWeapon = null; + user.player.PendingWeapon = WP_NOCHANGE; + } + } + } + Touch(user); + // we got picked up + if ( bDestroyed || Owner || !bSPECIAL ) + { + // autoswitch to us if we got swapped + if ( swapto ) user.A_SelectWeapon(GetClass()); + Vector3 tracedir = level.Vec3Diff(userpos,itempos); + double dist = tracedir.length(); + tracedir /= dist; + let cf = new("CrossLineFinder"); + cf.Trace(userpos,level.PointInSector(userpos.xy),tracedir,dist,0); + // trigger all player cross lines found between user and item + for ( int i=0; i rang ) return false; + // if the toucher owns our SwapWeapon, drop it before picking us up + let swc = GetDefaultByType("PusherWeapon").SwapWeapon; + if ( swwm_swapweapons && swc ) + { + let sw = user.FindInventory(swc); + bool swapto = false; + if ( sw ) + { + if ( sw == user.player.ReadyWeapon ) swapto = true; + user.DropInventory(sw); + // don't autoswitch just yet (hacky) + if ( swapto ) + { + user.player.ReadyWeapon = null; + user.player.PendingWeapon = WP_NOCHANGE; + } + } + } Touch(user); return bDestroyed; } @@ -569,6 +598,7 @@ Class PusherWeapon : SWWMWeapon Weapon.SlotPriority 2.; Weapon.SelectionOrder 1500; Stamina 10000; + //SWWMWeapon.SwapWeapon "ItamexHammer"; +WEAPON.MELEEWEAPON; Radius 20; Height 32; diff --git a/zscript/swwm_shot.zsc b/zscript/swwm_shot.zsc index 5a0bdb152..33d3f7877 100644 --- a/zscript/swwm_shot.zsc +++ b/zscript/swwm_shot.zsc @@ -2579,6 +2579,7 @@ Class Spreadgun : SWWMWeapon Weapon.SelectionOrder 500; Weapon.AmmoType1 "RedShell"; Weapon.AmmoGive1 1; + //SWWMWeapon.SwapWeapon "PuntzerBeta"; SWWMWeapon.DropAmmoType "Clip"; Stamina 15000; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/swwm_sparkyboi.zsc b/zscript/swwm_sparkyboi.zsc index 45274f7af..1ed9a9101 100644 --- a/zscript/swwm_sparkyboi.zsc +++ b/zscript/swwm_sparkyboi.zsc @@ -2129,6 +2129,7 @@ Class Sparkster : SWWMWeapon Stamina 200000; Weapon.AmmoType1 "SparkUnit"; Weapon.AmmoGive1 1; + //SWWMWeapon.SwapWeapon "BlackfireIgniter"; SWWMWeapon.DropAmmoType "SparkUnit"; Sparkster.ClipCount 8; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/swwm_tastytreat.zsc b/zscript/swwm_tastytreat.zsc index d89a67280..f60322c18 100644 --- a/zscript/swwm_tastytreat.zsc +++ b/zscript/swwm_tastytreat.zsc @@ -1160,6 +1160,7 @@ Class CandyGun : SWWMWeapon Weapon.AmmoGive1 1; Weapon.AmmoGive2 1; Weapon.AmmoUse2 0; + //SWWMWeapon.SwapWeapon "RayKhom"; SWWMWeapon.DropAmmoType "CandyGunAmmo"; CandyGun.ClipCount 7; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/swwm_thiccboolet.zsc b/zscript/swwm_thiccboolet.zsc index 80a0df4b2..b23314bb3 100644 --- a/zscript/swwm_thiccboolet.zsc +++ b/zscript/swwm_thiccboolet.zsc @@ -1147,6 +1147,7 @@ Class SilverBullet : SWWMWeapon Weapon.AmmoGive1 1; Weapon.AmmoType2 "SilverBulletAmmo2"; Weapon.AmmoGive2 0; + //SWWMWeapon.SwapWeapon "EMPCarbine"; SWWMWeapon.DropAmmoType "SilverBulletAmmo"; SilverBullet.ClipCount 5; +SWWMWEAPON.NOFIRSTGIVE; diff --git a/zscript/swwm_thinkers.zsc b/zscript/swwm_thinkers.zsc index 868eec10d..df98dbe70 100644 --- a/zscript/swwm_thinkers.zsc +++ b/zscript/swwm_thinkers.zsc @@ -370,6 +370,7 @@ Class SWWMLoreLibrary : Thinker if ( ref ~== "BlackfireIgniter" ) return true; if ( ref ~== "EMPCarbine" ) return true; if ( ref ~== "RayKhom" ) return true; + if ( ref ~== "GrandLance" ) return true; // same for white lady if ( ref ~== "WhiteLady" ) return true; // check if entry is for a collectible