diff --git a/FuturePlans.md b/FuturePlans.md index 8d46be0bc..5eb0c90d2 100644 --- a/FuturePlans.md +++ b/FuturePlans.md @@ -1,5 +1,15 @@ This is just a bit of *"future planning"* for stuff that I ***might*** add later on. +## 1.1.x update *(A Needed Change)*: + +Sometime after the 1.1 release, I REALLY need to do this, it's starting to become very problematic to maintain the Demolitionist Menu as-is. + +* **Demolitionist Menu Refactor:** + - Non 16:10 ratio support + - Smooth scrolling, better mouse input + - Much cleaner code, easier maintenance and extension + - Modular design, add-on tab support + ## 1.2 update *(The Second Batch)*: More weapons, because we need 'em. @@ -53,11 +63,6 @@ All the hard stuff *(some of these aren't guaranteed)*. - **[Hexen]** Demolition Quest *(a JRPG, kinda like early FF / BoF)* * **Mothgirl summon for Lämp easter egg** - Layers of White *(Summon the White Lady)* -* **Demolitionist Menu Refactor:** - - Non 16:10 ratio support - - Smooth scrolling - - Much cleaner code - - Modular design * **Replace all hitscan with *"light projectiles"*** * **Crouch sliding *(+ proper crouch dashing)*** * **Expand third person animations** diff --git a/README.md b/README.md index fb27d1c39..db9144ee5 100644 --- a/README.md +++ b/README.md @@ -531,7 +531,7 @@ The most adorable and huggable plush doll of the cutest and sweetest emperor. Th ### Psykkonovexx (Hexen) ![](docimg/psykkonovexx.png) -One of the many instruments named after the Nine Kings of Kurenai. The Psykkonovexx could be described as something resembling an *"electric bagpipe"*, and it's a staple of modern Anarukon music composition. +One of the many instruments named after the Nine Kings of Kurenai. The Psykkonovexx could be described as something resembling an *"electric bagpipe"*, and is a staple of modern Anarukon music composition. ## The HUD ![](docimg/hudsample.png) diff --git a/achievements.lst b/achievements.lst index bcab9b113..4766191dd 100644 --- a/achievements.lst +++ b/achievements.lst @@ -79,7 +79,7 @@ peace,0,no,nothexen #pene,20,yes,any #plasma,50,yes,any plush,10,yes,any -puzzle,20,yes,hexen +puzzle,0,no,hexen rage,20,yes,any #rail,16,yes,any reflect,20,yes,any diff --git a/credits.txt b/credits.txt index a48269c8d..2f4a401ed 100644 --- a/credits.txt +++ b/credits.txt @@ -16,6 +16,7 @@ Most of the work here is original, but there are some notable exceptions: * Dark Souls * Dark Souls 2 * Dark Souls 3 + - In addition, a whole lot of stock sounds and internet meme sounds have also been used. - Some sprites and sounds are taken from (shareware) Wolfenstein 3D. - This mod uses Gutamatics, by Gutawer. Big thanks. - Title theme, "Traumatic State", by Teque (which a lot of people just know as "the AS-Golgotha music"). diff --git a/cvarinfo.base b/cvarinfo.base index 1372be601..aa79ba603 100644 --- a/cvarinfo.base +++ b/cvarinfo.base @@ -116,6 +116,7 @@ user float swwm_bumpstrength = 1.0; // intensity of fov bumping server bool swwm_nomagdrop = true; // does not drop spent magazines (the "environmentally conscious" option) user bool swwm_autousebarrier = true; // auto-use elemental coating when standing on damaging floors server int swwm_enforceautousebarrier = 0; // enforced auto-use for coating +nosave bool swwm_nomapmsg = false; // disables special map dialogue messages // minimap settings nosave bool swwm_mm_enable = true; // show a minimap below the score counter diff --git a/filter/game-hexen/cvarinfo.hexenachievements b/filter/game-hexen/cvarinfo.hexenachievements index a82fd5b7d..170bd8b9c 100644 --- a/filter/game-hexen/cvarinfo.hexenachievements +++ b/filter/game-hexen/cvarinfo.hexenachievements @@ -7,5 +7,4 @@ nosave int swwm_achievement_puzzle = 0; nosave int swwm_achievement_sneaky = 0; // cross-session progress cvars nosave int swwm_progress_gravity = 0; -nosave int swwm_progress_puzzle = 0; nosave int swwm_progress_sneaky = 0; diff --git a/graphics/HUD/DM/CythoAvatar.png b/graphics/HUD/DM/CythoAvatar.png new file mode 100644 index 000000000..61c9b290a Binary files /dev/null and b/graphics/HUD/DM/CythoAvatar.png differ diff --git a/graphics/HUD/DM/CythoAvatarBG.png b/graphics/HUD/DM/CythoAvatarBG.png new file mode 100644 index 000000000..b9b0edce8 Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarBG.png differ diff --git a/graphics/HUD/DM/CythoAvatarBlink0.png b/graphics/HUD/DM/CythoAvatarBlink0.png new file mode 100644 index 000000000..bbeeda21c Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarBlink0.png differ diff --git a/graphics/HUD/DM/CythoAvatarBlink1.png b/graphics/HUD/DM/CythoAvatarBlink1.png new file mode 100644 index 000000000..ad3ca50bc Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarBlink1.png differ diff --git a/graphics/HUD/DM/CythoAvatarTalk0.png b/graphics/HUD/DM/CythoAvatarTalk0.png new file mode 100644 index 000000000..24d4fe4bd Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarTalk0.png differ diff --git a/graphics/HUD/DM/CythoAvatarTalk1.png b/graphics/HUD/DM/CythoAvatarTalk1.png new file mode 100644 index 000000000..be9c4888d Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarTalk1.png differ diff --git a/graphics/HUD/DM/CythoAvatarTalk2.png b/graphics/HUD/DM/CythoAvatarTalk2.png new file mode 100644 index 000000000..034892998 Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarTalk2.png differ diff --git a/graphics/HUD/DM/CythoAvatarTalk3.png b/graphics/HUD/DM/CythoAvatarTalk3.png new file mode 100644 index 000000000..1818380db Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarTalk3.png differ diff --git a/graphics/HUD/DM/CythoAvatarTalk4.png b/graphics/HUD/DM/CythoAvatarTalk4.png new file mode 100644 index 000000000..1cac526e1 Binary files /dev/null and b/graphics/HUD/DM/CythoAvatarTalk4.png differ diff --git a/graphics/HUD/ZnvMessageBox.png b/graphics/HUD/DM/DirectMessageBox.png similarity index 100% rename from graphics/HUD/ZnvMessageBox.png rename to graphics/HUD/DM/DirectMessageBox.png diff --git a/graphics/HUD/ZnvStatic0.png b/graphics/HUD/DM/DirectMessageStatic0.png similarity index 100% rename from graphics/HUD/ZnvStatic0.png rename to graphics/HUD/DM/DirectMessageStatic0.png diff --git a/graphics/HUD/ZnvStatic1.png b/graphics/HUD/DM/DirectMessageStatic1.png similarity index 100% rename from graphics/HUD/ZnvStatic1.png rename to graphics/HUD/DM/DirectMessageStatic1.png diff --git a/graphics/HUD/ZnvStatic2.png b/graphics/HUD/DM/DirectMessageStatic2.png similarity index 100% rename from graphics/HUD/ZnvStatic2.png rename to graphics/HUD/DM/DirectMessageStatic2.png diff --git a/graphics/HUD/ZnvStatic3.png b/graphics/HUD/DM/DirectMessageStatic3.png similarity index 100% rename from graphics/HUD/ZnvStatic3.png rename to graphics/HUD/DM/DirectMessageStatic3.png diff --git a/graphics/HUD/DM/IbukiAvatar.png b/graphics/HUD/DM/IbukiAvatar.png new file mode 100644 index 000000000..fbc9c5bd4 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatar.png differ diff --git a/graphics/HUD/DM/IbukiAvatarBG.png b/graphics/HUD/DM/IbukiAvatarBG.png new file mode 100644 index 000000000..61cf7c42f Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarBG.png differ diff --git a/graphics/HUD/DM/IbukiAvatarBlink0.png b/graphics/HUD/DM/IbukiAvatarBlink0.png new file mode 100644 index 000000000..d71cb90f8 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarBlink0.png differ diff --git a/graphics/HUD/DM/IbukiAvatarBlink1.png b/graphics/HUD/DM/IbukiAvatarBlink1.png new file mode 100644 index 000000000..9a8a9b848 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarBlink1.png differ diff --git a/graphics/HUD/DM/IbukiAvatarTalk0.png b/graphics/HUD/DM/IbukiAvatarTalk0.png new file mode 100644 index 000000000..9330e3c3e Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarTalk0.png differ diff --git a/graphics/HUD/DM/IbukiAvatarTalk1.png b/graphics/HUD/DM/IbukiAvatarTalk1.png new file mode 100644 index 000000000..05ade7123 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarTalk1.png differ diff --git a/graphics/HUD/DM/IbukiAvatarTalk2.png b/graphics/HUD/DM/IbukiAvatarTalk2.png new file mode 100644 index 000000000..2708500f0 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarTalk2.png differ diff --git a/graphics/HUD/DM/IbukiAvatarTalk3.png b/graphics/HUD/DM/IbukiAvatarTalk3.png new file mode 100644 index 000000000..75a683553 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarTalk3.png differ diff --git a/graphics/HUD/DM/IbukiAvatarTalk4.png b/graphics/HUD/DM/IbukiAvatarTalk4.png new file mode 100644 index 000000000..e5a403c81 Binary files /dev/null and b/graphics/HUD/DM/IbukiAvatarTalk4.png differ diff --git a/graphics/HUD/DM/KirinAvatar.png b/graphics/HUD/DM/KirinAvatar.png new file mode 100644 index 000000000..2ed8f2ce3 Binary files /dev/null and b/graphics/HUD/DM/KirinAvatar.png differ diff --git a/graphics/HUD/DM/KirinAvatarBG.png b/graphics/HUD/DM/KirinAvatarBG.png new file mode 100644 index 000000000..23e648315 Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarBG.png differ diff --git a/graphics/HUD/DM/KirinAvatarBlink0.png b/graphics/HUD/DM/KirinAvatarBlink0.png new file mode 100644 index 000000000..37daa47de Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarBlink0.png differ diff --git a/graphics/HUD/DM/KirinAvatarBlink1.png b/graphics/HUD/DM/KirinAvatarBlink1.png new file mode 100644 index 000000000..d2b983e63 Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarBlink1.png differ diff --git a/graphics/HUD/DM/KirinAvatarTalk0.png b/graphics/HUD/DM/KirinAvatarTalk0.png new file mode 100644 index 000000000..39d94a863 Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarTalk0.png differ diff --git a/graphics/HUD/DM/KirinAvatarTalk1.png b/graphics/HUD/DM/KirinAvatarTalk1.png new file mode 100644 index 000000000..d67fa3bae Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarTalk1.png differ diff --git a/graphics/HUD/DM/KirinAvatarTalk2.png b/graphics/HUD/DM/KirinAvatarTalk2.png new file mode 100644 index 000000000..3d3cca42f Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarTalk2.png differ diff --git a/graphics/HUD/DM/KirinAvatarTalk3.png b/graphics/HUD/DM/KirinAvatarTalk3.png new file mode 100644 index 000000000..8d0bc4952 Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarTalk3.png differ diff --git a/graphics/HUD/DM/KirinAvatarTalk4.png b/graphics/HUD/DM/KirinAvatarTalk4.png new file mode 100644 index 000000000..61cd0dbd8 Binary files /dev/null and b/graphics/HUD/DM/KirinAvatarTalk4.png differ diff --git a/graphics/HUD/DM/SayaAvatar.png b/graphics/HUD/DM/SayaAvatar.png new file mode 100644 index 000000000..1f1d1f324 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatar.png differ diff --git a/graphics/HUD/DM/SayaAvatarBG.png b/graphics/HUD/DM/SayaAvatarBG.png new file mode 100644 index 000000000..af4e1c7fa Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarBG.png differ diff --git a/graphics/HUD/DM/SayaAvatarBlink0.png b/graphics/HUD/DM/SayaAvatarBlink0.png new file mode 100644 index 000000000..98a99dbc1 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarBlink0.png differ diff --git a/graphics/HUD/DM/SayaAvatarBlink1.png b/graphics/HUD/DM/SayaAvatarBlink1.png new file mode 100644 index 000000000..5c5232562 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarBlink1.png differ diff --git a/graphics/HUD/DM/SayaAvatarTalk0.png b/graphics/HUD/DM/SayaAvatarTalk0.png new file mode 100644 index 000000000..7c7eef3b0 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarTalk0.png differ diff --git a/graphics/HUD/DM/SayaAvatarTalk1.png b/graphics/HUD/DM/SayaAvatarTalk1.png new file mode 100644 index 000000000..734416bb1 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarTalk1.png differ diff --git a/graphics/HUD/DM/SayaAvatarTalk2.png b/graphics/HUD/DM/SayaAvatarTalk2.png new file mode 100644 index 000000000..9c38980e9 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarTalk2.png differ diff --git a/graphics/HUD/DM/SayaAvatarTalk3.png b/graphics/HUD/DM/SayaAvatarTalk3.png new file mode 100644 index 000000000..9571785d2 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarTalk3.png differ diff --git a/graphics/HUD/DM/SayaAvatarTalk4.png b/graphics/HUD/DM/SayaAvatarTalk4.png new file mode 100644 index 000000000..9255ddc99 Binary files /dev/null and b/graphics/HUD/DM/SayaAvatarTalk4.png differ diff --git a/graphics/HUD/ZnvAvatar.png b/graphics/HUD/DM/ZnvAvatar.png similarity index 100% rename from graphics/HUD/ZnvAvatar.png rename to graphics/HUD/DM/ZnvAvatar.png diff --git a/graphics/HUD/ZnvAvatarBG.png b/graphics/HUD/DM/ZnvAvatarBG.png similarity index 100% rename from graphics/HUD/ZnvAvatarBG.png rename to graphics/HUD/DM/ZnvAvatarBG.png diff --git a/graphics/HUD/ZnvAvatarBlink0.png b/graphics/HUD/DM/ZnvAvatarBlink0.png similarity index 100% rename from graphics/HUD/ZnvAvatarBlink0.png rename to graphics/HUD/DM/ZnvAvatarBlink0.png diff --git a/graphics/HUD/ZnvAvatarBlink1.png b/graphics/HUD/DM/ZnvAvatarBlink1.png similarity index 100% rename from graphics/HUD/ZnvAvatarBlink1.png rename to graphics/HUD/DM/ZnvAvatarBlink1.png diff --git a/graphics/HUD/ZnvAvatarTalk0.png b/graphics/HUD/DM/ZnvAvatarTalk0.png similarity index 100% rename from graphics/HUD/ZnvAvatarTalk0.png rename to graphics/HUD/DM/ZnvAvatarTalk0.png diff --git a/graphics/HUD/ZnvAvatarTalk1.png b/graphics/HUD/DM/ZnvAvatarTalk1.png similarity index 100% rename from graphics/HUD/ZnvAvatarTalk1.png rename to graphics/HUD/DM/ZnvAvatarTalk1.png diff --git a/graphics/HUD/ZnvAvatarTalk2.png b/graphics/HUD/DM/ZnvAvatarTalk2.png similarity index 100% rename from graphics/HUD/ZnvAvatarTalk2.png rename to graphics/HUD/DM/ZnvAvatarTalk2.png diff --git a/graphics/HUD/ZnvAvatarTalk3.png b/graphics/HUD/DM/ZnvAvatarTalk3.png similarity index 100% rename from graphics/HUD/ZnvAvatarTalk3.png rename to graphics/HUD/DM/ZnvAvatarTalk3.png diff --git a/graphics/HUD/ZnvAvatarTalk4.png b/graphics/HUD/DM/ZnvAvatarTalk4.png similarity index 100% rename from graphics/HUD/ZnvAvatarTalk4.png rename to graphics/HUD/DM/ZnvAvatarTalk4.png diff --git a/language.def_base b/language.def_base index 3438d5212..0cedcb6a6 100644 --- a/language.def_base +++ b/language.def_base @@ -716,7 +716,217 @@ SWWM_DMSPREAD = "Spread:"; SWWM_PLACE1 = "1st"; SWWM_PLACE2 = "2nd"; SWWM_PLACE3 = "3rd"; -// NOTE: do not localize these +// "Direct messages" +SWWM_INCOMINGMSG = "Incoming direct message from %s..."; +// E1M8 +SWWM_SAYAPHOBOS1 = "I kinda forgot to mention this in the briefing but... There's a bit of an issue here, \cdDemo-chan\c-."; +SWWM_SAYAPHOBOS2 = "The gate to Deimos is guarded by two nasty pieces of work, and you're gonna have to get rid of them."; +SWWM_SAYAPHOBOS3 = "They're supposedly the \"replacements\" for whatever the other guy killed to go the same route."; +SWWM_SAYAPHOBOS4 = "Well, knowing you, I'm sure they won't be a problem. Anyway, that's everything for now. Good luck."; +// E2M8 +SWWM_SAYADEIMOS1 = "Be careful, \cdDemo\c-, I've got a bad feeling about this."; +SWWM_SAYADEIMOS2 = "There's a large energy reading coming from outside, and I mean LARGE."; +SWWM_SAYADEIMOS3 = "On top of that I can't seem to get in touch with \cvCytho-sama\c- for info on where to go."; +SWWM_SAYADEIMOS4 = "Well, you're on your own here, I guess. If you can't figure a way out, I'll be on stand-by for a recall."; +// E3M8 +SWWM_SAYADIS1 = "And here we are... The very center of it all."; +SWWM_SAYADIS2 = "This is where the first portal to Earth was opened, and you're gonna use it to get back."; +SWWM_SAYADIS3 = "And of course, the place is guarded, why wouldn't it be. You've got to kill stuff, as usual."; +SWWM_SAYADIS4 = "Let's just hope it drops you off at the right place. Keep going, \cdDemo-chan\c-, you're almost there."; +// E4M8 +SWWM_SAYATHY1 = "Alright, good news, for once. There's a portal nearby, and I'm sure it'll take you to the right spot."; +SWWM_SAYATHY2 = "But, of course, you gotta kick some ass to get there. I mean, nothing in life is easy, isn't it?"; +SWWM_SAYATHY3 = "I'll be ready to debrief you later on your ACTUAL mission."; +SWWM_SAYATHY4 = "Yeah, still have no clue why this massive detour happened. But I'll get to the bottom of it, trust me."; +// E5M8 +SWWM_CYTHONAME = "\cvArchduke Cytho Valathor\c-"; +SWWM_CYTHOSIGIL1 = "\cdDemo\c-, this is \cvCytho\c-. I've got an important message to relay from the royal family."; +SWWM_CYTHOSIGIL2 = "Prince Baphomet is satisfied with your efforts, and has opened a gate for you to return to Earth."; +SWWM_CYTHOSIGIL3 = "Unfortunately, the gate is guarded by high level military demons, two of them, in fact."; +SWWM_CYTHOSIGIL4 = "... Although, knowing you, I'm certain this will not be an issue, correct?"; +// MAP07 +SWWM_SAYADIMPLE1 = "Hold up right there, \cdDemo-chan\c-. You're about to step in on dangerous territory."; +SWWM_SAYADIMPLE2 = "This is the first line of defense that's been set up around the inner starport, and it's a bitch."; +SWWM_SAYADIMPLE3 = "Hopefully, you've got plenty of goodies on ya to smash through... You do, right?"; +SWWM_SAYADIMPLE4 = "Well, we've already seen what you've been able to do so far, so I'm sure you'll be fine."; +SWWM_SAYADIMPLE5 = "Good luck!"; +// MAP30 +SWWM_SAYAIOS1 = "\cdDemo-chan\c-... This is it, you're about to face the Psychic Commander, the leader of Hell's army."; +SWWM_SAYAIOS2 = "I don't know if... ... W-well, I shouldn't be worrying about that at this point."; +SWWM_SAYAIOS3 = "You can do it, you can put an end to all of this. You're... My... O-our hero."; +SWWM_SAYAIOS4 = "Oh god I can't do this, my heart rate is spiking..."; +SWWM_SAYAIOS5 = "... \cdD-Demo-chan\c-... Please save the world and... Please return home."; +// MAP30 with Rampancy +SWWM_SAYARAMPANCY1 = "\cdDemo-chan\c-, that thing's bluffing, trust me. I saw those failed login attempts."; +SWWM_SAYARAMPANCY2 = "I'm sure it's going to try pulling some cliched bullshit to \"turn you to its side\" or whatever."; +SWWM_SAYARAMPANCY3 = "What a joke. Whatever it tries to say, don't listen to it. It's all bullshit and lies."; +SWWM_SAYARAMPANCY4 = "Now, go kick some robotic ass, my brave \cdDemolitionist\c-. We're all counting on you over here."; +// LEVEL08 +SWWM_CYTHONERVE1 = "I haven't been able to contact \cgSaya\c-, I assume she must be asleep, since it's so late over there in Japan."; +SWWM_CYTHONERVE2 = "Many other groups have already been suppressed worldwide, their numbers are quickly waning."; +SWWM_CYTHONERVE3 = "You, however, are up against a cybernetic lieutenant known as the \"Last Tyrant\". This will be tough."; +SWWM_CYTHONERVE4 = "Nevertheless... You are the hero \cdDemolitionist\c-, and you are going to teach these vile fiends a lesson."; +SWWM_CYTHONERVE5 = "Extinguish the flames of demonic corruption that tarnish this land.\nWe the Kuriste believe in you."; +// Eviternity MAP30 +SWWM_SAYAEVIA1 = "Psch... Look at this place. This dude couldn't be more of a pretentious show-off even if he tried."; +SWWM_SAYAEVIA2 = "However \"angelic\" he may look, he's just some dude in pretty armor, so you can kick his ass."; +SWWM_SAYAEVIA3 = "This whole place, though... Damn, I sure hope you've taken a lot of high res shots like I told you."; +SWWM_SAYAEVIA4 = "I'm gonna go grab some popcorn now. This is gonna be an epic battle for sure, kihihihihi..."; +SWWM_SAYAEVIB1 = "What? This is some fucking videogame bullshit right there. You're telling me the guy has TWO HEALTHBARS???"; +SWWM_SAYAEVIB2 = "Bullshit, fucking bullshit! Absolute trash garbage bullshit! Kill his ass, \cdDemo-chan\c-!"; +// Heretic E1M8 +SWWM_SAYAMAW1 = "Here we are, in \"Hell's Maw\"."; +SWWM_SAYAMAW2 = "According to the Sidhe this houses the portal that connects to the demons' realm."; +SWWM_SAYAMAW3 = "I think it's gonna be pretty interesting to visit another universe's equivalent of hell, yeah."; +SWWM_SAYAMAW4 = "... And of course, it's going to be even more interesting to blow shit up in it, too, right?"; +SWWM_SAYAMAW5 = "Just... Be on the lookout for whatever it is that's guarding the place."; +// Heretic E2M8 +SWWM_SAYAMASTERS1 = "OK, so... We're one step closer to that serpent rider's home turf. But there's a problem."; +SWWM_SAYAMASTERS2 = "Specifically, several problems. Big, bulky, muscular problems."; +SWWM_SAYAMASTERS3 = "We're talking BIG MINOTAURS with BIG HAMMERS here."; +SWWM_SAYAMASTERS4 = "I don't know about you, but I'm already hearing the Pillar Men theme in my head."; +SWWM_SAYAMASTERS5 = "Go get them, \cdDemo Demostar\c-... ... ... OK maybe that's a terrible pun, forget about it."; +// Heretic E3M8 +SWWM_SAYADSPARIL1 = "This is it, \cdDemo-chan\c-. You're about to face that stupid-ass wizard."; +SWWM_SAYADSPARIL2 = "You're gonna save another world, and all in record time. You're on a roll!"; +SWWM_SAYADSPARIL3 = "... Oh, and remember, there's a surprise waiting for you at home. Oh, you're so gonna love it."; +SWWM_SAYADSPARIL4 = "Splgslshglgh"; +SWWM_SAYADSPARIL5 = "Oh shit that got picked up by the voice recognition? Oops..."; +// Heretic E4M8 +SWWM_SAYAHEADS1 = "Geez, I'm getting impatient with all this stuff. I hope this really takes you back home."; +SWWM_SAYAHEADS2 = "And if not, well, more time for me to refine this \"present\" that I'm going to give ya."; +SWWM_SAYAHEADS3 = "Thanks to this, I've managed to improve its potency even further. This is going to be fun."; +SWWM_SAYAHEADS4 = "I seriously can't wait to try it, and I'm sure you're also dying to know..."; +SWWM_SAYAHEADS5 = "Smite thy foes and come claim thy prize, o \cdDemolitionist\c-."; +SWWM_SAYAHEADS6 = "... I seriously just fucking said that..."; +// Heretic E5M8 +SWWM_SAYABULLS1 = "And it still keeps going, oh my god..."; +SWWM_SAYABULLS2 = "It's like you're getting thrown around random realms. Look, I'm starting to get pissed."; +SWWM_SAYABULLS3 = "I'm so pissed in fact that, if the next portal doesn't immediately send you back to Parthoris, I'll just..."; +SWWM_SAYABULLS4 = "Yeah..."; +SWWM_SAYABULLS5 = "I NEED you to come back home, \cdDemo-chan\c-. I desperately need you here to test this."; +// Seven Portals +SWWM_SAYAGREETA1 = "There it is, \cdDemo-chan\c-. That's your target, that big stinky ugly monster. That's Korax."; +SWWM_SAYAGREETA2 = "... By the way, did you catch the guy's scent? It's bad, isn't it?"; +SWWM_SAYAGREETA3 = "God, imagine the smell in person... Just thinking about it is making my stomach turn."; +SWWM_SAYAGREETB1 = "Coward... Taunting us from afar..."; // Kirin reply +SWWM_SAYAGREETC1 = "Yeah, sneaky and stinky, telltale signs of an ugly bastard."; +SWWM_SAYAGREETD1 = "Ugly... Bastard?"; // Kirin reply +SWWM_SAYAGREETE1 = "I'd rather not explain, \cxKirin-kun\c-. You'd be very disappointed in all of humankind."; +SWWM_SAYAGREETF1 = "That's certainly not reassuring to hear..."; // Kirin reply +// Shadow Wood +SWWM_SAYABLOODA1 = "I don't know how this dude can even smell anything other than that rancid old dog fart stench he wafts."; +SWWM_SAYABLOODA2 = "Like seriously, jesus fucking christ..."; +SWWM_SAYABLOODB1 = "That ugly bastard needs to take a bath."; // Ibuki reply +SWWM_SAYABLOODC1 = "Ugly bastard? What's this now, some lame-ass doujin?"; +SWWM_SAYABLOODD1 = "Heh, nice one, \cgSayacchi\c-."; // Ibuki reply +// Hypostyle +SWWM_SAYAHYPO1 = "Here we are, after all that roaming around. Whatever lies here, we gotta slay it to catch the next portal."; +SWWM_SAYAHYPO2 = "I sure hope it's not a fucking dragon. That'd be the most cheap-ass generic boss ever."; +SWWM_SAYAHYPO3 = "Uh... I totally jinxed it, didn't I? I bet I did. Yeah, I bet it's a fucking dragon."; +SWWM_SAYAHYPO4 = "I bet THAT GUY is going to rise from the grave and fucking sell me his damn game for the thousandth time."; +// Heresiarch's Seminary +SWWM_KIRINWORSHIPA1 = "Pathetic, disgusting creature...\nWho would ever think of worshipping a foul beast such as yourself?"; +SWWM_KIRINWORSHIPB1 = "The only thing I'd worship is that juicy cock of yours, \cxKirin-kun\c-~"; // Saya reply +SWWM_KIRINWORSHIPC1 = "PFFFFFFFFFFFFFF"; +SWWM_KIRINWORSHIPD1 = "Guh! \cxKiriiiiin\c-! You got cola all over me! God damn it you spit as hard as you cum!"; // Saya reply +SWWM_KIRINWORSHIPD2 = "O-oh... Wait, this thing's still on. Shit... \cdDemo-chan\c- just read all of that."; +// Castle of Grief +SWWM_SAYAGAMEA1 = "Wow, look at fucking mister chessmaster over here... Fuck you!"; +SWWM_SAYAGAMEA2 = "This guy is a fucking idiot and he's pissing me off even more. I so want to watch you beat his sorry ass..."; +SWWM_SAYAGAMEB1 = "Chess nerd..."; // Ibuki +SWWM_SAYAGAMEC1 = "I bet he was in the chess club."; +// Necropolis +SWWM_SAYAMASTERSA1 = "Masters, masters... Whose masters? Awaken my masters? Well, whatever, I don't care what he says."; +SWWM_SAYAMASTERSA2 = "I so want you to kill this dude..."; +SWWM_SAYAMASTERSB1 = "Are you strong enough to face the fact you SMELL?"; // Ibuki reply +SWWM_SAYAMASTERSC1 = "I showered this morning, \crIbuki\c-."; +SWWM_SAYAMASTERSD1 = "I meant the stinky boy over there. You smell nice."; // Ibuki reply +SWWM_SAYAMASTERSE1 = "\cgSayacchi\c- definitely has a pleasant scent to her."; // Kirin reply +SWWM_SAYAMASTERSF1 = "Guhuhuhu... Thanks."; +// Zedek +SWWM_SAYAFIGHTER1 = "This is where Zedek lies, the fighty boy. He probably thinks he's strong, but he hasn't met you."; +SWWM_SAYAFIGHTER2 = "Do watch out for any traps, though. I bet there's some nasty shit here."; +// Traductus +SWWM_SAYACLERICA1 = "If there's one thing I've learned from videogames is that clerics are the lowest trash."; +SWWM_SAYACLERICA2 = "That's everything I have to say."; +SWWM_SAYACLERICB1 = "I have never encountered a single cleric who hasn't attempted to assassinate me."; // Kirin reply +SWWM_SAYACLERICC1 = "Oh yeah, the people from the Sacrosanct Empire, right? Totally forgot about those."; +SWWM_SAYACLERICC2 = "Clerics fucking suck..."; +// Menelkir +SWWM_SAYAMAGE1 = "Menelkir's lair, huh... ... Oh god, don't tell \cxKirin-kun\c-, there's puzzles here."; +SWWM_SAYAMAGE2 = "Yeah, he's more than tired of stuff like this. And apparently now we're doing the picture matching kind."; +SWWM_SAYAMAGE3 = "Well, at least those are actual puzzles, and not whatever the fuck the other stuff was."; +SWWM_SAYAMAGE4 = "Even if they're... You know... The really lame and piss-easy kind."; +// Dark Crucible +SWWM_SAYAKORAXA1 = "This is it, \cdDemo\c-. The big stinky ugly bastard is waiting."; +SWWM_SAYAKORAXB1 = "At last, that vile schemer's evil reign shall end."; // Kirin reply +SWWM_SAYAKORAXC1 = "Time for him to take a fucking bath. After you rearrange his knees, of course."; // Ibuki reply +SWWM_SAYAKORAXD1 = "Even though \cvMeido\c- isn't watching, I can tell you the four of us are cheering you on."; +SWWM_SAYAKORAXE1 = "Fight on, \cdDemo-chan\c-. You can do it, we believe in you."; // Kirin reply +// Blight +SWWM_SAYABLIGHTA1 = "Hey, \cdDemo-chan\c-, remember puzzles?"; +SWWM_SAYABLIGHTB1 = "Nnnnngh..."; // Kirin reply +SWWM_SAYABLIGHTC1 = "I think \cxKirin\c- just heard me. Well... You know what to do."; +SWWM_SAYABLIGHTC2 = "I can tell this is going to be yet more bullshit, so be prepared for anything."; +// Constable's Gate +SWWM_SAYACONSTABLEA1 = "Castles and shit... It just keeps going. I said it in the briefing, anyway... So you know..."; +SWWM_SAYACONSTABLEA2 = "Please keep on exploding things. \cvMeido-chan\c- made some snacks, so we've got that at least."; +SWWM_SAYACONSTABLEB1 = "She really is so thoughtful, that girl..."; // Ibuki reply +SWWM_SAYACONSTABLEC1 = "Even though you can hear her curse everything under her breath about what's happening in there."; +SWWM_SAYACONSTABLED1 = "Yeah, that's our \cvMeido\c- alright."; // Ibuki reply +// Nave +SWWM_SAYANAVEA1 = "I want to borrow the reality bending powers of the \ctMishe\c- to destroy this entire world."; +SWWM_SAYANAVEA2 = "I'm seriously pissed, we all are pissed. Hell, even \cxKirin\c- is upset, and we can't calm him down anymore."; +SWWM_SAYANAVEB1 = "It's kind of cute and worrying at the same time."; // Ibuki reply +SWWM_SAYANAVEC1 = "NNNNNNNNGGGGGHHHHHHHH!"; // Kirin reply +SWWM_SAYANAVED1 = "\cxKirin-kun\c-, you're going to suffocate if you keep screaming into the pillow like that."; +SWWM_SAYANAVEE1 = "Maybe that's what he wants, \cgSaya\c-.\nHe seeks the sweet release of death to find inner peace."; // Ibuki +SWWM_SAYANAVEF1 = "If he wasn't immortal that would be an extremely fucked up thing to say, \crIbuki\c-."; +// Dark Citadel +SWWM_SAYADEATHKINGS1 = "I'm so pissed I could punch a hole through reality to tell these fucking Deathkings to fuck off."; +// Kirin's Thrilling Commentary on Puzzles™ +// first puzzle switch on Seven Portals +SWWM_KIRINPUZZLEA1 = "A peculiar contraption... Allegedly it cites to be part of a larger whole, calling itself a \"puzzle\"."; +SWWM_KIRINPUZZLEA2 = "\cgSayacchi\c- did mention you'd be coming across these. That's most certainly intriguing..."; +// second puzzle switch on Seven Portals +SWWM_KIRINPUZZLEB1 = "Another one... Interesting..."; +// third puzzle switch on Seven Portals +SWWM_KIRINPUZZLEC1 = "I fail to see now what makes this exactly a \"puzzle\". This is no more than a switch hunt."; +SWWM_KIRINPUZZLEC2 = "Hardly a challenge to one's intellect, wouldn't you agree, \cdDemo-chan\c-?"; +// first puzzle switch on Shadow Wood +SWWM_KIRINPUZZLED1 = "It does seem that these \"puzzle switches\" simply keep on showing up wherever you go."; +SWWM_KIRINPUZZLED2 = "I'm sure you are as tired as I am of them."; +// fourth puzzle switch on Shadow Wood +SWWM_KIRINPUZZLEE1 = "These so-called \"puzzles\"... They're an insult to our intelligence."; +SWWM_KIRINPUZZLEE2 = "... I hope I'm not sending too many of these messages."; +// first puzzle switch on Heresiarch's Seminary +SWWM_KIRINPUZZLEF1 = "When will it end? Just how many fractions of \"puzzles\" are we to solve???"; +SWWM_KIRINPUZZLEF2 = "Is this how that sayzha axhkhashaar dares to mock us? With these tiresome games?"; +SWWM_KIRINPUZZLEF3 = "They... Nnngh... Kheza sakharei!"; +SWWM_KIRINPUZZLEG1 = "\cxKirin-kun\c-, I think you're getting a bit too worked up about this."; // Saya reply +SWWM_KIRINPUZZLEH1 = "Yes... I... I'll just lie down for a while, s-sorry..."; +SWWM_KIRINPUZZLEI1 = "... Poor guy. I do agree with him, though... This shit really gets on your nerves, doesn't it?"; // Saya reply +SWWM_KIRINPUZZLEI2 = "Well... I'm gonna go give \cxKirin-kun\c- some TLC now. Don't worry, he'll be fine. He's in good hands."; +// first puzzle switch on Blight +SWWM_KIRINPUZZLEJ1 = "We can't escape, can we? These \"puzzles\" continue to haunt us even now..."; +SWWM_KIRINPUZZLEJ2 = "This accursed land... Plagued by these vile contraptions... I shall never set foot in it. Mark my words."; +// last puzzle switch on Blight +SWWM_KIRINPUZZLEK1 = "Please... Make it stop..."; +SWWM_KIRINPUZZLEL1 = "\cxKirin-kun\c-, hey... It's alright. Here... Drink up, it'll help you relax.\c-"; // Ibuki reply +SWWM_KIRINPUZZLEM1 = "Gulp... Gulp... Gulp..."; +SWWM_KIRINPUZZLEN1 = "Man, look at him go... Drinking it all up like a champ."; // Saya reply +SWWM_KIRINPUZZLEO1 = "You know how it is... Once they find a breast to suckle on, all their worries fade away..."; // Ibuki reply +SWWM_KIRINPUZZLEP1 = "You know \cdDemo-chan\c- can read what we're saying, right?"; // Saya reply +SWWM_KIRINPUZZLEQ1 = "Oh, I'm sure they'd be more than happy to have their turn once the mission's over, hm?"; // Ibuki reply +// first puzzle switch on Constable's Gate +SWWM_KIRINPUZZLER1 = "Let this be the last of these \"puzzles\" that we may encounter..."; +SWWM_KIRINPUZZLER2 = "Urp..."; +SWWM_KIRINPUZZLER3 = "My apologies."; +SWWM_KIRINPUZZLES1 = "That was some good milk, wasn't it?"; // Saya reply +SWWM_KIRINPUZZLET1 = "Certainly... I am grateful for \crIbuki\c-'s blessing."; +SWWM_KIRINPUZZLEU1 = "Making her able to lactate at will is a blessing, yeah. I'm sure \cdDemo\c- agrees too."; // Saya reply +// super secret cheats SWWM_ZNVTXT1 = "\cdDemolitionist\c-, it is me, \chZanaveth The Corruptor\c-. I have been witness of the act you have now acted, yes."; SWWM_ZNVTXT2 = "It is \cf%d\c- years since... and those magic words, I can see them again. Much impressed, very much impressed."; SWWM_ZNVTXT3 = "So, you can do the thing... As have the \ctMishe\c- also taught to myself. This is a nonexpected surprise, yes."; @@ -799,7 +1009,7 @@ SWWM_NEWMISSION = "Mission briefing has been updated."; SWWM_CHEEVO = "\cxAchievement unlocked: \cf%s\c-"; SWWM_CHEEVOREM = "\cx%s \cxunlocked an achievement: \cf%s\c-"; // intermission tips -SWWM_NINTERTIP = "140"; +SWWM_NINTERTIP = "150"; 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."; @@ -941,6 +1151,16 @@ SWWM_INTERTIP137 = "The Mortal Rifle (\"Mister\" for short) was devised as a pot SWWM_INTERTIP138 = "The Rafan-Kos is truly an Ultimate Weapon, as its name implies."; SWWM_INTERTIP139 = "It's said that the Hand of Divine bears only a minuscule fraction of its original creator's power. Guy must pack one hell of a wallop, then."; SWWM_INTERTIP140 = "The Demolitionist's chassis carries a faint lime scent."; +SWWM_INTERTIP141 = "\"In the future, everything is Chrome.\"\n\nNever has a line from a children's cartoon rung more true after the inevitable rise of the web-app supremacy."; +SWWM_INTERTIP142 = "This mod is in constant development. Remember to report any bugs you may find."; +SWWM_INTERTIP143 = "If you don't know how to use an item or weapon, remember that you can check the Demolitionist Menu at any time to look up information on it once you pick it up for the first time."; +SWWM_INTERTIP144 = "Remember to stay hydrated."; +SWWM_INTERTIP145 = "Most weapons are explosive, so try not to hurt yourself with them."; +SWWM_INTERTIP146 = "Writing these tips really puts a lot of strain on me."; +SWWM_INTERTIP147 = "Help! I am trapped in a tip factory!"; +SWWM_INTERTIP148 = "The Devastation Sigil and the Ragekit can actually be combined. You know, if you want to kill Cyberdemons with a single punch. Really makes you feel like a certain caped bald man."; +SWWM_INTERTIP149 = "Always take breaks during long play sessions. You'll play better and bear less stress."; +SWWM_INTERTIP150 = "This is the 150th tip. I can't believe I've written so many of them."; // intermission fanart SWWM_FANART = "Art: "; SWWM_NFANART = "13"; @@ -961,7 +1181,7 @@ SWWM_FANART13 = "Marisa7.jpg"; SWWM_ACHIEVEMENT_ACID_TAG = "Fizzy Goodness"; SWWM_ACHIEVEMENT_ACID_TXT = "Melt %d enemies with Telebrium Flechettes"; SWWM_ACHIEVEMENT_ALLCOLL_TAG = "The Full Set"; -SWWM_ACHIEVEMENT_ALLCOLL_TXT = "Obtain all collectibles in a single session"; +SWWM_ACHIEVEMENT_ALLCOLL_TXT = "Obtain all collectibles in a single save"; SWWM_ACHIEVEMENT_ALLITEMS_TAG = "Collector"; SWWM_ACHIEVEMENT_ALLITEMS_TXT = "Obtain 100%% items in %d maps"; SWWM_ACHIEVEMENT_ALLKILLS_TAG = "Pest Control"; @@ -1107,10 +1327,10 @@ SWWM_ACHIEVEMENT_PENE_TXT = "Strike through %d enemies in a row with a single Gr SWWM_ACHIEVEMENT_PLASMA_TAG = "Blastin' Plasma"; SWWM_ACHIEVEMENT_PLASMA_TXT = "Kill an enemy at full health with a Plasma Blaster charged shot %d times"; SWWM_ACHIEVEMENT_PLUSH_TAG = "Lovestruck"; -SWWM_ACHIEVEMENT_PLUSH_TXT = "Play with the Saya plush %d times in the same session"; -$ifgame(hexen) SWWM_ACHIEVEMENT_PLUSH_TXT = "Play with the Saya or Kirin plushies %d times in the same session"; +SWWM_ACHIEVEMENT_PLUSH_TXT = "Play with the Saya plush %d times in the same save"; +$ifgame(hexen) SWWM_ACHIEVEMENT_PLUSH_TXT = "Play with the Saya or Kirin plushies %d times in the same save"; SWWM_ACHIEVEMENT_PUZZLE_TAG = "Even Kirin is Upset"; -SWWM_ACHIEVEMENT_PUZZLE_TXT = "Solve %d fractions of \"puzzles\""; +SWWM_ACHIEVEMENT_PUZZLE_TXT = "Solve all fractions of \"puzzles\" in the same save"; SWWM_ACHIEVEMENT_RAGE_TAG = "No Talk me Angy"; SWWM_ACHIEVEMENT_RAGE_TXT = "Use %d Ragekits"; SWWM_ACHIEVEMENT_RAIL_TAG = "Railed Hard"; diff --git a/language.def_lore b/language.def_lore index cffec7eeb..acf1dafde 100644 --- a/language.def_lore +++ b/language.def_lore @@ -611,6 +611,39 @@ SWWM_LORETXT_CYRUS = "\cfThere, I said it. Like, sure, the stuff he makes, cool and all, but GOOD LORD the guy pisses me off with his stupid videogamey nerdy crap. Not letting you go in fully armed and instead deciding to fucking YEET your shit all over the place for you to pick up? That's one thing. Deciding that after every mission you have to RETURN all the stuff you got, that's another, too. Dropping some cash every time you blow up baddies, that I can accept, though, helps cover the costs of everything.\c-\n" "\n" "\cfYou know, he may get on my nerves sometimes, but the guy was the first serious business partner I ever had, and damn, he's not that bad outside of all the nerditude he expels... I mean, to be honest, I'm also a big stinky nerd too, and you can quote me on that.\c-"; +SWWM_LORETAG_CYTHO = "Valathor, Cytho"; +SWWM_LORETAB_CYTHO = "People"; +SWWM_LOREREL_CYTHO = "Hell;Ellen;Anarukon;DemonInvasion;UAC;Saya;AkariLabs;Demolitionist"; +SWWM_LORETXT_CYTHO = +"\cxFull Name:\c-\n" +"\cf Archduke Cytho of House Valathor\c-\n" +"\cxNationality:\c-\n" +"\cf Kuriste\c-\n" +"\cxDate of Birth:\c-\n" +"\cf 2008-10-09\c-\n" +"\cxTwitter:\c-\n" +"\cf @incuvalathor\c-\n" +"\n" +"Born in the now fallen Iskar township in 2008 as one of the youngest men of the humble \cfHouse Valathor\c-, \cfCytho\c- took to the family business upon reaching adulthood, quickly climbing the ranks of \cfHell\c-'s sex work industry, partly due to his innate beauty, but also the rapidly accumulating \"satisfied customers\" he would regularly service, and the many pupils he'd take under his wing. By 2028, he had made of Earth his second home, where he would open up an account on social media for a more modern method of attracting new clientele.\n" +"\n" +"One day, however, everything changed. A large number of incubi would report being \"creeped out\" by a woman's unreasonable requests. Curious, Cytho would then set forth to try and find her, to see what exactly his colleagues were finding so unreasonable. And that, is how he met \cfElena Yanikov XVI\c-, an \cfAnarukon\c- woman \"struck by the curse of eternal loneliness\", who so desperately wished to find a husband that she eventually resourced to summoning demons and begging for them to marry her. As expected, all of them had rejected her pleas, no matter how hard she tried, as many among demonkind were wary of her kind. Cytho, however, took pity on her, and accepted, on one condition: They would have to go on a date first.\n" +"\n" +"Some time later, the archduke announced his retirement from sex work, having \"reformed\" as the faithful husband to an Anarukon woman. While his friends and family celebrated, others saw this as an affront. House Valathor was heavily criticised for not rejecting him right there and then, to the point a small war broke out, as the rival \cfHouse Irishtanar\c- would crush their hometown in \"protest\". That day, Cytho closely witnessed the cruelty of his own kind, as the sole survivor of that massacre.\n" +"\n" +"Since then, he lives in Boston with his wife and their three children. His social media account's purpose has been shifted to communicating the news of what transpires in his home realm, sourced from the many contacts he's gathered over the years, as representative of the subjugated civilian population. Although the vast majority of Earth's population would not take him seriously, not until the \cfDemon Invasion\c- of 2148 began.\n" +"\n" +"Denouncing the \cfUAC\c-'s involvements, he posted about the events on \cfPhobos\c- and \cfDeimos\c- long before the UAC had made them public, and proclaimed that an invasion on Earth was imminent. Still few took him seriously, but one among them was his friend \cfSaya Miyamoto\c-, of \cfAkari Labs\c-. As investor in her company, he had already ensured beforehand that she would have the resources and manpower needed for the task he'd ask of her: Build a combat robot that can fight the invaders.\n" +"\n" +"And thus, through their collaboration, the \cfDemolitionist\c- was born.\n" +"\n" +"\cxSaya's Notes:\c-\n" +"\cfSince the very moment I met him, back when I first visited Ellen-san's family, I knew he was more than just a cool, handsome femboy demon grandpa. Yeah, Cytho-sama's the real deal, and the blood that runs through his veins is more noble than that of any pesky, pompous trashlord with a fancy title out there.\c-\n" +"\n" +"\cfAnd yeah, surprise surprise... He's your dad (well, kinda). But you already knew that, didn't you?\c-\n" +"\n" +"\cfSeriously, if it wasn't for him, all of this would have never been possible. We owe a lot to him... I just hope I don't have to repay him with my body (not that I would mind, kihihihi).\c-\n" +"\n" +"\cfPS: His name is pronounced \"Kaizo\", you kept saying it wrong every time. But don't worry, you're not the first.\c-"; SWWM_LORETAG_DECADEMECH = "Decade Mechanics"; SWWM_LORETAB_DECADEMECH = "Lore"; SWWM_LOREREL_DECADEMECH = "XAnimen;EngineTech;Nedoshiaan;Saya"; @@ -673,7 +706,7 @@ SWWM_LORETXT_DEEPIMPACT = "\cfI know you're hella strong, so you better not pull on it too hard. Wait, that sounds wrong... fuck. Forget I said that. Forget you read it, even.\c-"; SWWM_LORETAG_DEMOLITIONIST = "Demolitionist"; SWWM_LORETAB_DEMOLITIONIST = "People"; -SWWM_LOREREL_DEMOLITIONIST = "AkariLabs;Ibuki;Saya;Zanaveth2;Hell;UAC;Nekuratek;Belt;Collar;Propulsor;Hammerspace;Display;Voicebox;Maidbot;EngineTech;Kirin;DemonInvasion"; +SWWM_LOREREL_DEMOLITIONIST = "AkariLabs;Ibuki;Saya;Zanaveth2;Hell;UAC;Nekuratek;Belt;Collar;Propulsor;Hammerspace;Display;Voicebox;Maidbot;EngineTech;Kirin;DemonInvasion;Cytho"; SWWM_LORETXT_DEMOLITIONIST = "\cxFull Name:\c-\n" "\cf Akari Labs First Generation Autonomous Combat Unit\c-\n" @@ -686,13 +719,13 @@ SWWM_LORETXT_DEMOLITIONIST = "\cxTwitter:\c-\n" "\cf @demolitionist_bot\c-\n" "\n" -"The \cfDemolitionist\c- is one of the crowning achievements of \cfAkari Labs\c- on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the \cfRed Oni\c- supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force.\n" +"The \cfDemolitionist\c- is one of the crowning achievements of \cfAkari Labs\c- on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the \cfRed Oni\c- supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. The project has been funded and sponsored by many partners of Akari Labs, and is the brainchild of both \cfSaya Miyamoto\c- and \cfArchduke Cytho Valathor\c-, representative of \cfHell\c-'s civilian population.\n" "\n" "Each unit is equipped with various third-party components of note, such as the \cfJetBurst™ Impulsors\c- on their backs, allowing them to perform rapid mid-air boosts and dashes, a pair of \cfHammerspace™\c- containers, giving them quick access to a wide arsenal, the two being attached to the all-popular \cfSymnatek Magnetic Utility Belt\c-, or the powerful \cfCelestine Microfusion Battery\c-, courtesy of \cfTach-Engine Technology Institute\c-, which provides up to 80 days of autonomy for the unit, at full processing power of its \cfNekuratek IK-349 CPU\c-. More details on the full hardware specifications can be found at the Akari Labs website.\n" "\n" "The AI core of the Demolitionist is built on the same technology as Akari Labs' \cfMaidbots\c-, the \cfNekuronbot AI Framework\c-, which had been provided to \cfSaya Miyamoto\c- herself as a gift of friendship from \cfZanaveth Nekuraku II\c-, the lead AI engineer and current CEO of \cfNekuratek\c-. Thanks to this technology, and combined with many other features such as the \cfCuteEmotion Display\c- that allows the unit to visibly show emotion through a set of simple animated faces or the \cfLoudboi Voicebox\c- that allows it to speak almost naturally, the Demolitionist is barely indistinguishable from a real person in its behavior and emotional response, making interaction with civilians much more comforting. It can even be said that the Demolitionist has its own little personality, with unique quirks and all.\n" "\n" -"The first unit, affectionately known as \cfDemo-chan\c- by Saya, was deployed in June of 2148 on \cfUnion States\c- territory in order to combat the demonic invasion brought upon by the \cfUAC\c-'s interventions on \cfHell\c-.\n" +"The first unit, affectionately known as \cfDemo-chan\c- by Saya, was deployed in June of 2148 on \cfUnion States\c- territory in order to combat the demonic invasion brought upon by the \cfUAC\c-'s interventions on Hell.\n" "\n" "Of this previously mentioned first unit, there are many details known thanks to a Q&A session that Saya had livestreamed months prior to the deployment. The unit has been acknowledged as being part of the Miyamoto household, having the full name of \cfDemo Miyamoto\c-, and being referred to by Saya as her \"child\". Demo can be described as \"quite chatty\" and fond of joking around to try and put a smile on people's faces, but also very serious and determined in their desire to protect those in need. They are also quite popular within the LGBTQIA+ community due to their fierce support of also protecting the rights of those who face discrimination for their identities, and has even publicly come out themself as non-binary. This didn't really come as a surprise to most due to Saya's own involvements with the collective, however.\n" "\n" @@ -716,13 +749,13 @@ SWWM_LORETXT_DEMOLITIONIST2 = "\cxTwitter:\c-\n" "\cf @demolitionist_bot\c-\n" "\n" -"The \cfDemolitionist\c- is one of the crowning achievements of \cfAkari Labs\c- on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the \cfRed Oni\c- supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force.\n" +"The \cfDemolitionist\c- is one of the crowning achievements of \cfAkari Labs\c- on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the \cfRed Oni\c- supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. The project has been funded and sponsored by many partners of Akari Labs, and is the brainchild of both \cfSaya Miyamoto\c- and \cfArchduke Cytho Valathor\c-, representative of \cfHell\c-'s civilian population.\n" "\n" "Each unit is equipped with various third-party components of note, such as the \cfJetBurst™ Impulsors\c- on their backs, allowing them to perform rapid mid-air boosts and dashes, a pair of \cfHammerspace™\c- containers, giving them quick access to a wide arsenal, the two being attached to the all-popular \cfSymnatek Magnetic Utility Belt\c-, or the powerful \cfCelestine Microfusion Battery\c-, courtesy of \cfTach-Engine Technology Institute\c-, which provides up to 80 days of autonomy for the unit, at full processing power of its \cfNekuratek IK-349 CPU\c-. More details on the full hardware specifications can be found at the Akari Labs website.\n" "\n" "The AI core of the Demolitionist is built on the same technology as Akari Labs' \cfMaidbots\c-, the \cfNekuronbot AI Framework\c-, which had been provided to \cfSaya Miyamoto\c- herself as a gift of friendship from \cfZanaveth Nekuraku II\c-, the lead AI engineer and current CEO of \cfNekuratek\c-. Thanks to this technology, and combined with many other features such as the \cfCuteEmotion Display\c- that allows the unit to visibly show emotion through a set of simple animated faces or the \cfLoudboi Voicebox\c- that allows it to speak almost naturally, the Demolitionist is barely indistinguishable from a real person in its behavior and emotional response, making interaction with civilians much more comforting. It can even be said that the Demolitionist has its own little personality, with unique quirks and all.\n" "\n" -"The first unit, affectionately known as \cfDemo-chan\c- by Saya, was deployed in June of 2148 on \cfUnion States\c- territory in order to combat the demonic invasion brought upon by the \cfUAC\c-'s interventions on \cfHell\c-.\n" +"The first unit, affectionately known as \cfDemo-chan\c- by Saya, was deployed in June of 2148 on \cfUnion States\c- territory in order to combat the demonic invasion brought upon by the \cfUAC\c-'s interventions on Hell.\n" "\n" "Of this previously mentioned first unit, there are many details known thanks to a Q&A session that Saya had livestreamed months prior to the deployment. The unit has been acknowledged as being part of the Miyamoto household, having the full name of \cfDemo Miyamoto\c-, and being referred to by Saya as her \"child\". Demo can be described as \"quite chatty\" and fond of joking around to try and put a smile on people's faces, but also very serious and determined in their desire to protect those in need. They are also quite popular within the LGBTQIA+ community due to their fierce support of also protecting the rights of those who face discrimination for their identities, and has even publicly come out themself as non-binary. This didn't really come as a surprise to most due to Saya's own involvements with the collective, however.\n" "\n" @@ -746,13 +779,13 @@ SWWM_LORETXT_DEMOLITIONIST3 = "\cxTwitter:\c-\n" "\cf @demolitionist_bot\c-\n" "\n" -"The \cfDemolitionist\c- is one of the crowning achievements of \cfAkari Labs\c- on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the \cfRed Oni\c- supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force.\n" +"The \cfDemolitionist\c- is one of the crowning achievements of \cfAkari Labs\c- on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the \cfRed Oni\c- supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. The project has been funded and sponsored by many partners of Akari Labs, and is the brainchild of both \cfSaya Miyamoto\c- and \cfArchduke Cytho Valathor\c-, representative of \cfHell\c-'s civilian population.\n" "\n" "Each unit is equipped with various third-party components of note, such as the \cfJetBurst™ Impulsors\c- on their backs, allowing them to perform rapid mid-air boosts and dashes, a pair of \cfHammerspace™\c- containers, giving them quick access to a wide arsenal, the two being attached to the all-popular \cfSymnatek Magnetic Utility Belt\c-, or the powerful \cfCelestine Microfusion Battery\c-, courtesy of \cfTach-Engine Technology Institute\c-, which provides up to 80 days of autonomy for the unit, at full processing power of its \cfNekuratek IK-349 CPU\c-. More details on the full hardware specifications can be found at the Akari Labs website.\n" "\n" "The AI core of the Demolitionist is built on the same technology as Akari Labs' \cfMaidbots\c-, the \cfNekuronbot AI Framework\c-, which had been provided to \cfSaya Miyamoto\c- herself as a gift of friendship from \cfZanaveth Nekuraku II\c-, the lead AI engineer and current CEO of \cfNekuratek\c-. Thanks to this technology, and combined with many other features such as the \cfCuteEmotion Display\c- that allows the unit to visibly show emotion through a set of simple animated faces or the \cfLoudboi Voicebox\c- that allows it to speak almost naturally, the Demolitionist is barely indistinguishable from a real person in its behavior and emotional response, making interaction with civilians much more comforting. It can even be said that the Demolitionist has its own little personality, with unique quirks and all.\n" "\n" -"The first unit, affectionately known as \cfDemo-chan\c- by Saya, was deployed in June of 2148 on \cfUnion States\c- territory in order to combat the demonic invasion brought upon by the \cfUAC\c-'s interventions on \cfHell\c-.\n" +"The first unit, affectionately known as \cfDemo-chan\c- by Saya, was deployed in June of 2148 on \cfUnion States\c- territory in order to combat the demonic invasion brought upon by the \cfUAC\c-'s interventions on Hell.\n" "\n" "Of this previously mentioned first unit, there are many details known thanks to a Q&A session that Saya had livestreamed months prior to the deployment. The unit has been acknowledged as being part of the Miyamoto household, having the full name of \cfDemo Miyamoto\c-, and being referred to by Saya as her \"child\". Demo can be described as \"quite chatty\" and fond of joking around to try and put a smile on people's faces, but also very serious and determined in their desire to protect those in need. They are also quite popular within the LGBTQIA+ community due to their fierce support of also protecting the rights of those who face discrimination for their identities, and has even publicly come out themself as non-binary. This didn't really come as a surprise to most due to Saya's own involvements with the collective, however.\n" "\n" @@ -945,7 +978,7 @@ SWWM_LORETXT_DIVINESPRITE = "\cfPS: Don't try to eat it.\c-"; SWWM_LORETAG_DOOMGUY = "Doom Marine"; SWWM_LORETAB_DOOMGUY = "People"; -SWWM_LOREREL_DOOMGUY = "UAC;Hell;Saya;AkariLabs;Demolitionist"; +SWWM_LOREREL_DOOMGUY = "UAC;Hell;Saya;AkariLabs;Demolitionist;Cytho"; SWWM_LORETXT_DOOMGUY = "\cxFull Name:\c-\n" "\cf CLASSIFIED\c-\n" @@ -965,7 +998,7 @@ SWWM_LORETXT_DOOMGUY = "\cxSaya's Notes:\c-\n" "\cfAlright, IMPORTANT THING: don't get close to this guy, don't say anything to him, do not interact. If you two come across each other, stand back and let him work, or he might just go and start shooting you too.\c-\n" "\n" -"\cfBy the way, my congratulations to those UAC goons for how well-guarded they keep all the info about him. We don't even know his actual goddamn name, or his history from before all this shit started. Like, what even is this guy like? I haven't heard much of that, but there was some mention of him liking rabbits? Cute bunnies?\c-\n" +"\cfBy the way, my congratulations to those UAC goons for how well-guarded they keep all the info about him. We don't even know his actual goddamn name, or his history from before all this shit started. Like, what even is this guy like? I haven't heard much of that, apart from the little info Cytho-sama could get out of his previous romp through Hell, but there was some mention of him liking rabbits? Cute bunnies?\c-\n" "\n" "\cfWell, maybe then, if you pretend those horns of yours are some bun ears, he might not shoot you on sight, who knows...\c-"; SWWM_LORETXT_DOOMGUY2 = @@ -1031,7 +1064,7 @@ SWWM_LORETXT_EBARRIER = "\cfLil' recommendation from Misa, this one. If it works as well as she says, you won't have much trouble dealing with all that slimy waste those UAC asshats keep leaking around (boy they sure don't care about the environment, huh). Or... well, I guess the firey flames of Hell won't toast your circuits either.\c-"; SWWM_LORETAG_ELLEN = "Yanikov, Elena XXI"; SWWM_LORETAB_ELLEN = "People"; -SWWM_LOREREL_ELLEN = "Ibuki;Taro;Ashley;Saya;Anarukon;WhiteScar;Hell;Yui"; +SWWM_LOREREL_ELLEN = "Ibuki;Taro;Ashley;Saya;Anarukon;WhiteScar;Hell;Yui;Cytho"; SWWM_LORETXT_ELLEN = "\cxFull Name:\c-\n" "\cf Elena \"Ellen\" Yanikov XXI\c-\n" @@ -1637,7 +1670,7 @@ SWWM_LORETXT_HEAVYMAHSHEENGUN = "\cfGod just seeing it in action is enough to make me wet. Hell, more than that. 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.\c-"; SWWM_LORETAG_HELL = "Hell"; SWWM_LORETAB_HELL = "Lore"; -SWWM_LOREREL_HELL = "Imanaki;UAC;Saya;Ellen;Anarukon;Novoskhana;DemonInvasion"; +SWWM_LOREREL_HELL = "Imanaki;UAC;Saya;Ellen;Anarukon;Novoskhana;DemonInvasion;Cytho"; SWWM_LORETXT_HELL = "\cxName:\c-\n" "\cf Hell\c-\n" @@ -3750,7 +3783,7 @@ SWWM_LORETXT_TARO = "\cfThough, he's also serious af when he wants. And at times like that he basically becomes the Tsukkomi to my Boke. If you don't know what that means you can go look it up, Demo-chan.\c-"; SWWM_LORETAG_TASTYHOAGIE = "Hoagie"; SWWM_LORETAB_TASTYHOAGIE = "Item"; -SWWM_LOREREL_TASTYHOAGIE = "Saya;Hell"; +SWWM_LOREREL_TASTYHOAGIE = "Saya;Hell;Cytho"; SWWM_LORETXT_TASTYHOAGIE = "\cxDesignation:\c-\n" "\cf Hoagie\c-\n" @@ -3875,7 +3908,7 @@ SWWM_LORETXT_UAC3 = "\cxSaya's Notes:\c-\n" "\cfCrazy stuff, all because of the UAC being shit and bad. I'm happy though, because I got to see that pathetic brat's fall from glory, that idiot, who once claimed to be the \"most important man in the world\", now turned into the US government's personal lap dog. It's so hilarious my sides have gone into orbit, I swear.\c-\n" "\n" -"\cfOh yeah, that little bit at the end of the \"other side's account\" on things? Yeah, you can thank my \"special source\" for that. Cytho-sama has a lot of contacts in Hell, that's for sure. He never told me about it, but I'm guessing he was someone important back in the day, before he came to Earth and \"reformed\". Oh well. Here ends the story of these Dumb Epistles or whatever, one of the shining examples of the consequences of unchecked capitalism™.\c-"; +"\cfAnd so, here ends the story of these Dumb Epistles or whatever, one of the shining examples of the consequences of unchecked capitalism™.\c-"; SWWM_LORETAG_UNISSIX = "Unissix, Misa A."; SWWM_LORETAB_UNISSIX = "People"; SWWM_LOREREL_UNISSIX = "Devanikna;Nedoshiaan;Zanaveth2;Zanaveth3;Nukuri;Saya;Yui;Taro;Ashley;Ellen;Sankaideriha"; diff --git a/language.def_menu b/language.def_menu index a131e44cf..1a8f9de7c 100644 --- a/language.def_menu +++ b/language.def_menu @@ -199,6 +199,7 @@ SWWM_ITEMGLOWS = "Distant Items Glow"; SWWM_NOMAGDROP = "Drop Spent Mags"; SWWM_BARRIERUSE = "Automatically Use Coating"; SWWM_SVBARRIERUSE = "Enforce Coating Auto-Use"; +SWWM_NOMAPMSG = "Map Special Messages"; SWWM_MMTITLE = "Minimap Settings"; SWWM_MM_ENABLE = "Show Minimap"; SWWM_MM_ROTATE = "Rotate Minimap"; @@ -344,6 +345,7 @@ TOOLTIP_SWWM_ITEMGLOWS = "If enabled, items that are far away from the player wi TOOLTIP_SWWM_NOMAGDROP = "By default, the Demolitionist will be somewhat environmentally conscious and not leave spent magazines lying around. Enable if you prefer the added clutter."; TOOLTIP_SWWM_AUTOUSEBARRIER = "When enabled, elemental coating will be automatically used as needed if standing on damaging floors."; TOOLTIP_SWWM_ENFORCEAUTOUSEBARRIER = "Enforce a specific coating auto-use setting for all players, or respects per-player settings."; +TOOLTIP_SWWM_NOMAPMSG = "Toggles special animated character messages on certain maps (usually vanilla)."; TOOLTIP_SWWM_MM_ENABLE = "Displays a minimap under the score counter."; TOOLTIP_SWWM_MM_ROTATE = "Rotates the minimap view."; TOOLTIP_SWWM_MM_GRID = "Shows a 128x128 grid on the minimap."; diff --git a/language.es_base b/language.es_base index 6159df08f..e99d26547 100644 --- a/language.es_base +++ b/language.es_base @@ -603,6 +603,222 @@ SWWM_PLACE3 = "3º"; SWWM_PLACE1_GENDER1 = "1ª"; SWWM_PLACE2_GENDER1 = "2ª"; SWWM_PLACE3_GENDER1 = "3ª"; +// "Direct messages" +SWWM_INCOMINGMSG = "Mensaje directo entrante de %s..."; +// E1M8 +SWWM_SAYAPHOBOS1 = "Creo que olvidé decirlo en la misión pero... Hay un problemilla, \cdDemo-chan\c-."; +SWWM_SAYAPHOBOS2 = "El portal a Deimos está guardado por dos malos malosos, y vas a tener que cargártelos."; +SWWM_SAYAPHOBOS3 = "Son supuestamente el \"reemplazo\" de lo que sea que matara el otro tío para pasar por el mismo sitio."; +SWWM_SAYAPHOBOS4 = "Bueno, conociéndote, estoy segura de que no será un problema. En fin, eso es todo de momento. Buena suerte."; +// E2M8 +SWWM_SAYADEIMOS1 = "Cuidado, \cdDemo\c-, esto me da mala espina."; +SWWM_SAYADEIMOS2 = "Me sale aquí una enorme marca de energía de ahí afuera, y digo ENORME."; +SWWM_SAYADEIMOS3 = "Y encima no puedo contactar con \cvCytho-sama\c- para que nos informe de donde ir."; +SWWM_SAYADEIMOS4 = "Bueno, vas por tu cuenta, supongo. Si no consigues encontrar una salida, estaré esperando para reclamarte."; +// E3M8 +SWWM_SAYADIS1 = "Y aquí estamos... En el mismísimo centro de todo."; +SWWM_SAYADIS2 = "Aquí es donde se abrió el primer portal a la Tierra, y vas a usarlo para volver."; +SWWM_SAYADIS3 = "Y por supuesto, todo bien guardado, como no. Tienes que matar cosas, como siempre."; +SWWM_SAYADIS4 = "Esperemos al menos que te eche en el sitio justo. Tu sigue, \cdDemo-chan\c-, que ya falta poco."; +// E4M8 +SWWM_SAYATHY1 = "Vale, buenas noticias, al menos. Hay un portal cerca, y estoy segura de que te llevará al sitio correcto."; +SWWM_SAYATHY2 = "Pero, por supuesto, tienes que patear más traseros para llegar. A ver, nada en la vida es fácil, ¿no?"; +SWWM_SAYATHY3 = "Estaré lista para informarte luego de tu misión DE VERDAD."; +SWWM_SAYATHY4 = "Ya, aun no tengo ni idea de como salió el lío este. Pero ya llegaré al fondo de todo esto, ya verás."; +// E5M8 +SWWM_CYTHONAME = "\cvArchiduque Cytho Valathor\c-"; +SWWM_CYTHOSIGIL1 = "\cdDemo\c-, soy \cvCytho\c-. Tengo un mensaje importante de parte de la familia real."; +SWWM_CYTHOSIGIL2 = "El príncipe Baphomet está satisfecho con tus esfuerzos, y ha abierto un portal para que regreses a la Tierra."; +SWWM_CYTHOSIGIL3 = "Desafortunadamente, dicho portal está guardado por demonios militares de alto rango, dos, de hecho."; +SWWM_CYTHOSIGIL4 = "... Aunque, conociéndote, estoy seguro de que no será un problema, ¿cierto?"; +// MAP07 +SWWM_SAYADIMPLE1 = "Alto ahí, \cdDemo-chan\c-. Estás a punto de meterte en terreno peligroso."; +SWWM_SAYADIMPLE2 = "Esta es la primera línea de defensa que se ha montado alrededor del puerto interior, y es una jodienda."; +SWWM_SAYADIMPLE3 = "Con suerte, tienes bastante equipamiento para arrasarlo todo... Lo tienes, ¿verdad?"; +SWWM_SAYADIMPLE4 = "Bueno, ya hemos visto lo que puedes hacer, así que estoy segura de que irá todo bien."; +SWWM_SAYADIMPLE5 = "¡Buena suerte!"; +// MAP30 +SWWM_SAYAIOS1 = "\cdDemo-chan\c-... Ya está, vas a enfrentarte al Comandante Psíquico, el líder del ejército Infernal."; +SWWM_SAYAIOS2 = "No sé si... ... B-bueno, no debería preocuparme llegado este punto."; +SWWM_SAYAIOS3 = "Puedes hacerlo, puedes poner fin a todo esto. Eres... Mi... N-nuestro héroe."; +SWWM_SAYAIOS4 = "Oh dios no puedo hacer esto, tengo el pulso a tope..."; +SWWM_SAYAIOS5 = "... \cdD-Demo-chan\c-... Por favor salva el mundo y... Por favor vuelve a casa."; +// MAP30 with Rampancy +SWWM_SAYARAMPANCY1 = "\cdDemo-chan\c-, esa cosa te toma el pelo, confía en mí. Vi los fallos de login."; +SWWM_SAYARAMPANCY2 = "Estoy segura de que sacará alguna mierda de cliché para \"atraerte a su bando\" o mierdas."; +SWWM_SAYARAMPANCY3 = "Menudo chiste. Sea lo que sea que te diga, no lo escuches. Es todo mentiras y mierdas."; +SWWM_SAYARAMPANCY4 = "Ahora, ve y patea traseros de robot, mi valiente \cdDemolicionista\c-. Todos contamos contigo aquí."; +// LEVEL08 +SWWM_CYTHONERVE1 = "No he podido contactar con \cgSaya\c-, asumo entonces que está durmiendo, ya que es bastante tarde en Japón."; +SWWM_CYTHONERVE2 = "Muchos otros grupos ya han sido suprimidos a escala mundial, sus fuerzas rápidamente declinan."; +SWWM_CYTHONERVE3 = "Tú, sin embargo, te enfrentas a un teniente cibernético conocido como el \"Último Tirano\". Esto será difícil."; +SWWM_CYTHONERVE4 = "Sin embargo... Eres la heroica \cdDemolicionista\c-, y les darás una lección a estas viles bestias."; +SWWM_CYTHONERVE5 = "Extingue las llamas de corrupción demoníaca que mancillan esta tierra. Los Kuriste creemos en ti."; +// Eviternity MAP30 +SWWM_SAYAEVIA1 = "Pst... Mira este sitio. Este tío no podía ser más pretencioso ni aunque lo intentara."; +SWWM_SAYAEVIA2 = "Da igual lo \"angelical\" que parezca, es solo un tío con armadura bonita, le puedes patear el culo."; +SWWM_SAYAEVIA3 = "Todo este sitio, es que... Joder, espero que hayas sacado muchas fotos de alta resolución como te pedí."; +SWWM_SAYAEVIA4 = "Voy a por unas palomitas. Esto va a ser desde luego una batalla épica, jijijijiji..."; +SWWM_SAYAEVIB1 = "¿Que? Pero menuda mierda salida de videojuego. ¿¿¿Me estás contando que el tío tiene DOS BARRAS DE VIDA???"; +SWWM_SAYAEVIB2 = "¡Una mierda, una puta mierda así de grande! ¡Esto es una putísima mierda! ¡Cárgatelo, \cdDemo-chan\c-!"; +// Heretic E1M8 +SWWM_SAYAMAW1 = "Y aquí estamos, en las \"Fauces del Infierno\"."; +SWWM_SAYAMAW2 = "Según los Sidhe esto contiene el portal que conecta con el mundo de los demonios."; +SWWM_SAYAMAW3 = "Creo que va a ser interesante visitar el equivalente al infierno de otro universo, vaya que sí."; +SWWM_SAYAMAW4 = "... Y por supuesto, va a ser mucho más interesante reventarlo todo también, ¿verdad?"; +SWWM_SAYAMAW5 = "Solo... Ten cuidado con lo que sea que guarde el sitio este."; +// Heretic E2M8 +SWWM_SAYAMASTERS1 = "Vale, a ver... Estamos a un paso más de la guarida del jinete de serpiente ese. Pero hay un problema."; +SWWM_SAYAMASTERS2 = "Específicamente, varios problemas. Problemas grandes, tochos, y todo musculosos."; +SWWM_SAYAMASTERS3 = "Es que estamos hablando de MINOTAUROS ENORMES con MAZOS ENORMES."; +SWWM_SAYAMASTERS4 = "No se tú, pero yo ya estoy escuchando el tema de los Hombres del Pilar en mi cabeza."; +SWWM_SAYAMASTERS5 = "A por ellos, \cdDemo Demostar\c-... ... ... Vale puede que ese haya sido un chiste muy malo, olvídalo."; +// Heretic E3M8 +SWWM_SAYADSPARIL1 = "Ya está, \cdDemo-chan\c-. Vas a enfrentarte al brujo capullo ese."; +SWWM_SAYADSPARIL2 = "Vas a salvar otro mundo, y todo en tiempo récord. ¡Estás en racha!"; +SWWM_SAYADSPARIL3 = "... Oh, y recuerda, te espera una sorpresa en casa. Oh, es que te va a encantar."; +SWWM_SAYADSPARIL4 = "Splgslshglgh"; +SWWM_SAYADSPARIL5 = "Oh mierda ¿eso lo pillo el reconocimiento de voz? Ups..."; +// Heretic E4M8 +SWWM_SAYAHEADS1 = "Vamos, es que se me acaba la paciencia con todo. Espero que esto de verdad te traiga de vuelta a casa."; +SWWM_SAYAHEADS2 = "Y si no, bueno, más tiempo para refinar este \"regalo\" que te voy a dar."; +SWWM_SAYAHEADS3 = "Gracias a esto, he conseguido mejorar su potencia aun más. Nos divertiremos a tope."; +SWWM_SAYAHEADS4 = "En serio no puedo esperar a que lo pruebes, y estoy segura de que te mueres de ganas de saber que es..."; +SWWM_SAYAHEADS5 = "Eliminad aquestos enemigos y venid por vuestra recompensa, oh \cdDemolicionista\c-."; +SWWM_SAYAHEADS6 = "... Puto en serio acabo de decir eso..."; +// Heretic E5M8 +SWWM_SAYABULLS1 = "Y es que sigue, su puta madre..."; +SWWM_SAYABULLS2 = "Es que te están mandando por mundos al azar. Mira, ya me estoy cabreando basto."; +SWWM_SAYABULLS3 = "Estoy tan cabreada que, si el próximo portal no te manda inmediatamente de vuelta a Parthoris, es que..."; +SWWM_SAYABULLS4 = "Eso..."; +SWWM_SAYABULLS5 = "NECESITO que vuelvas a casa, \cdDemo-chan\c-. Te necesito desesperadamente para probar esto."; +// Seven Portals +SWWM_SAYAGREETA1 = "Ahí lo tienes, \cdDemo-chan\c-. Ese es tu objetivo, ese bicho grande y feo apestoso. Ese es Korax."; +SWWM_SAYAGREETA2 = "... Por cierto, te has fijado en como huele? Atufa, ¿a que sí?"; +SWWM_SAYAGREETA3 = "Dios, imagina el olor en persona... Solo de pensarlo se me revuelve el estómago."; +SWWM_SAYAGREETB1 = "Cobarde... Burlándose desde la distancia..."; // Kirin reply +SWWM_SAYAGREETC1 = "Sí, cobarde y asqueroso, los típicos signos de un bastardo feo."; +SWWM_SAYAGREETD1 = "¿Bastardo... Feo?"; // Kirin reply +SWWM_SAYAGREETE1 = "Es mejor no explicártelo, \cxKirin-kun\c-. Sentirías una decepción muy grande por toda la raza humana.."; +SWWM_SAYAGREETF1 = "Eso ciertamente no es tranquilizador de oír..."; // Kirin reply +// Shadow Wood +SWWM_SAYABLOODA1 = "No se como el tío este puede oler nada aparte de ese tufo de pedo de perro viejo que suelta."; +SWWM_SAYABLOODA2 = "Es que en serio, la puta virgen..."; +SWWM_SAYABLOODB1 = "El bastardo feo ese necesita un baño."; // Ibuki reply +SWWM_SAYABLOODC1 = "¿Bastardo feo? ¿Que es esto ahora, un doujin cutre?"; +SWWM_SAYABLOODD1 = "Ja, muy buena, \cgSayacchi\c-."; // Ibuki reply +// Hypostyle +SWWM_SAYAHYPO1 = "Y ya está, después de tantas vueltas. Lo que haya aquí, habrá que matarlo para pillar el siguiente portal."; +SWWM_SAYAHYPO2 = "En serio espero que no sea un puto dragón. Sería el boss más cutre y genérico posible."; +SWWM_SAYAHYPO3 = "Uh... Lo he gafado, ¿no? Seguro que sí. Ya, apuesto a que es un puto dragón."; +SWWM_SAYAHYPO4 = "Apuesto que el TÍO ESE va a salir de su tumba y puto venderme su maldito juego por milésima vez."; +// Heresiarch's Seminary +SWWM_KIRINWORSHIPA1 = "Patética criatura repugnante...\n¿Quien pensaría jamas en adorar a una vil bestia como tú?"; +SWWM_KIRINWORSHIPB1 = "Pues yo lo que adoro es esa jugosa polla que tienes, \cxKirin-kun\c-~"; // Saya reply +SWWM_KIRINWORSHIPC1 = "PFFFFFFFFFFFFFF"; +SWWM_KIRINWORSHIPD1 = "¡Guh! \cx¡Kiriiiiin\c-! ¡Me acabas de echar cola todo por encima! ¡Joder es que escupes tan fuerte como te corres!"; // Saya reply +SWWM_KIRINWORSHIPD2 = "O-oh... Espera, esta cosa sigue encendida. Mierda... \cdDemo-chan\c- acaba de leer todo eso."; +// Castle of Grief +SWWM_SAYAGAMEA1 = "Guau, mira al puto maestro del ajedrez este... ¡Que te jodan!"; +SWWM_SAYAGAMEA2 = "Este tío es un puto idiota y me sigue cabreando más. Que ganas tengo de verte partirle el maldito culo..."; +SWWM_SAYAGAMEB1 = "Friki del ajedrez..."; // Ibuki +SWWM_SAYAGAMEC1 = "Apuesto a que estaba en el club de ajedrez."; +// Necropolis +SWWM_SAYAMASTERSA1 = "Maestros, maestros... ¿De quien? ¿Despertad mis maestros? Bueno, es igual, me da lo mismo lo que diga."; +SWWM_SAYAMASTERSA2 = "Es que que ganas tengo de que te lo cargues..."; +SWWM_SAYAMASTERSB1 = "¿Eres lo suficientemente fuerte para enfrentarte al hecho de que HUELES?"; // Ibuki reply +SWWM_SAYAMASTERSC1 = "Me duché esta mañana, \crIbuki\c-."; +SWWM_SAYAMASTERSD1 = "Me refiero al señorito apestoso de ahí. Tú hueles bien."; // Ibuki reply +SWWM_SAYAMASTERSE1 = "\cgSayacchi\c- definitivamente posee un aroma agradable."; // Kirin reply +SWWM_SAYAMASTERSF1 = "Jujujuju... Gracias."; +// Zedek +SWWM_SAYAFIGHTER1 = "Y aquí es donde está Zedek, el luchadorcillo. Tal vez crea que es fuerte, pero aun no te ha conocido."; +SWWM_SAYAFIGHTER2 = "Oh, y tú fíjate por si hay trampas. Seguro que las hay traicioneras por aquí."; +// Traductus +SWWM_SAYACLERICA1 = "Si hay algo que he aprendido de los videojuegos es que los clérigos son la peor escoria."; +SWWM_SAYACLERICA2 = "Eso es todo lo que tengo que decir."; +SWWM_SAYACLERICB1 = "Nunca he encontrado ni un solo clérigo que no haya intentado asesinarme."; // Kirin reply +SWWM_SAYACLERICC1 = "Oh cierto, la gente del Imperio Sacrosanto, ¿verdad? Me olvidé por completo de esos."; +SWWM_SAYACLERICC2 = "Los clérigos son una puta mierda..."; +// Menelkir +SWWM_SAYAMAGE1 = "La guarida de Menelkir, eh... ...\nOh dios, no se lo digas a \cxKirin-kun\c-, aquí hay puzzles."; +SWWM_SAYAMAGE2 = "Sí, es que está ya más que cansado de todo este tema. Y aparentemente ahora los tenemos de coincidir dibujos."; +SWWM_SAYAMAGE3 = "Bueno, al menos estos son puzzles de verdad, y no lo que coño sea que fuera todo aquello."; +SWWM_SAYAMAGE4 = "Aun que sean... Ya sabes... De los que son todo cutres y chupadísimos."; +// Dark Crucible +SWWM_SAYAKORAXA1 = "Aquí estamos, \cdDemo\c-. El gran bastardo feo apestoso ese espera."; +SWWM_SAYAKORAXB1 = "Al fin, el reinado maligno del vil conspirador encontrará su fin."; // Kirin reply +SWWM_SAYAKORAXC1 = "Hora de que se dé un puto baño. Después de que le descoloques las rodillas, por supuesto."; // Ibuki reply +SWWM_SAYAKORAXD1 = "Aunque \cvMeido\c- no lo esté viendo, te puedo decir que los cuatro te estamos dando ánimos."; +SWWM_SAYAKORAXE1 = "Sigue luchando, \cdDemo-chan\c-. Puedes hacerlo, creemos en ti."; // Kirin reply +// Blight +SWWM_SAYABLIGHTA1 = "Oye, \cdDemo-chan\c-, ¿recuerdas los puzzles?"; +SWWM_SAYABLIGHTB1 = "Nnnnngh..."; // Kirin reply +SWWM_SAYABLIGHTC1 = "Creo que \cxKirin\c- acaba de oírme. Bueno... Ya sabes que hacer."; +SWWM_SAYABLIGHTC2 = "Puedo sentir que esto va a ser todo un paripé, así que estate preparada para todo."; +// Constable's Gate +SWWM_SAYACONSTABLEA1 = "Castillos y más mierdas... Y sigue. Ya lo dije en la misión, pero... Ya sabes..."; +SWWM_SAYACONSTABLEA2 = "Sigue reventando cosas, porfa. \cvMeido-chan\c- nos hizo aperitivos, así que al menos tenemos eso."; +SWWM_SAYACONSTABLEB1 = "En serio que es tan atenta, esa chica..."; // Ibuki reply +SWWM_SAYACONSTABLEC1 = "Aunque puedas oír como cuchichea maldiciones por todo lo que está pasando ahí."; +SWWM_SAYACONSTABLED1 = "Ya, esa sí que es nuestra \cvMeido\c-."; // Ibuki reply +// Nave +SWWM_SAYANAVEA1 = "Ojalá pudiera tomar prestado el poder anti-realidad de los \ctMishe\c- para destruir este mundo entero."; +SWWM_SAYANAVEA2 = "En serio estoy cabreada, todos lo estamos. Joder, hasta \cxKirin\c- está furioso, y ya no podemos calmarlo."; +SWWM_SAYANAVEB1 = "Es algo así como adorable y preocupante a la vez."; // Ibuki reply +SWWM_SAYANAVEC1 = "¡NNNNNNNNGGGGGHHHHHHHH!"; // Kirin reply +SWWM_SAYANAVED1 = "\cxKirin-kun\c-, te vas a asfixiar si sigues gritando así contra la almohada."; +SWWM_SAYANAVEE1 = "A lo mejor es lo que quiere, \cgSaya\c-. Busca la dulce libertad de la muerte para encontrar la paz interior."; // Ibuki +SWWM_SAYANAVEF1 = "Si no fuera inmortal eso sería la cosa más jodidamente horrible que podrías decir, \crIbuki\c-."; +// Dark Citadel +SWWM_SAYADEATHKINGS1 = "Estoy tan cabreada que pegaría un puñetazo a través de la realidad para mandar a la mierda a los reyes estos."; +// Kirin's Thrilling Commentary on Puzzles™ +// first puzzle switch on Seven Portals +SWWM_KIRINPUZZLEA1 = "Un peculiar mecanismo... Supuestamente cita ser parte de algo mayor, haciéndose llamar \"puzzle\"."; +SWWM_KIRINPUZZLEA2 = "\cgSayacchi\c- mencionó que los encontrarías. Es algo ciertamente intrigante..."; +// second puzzle switch on Seven Portals +SWWM_KIRINPUZZLEB1 = "Otro más... Interesante..."; +// third puzzle switch on Seven Portals +SWWM_KIRINPUZZLEC1 = "Me falta ver que exactamente hace de esto un \"puzzle\". No es mas que una búsqueda de interruptores."; +SWWM_KIRINPUZZLEC2 = "Difícilmente un desafío para el intelecto de uno, ¿no crees, \cdDemo-chan\c-?"; +// first puzzle switch on Shadow Wood +SWWM_KIRINPUZZLED1 = "Parece ser que estos \"interruptores de puzzle\" simplemente siguen apareciendo a tu paso."; +SWWM_KIRINPUZZLED2 = "Tengo la certeza de que ambos estamos cansados de verlos."; +// fourth puzzle switch on Shadow Wood +SWWM_KIRINPUZZLEE1 = "Estos supuestos \"puzzles\"... Son un insulto a nuestra inteligencia."; +SWWM_KIRINPUZZLEE2 = "... Espero no estar enviando demasiados mensajes."; +// first puzzle switch on Heresiarch's Seminary +SWWM_KIRINPUZZLEF1 = "¿Cuando acabará? ¿¿¿Cuantas más fracciones de \"puzzles\" debemos resolver???"; +SWWM_KIRINPUZZLEF2 = "¿Es así como ese sayzha axhkhashaar se atreve a mofarse de nosotros? ¿Con estos tediosos juegos?"; +SWWM_KIRINPUZZLEF3 = "Son... Nnngh... ¡Kheza sakharei!"; +SWWM_KIRINPUZZLEG1 = "\cxKirin-kun\c-, creo que te estás dejando afectar demasiado por esto."; // Saya reply +SWWM_KIRINPUZZLEH1 = "Sí... Yo... Voy a tumbarme un rato, p-perdón..."; +SWWM_KIRINPUZZLEI1 = "... Pobre. Aunque estoy de acuerdo con él... Esta mierda es que te pone de los nervios, ¿a que sí?"; // Saya reply +SWWM_KIRINPUZZLEI2 = "Bueno... Me voy a darle mimos a \cxKirin-kun\c-. No te preocupes, se pondrá mejor. Está en buenas manos."; +// first puzzle switch on Blight +SWWM_KIRINPUZZLEJ1 = "No podemos huír, ¿no? Estos \"puzzles\" todavía nos persiguen incluso ahora..."; +SWWM_KIRINPUZZLEJ2 = "Este maldito lugar... Plagado por estos viles mecanismos... Juro que jamás daré un paso en él."; +// last puzzle switch on Blight +SWWM_KIRINPUZZLEK1 = "Por favor... Haz que pare..."; +SWWM_KIRINPUZZLEL1 = "\cxKirin-kun\c-, oye... No pasa nada. Toma... Bebe, te ayudará a relajarte.\c-"; // Ibuki reply +SWWM_KIRINPUZZLEM1 = "Glu... Glu... Glu..."; +SWWM_KIRINPUZZLEN1 = "Bueno, pero míralo... Ahí bebiéndolo todo como un campeón."; // Saya reply +SWWM_KIRINPUZZLEO1 = "Ya sabes como va el tema... En cuanto encuentran una teta de la que mamar, ya se acabaron todos sus problemas..."; // Ibuki reply +SWWM_KIRINPUZZLEP1 = "Sabes que \cdDemo-chan\c- puede leer lo que decimos, ¿verdad?"; // Saya reply +SWWM_KIRINPUZZLEQ1 = "Oh, estoy segura de que le encantaría tomar su turno una vez se acabe la misión, ¿hm?"; // Ibuki reply +// first puzzle switch on Constable's Gate +SWWM_KIRINPUZZLER1 = "Más vale que este sea el último de estos \"puzzles\" que vayamos a encontrar..."; +SWWM_KIRINPUZZLER2 = "Urp..."; +SWWM_KIRINPUZZLER3 = "Mis disculpas."; +SWWM_KIRINPUZZLES1 = "Estaba buena la leche, ¿a que sí?"; // Saya reply +SWWM_KIRINPUZZLET1 = "Ciertamente... Doy gracias por la bendición de \crIbuki\c-."; +SWWM_KIRINPUZZLEU1 = "Hacer que pueda lactar a voluntad es una bendición, vaya que sí. Seguro que \cdDemo\c- está también de acuerdo."; // Saya reply +// super secret cheats +SWWM_ZNVTXT1 = "\cdDemolicionista\c-, soy yo, \chZanaveth El Corruptor\c-. He testificado del acto que has actuado, sí."; +SWWM_ZNVTXT2 = "Son \cf%d\c- años... y las mágicas palabras veo en nuevo. Muy impresionada, múchamente impresionada."; +SWWM_ZNVTXT3 = "Así, puedes hacer la cosa... Como los \ctMishe\c- enseñaron también a mí. Una sorpresa no esperada, sí."; +SWWM_ZNVTXT4 = "Hay tantas muchas palabras poderosas a usar, \cdDemolicionista\c-. Sigue siguiendo para descubrirlas todas."; +SWWM_ZNVTXT5 = "Y ahora debo dar marcha. A favor extender saludos a tía \cgSaya\c- por parte mía. Buena suerte, \cdDemolicionista\c-."; // boss tags BT_BRUISERS = "Hermanos de Guerra"; BT_CYBIE = "Tirano de Babel"; @@ -962,7 +1178,7 @@ SWWM_ACHIEVEMENT_PLUSH_TAG = "Amorcito"; SWWM_ACHIEVEMENT_PLUSH_TXT = "Juega con el peluche de Saya %d veces en la misma partida"; $ifgame(hexen) SWWM_ACHIEVEMENT_PLUSH_TXT = "Juega con los peluches de Saya o Kirin %d veces en la misma partida"; SWWM_ACHIEVEMENT_PUZZLE_TAG = "Hasta Kirin está Cabreado"; -SWWM_ACHIEVEMENT_PUZZLE_TXT = "Resuelve %d partes de \"puzzles\""; +SWWM_ACHIEVEMENT_PUZZLE_TXT = "Resuelve todas las partes de \"puzzles\" en la misma partida"; SWWM_ACHIEVEMENT_RAGE_TAG = "No Hablo me Enfado"; SWWM_ACHIEVEMENT_RAGE_TXT = "Usa %d Ragekits"; SWWM_ACHIEVEMENT_RAIL_TAG = "Metida de Través"; diff --git a/language.es_lore b/language.es_lore index ad57de57f..008896d03 100644 --- a/language.es_lore +++ b/language.es_lore @@ -568,6 +568,36 @@ SWWM_LORETXT_CYRUS = "\cfHala, ya lo he dicho. Es que sí, vale, lo que hace, mola y tal, pero MADRE DE DIOS es que el tío me saca de quicio con toda su mierda friki de videojuegos. ¿No dejarte ir por ahí con todo equipado, y en vez de eso CISCÁNDOLO TODO POR AHÍ para que lo recojas? Esa es una. Que después de cada misión decida quitarte TODO lo que pillaste, es otra cosa también. Pero, que nos suelte unas pelillas cada vez que revientes a algún maleante, eso puedo aceptarlo, que nos vale para cubrir los costes de todo.\c-\n" "\n" "\cfA ver, puede que me ponga de los nervios a veces, pero el tío fue mi primer socio ahí en plan negocios serios, y joder, tampoco es tan malo aparte de todo el frikismo que suelta... Y bueno, siendo sincera, yo también soy toda una friki repelente, y puedes citarme en eso.\c-"; +SWWM_LORETXT_CYTHO = +"\cxNombre Completo:\c-\n" +"\cf Archiduque Cytho de la Casa Valathor\c-\n" +"\cxNacionalidad:\c-\n" +"\cf Kuriste\c-\n" +"\cxFecha de Nacimiento:\c-\n" +"\cf 2008-10-09\c-\n" +"\cxTwitter:\c-\n" +"\cf @incuvalathor\c-\n" +"\n" +"Nacido en la ahora caída villa de Iskar en 2008 como uno de los varones más jóvenes de la humilde \cfCasa Valathor\c-, \cfCytho\c- entró al negocio familiar al llegar a la edad adulta, rápidamente ascendiendo en rango en la industria del trabajo sexual del \cfInfierno\c-, en parte dada su belleza innata, pero también por la rápida acumulación de \"clientes satisfechos\" a los que daría servicio regularmente, y los muchos alumnos que tomó bajo su tutela. Ya en 2028, había hecho de la Tierra su segundo hogar, donde abriría una cuenta en redes sociales como una forma más moderna de atraer nueva clientela.\n" +"\n" +"Un día, sin embargo, todo cambió. Un gran número de íncubos reportaría verse \"horrorizados\" por las peticiones excesivas de una mujer. Curioso, Cytho entonces se decidió a encontrarla, para ver que era exactamente lo que sus colegas encontraban tan irrazonable. Y así fue como conoció a \cfElena Yanikov XVI\c-, una mujer Anarukon \"bajo la maldición de una eterna soltería\", la cual tan desesperadamente deseaba encontrar marido que había recurrido finalmente a invocar demonios y suplicarles que se casen con ella. Como era de esperar, todos habían rechazado sus plegarias, sin importar cuanto lo intentara, ya que muchos demonios desconfían de su especie. Cytho, sin embargo, fue compasivo con ella, y aceptó, con una condición: Que tendrían primero una cita.\n" +"\n" +"Un tiempo después, el archiduque anunció su retiro del trabajo sexual, habiéndose \"reformado\" como el fiel marido de una mujer Anarukon. Mientras que sus amigos y familiares lo celebraron, otros vieron esto como una afrenta. La Casa Valathor fue criticada severamente por no renegar inmediatamente de él, hasta el punto que una pequeña guerra estalló, en la que la rival \cfCasa Irishtanar\c- arrasaría su pueblo natal como \"protesta\". Ese día, Cytho vería de cerca la crueldad de su propia gente, como único superviviente de aquella masacre.\n" +"\n" +"Desde entonces, vive en Boston con su mujer y sus tres hijas. El propósito de su cuenta en redes sociales ha cambiado al de comunicar las noticias de aquello que transcurre en su mundo natal, contrastadas con los muchos contactos que ha acumulado durante años, como representante de la subyugada población civil. Aunque la gran mayoría de la población de la Tierra no lo tomaría en serio, no hasta que empezara la \cfInvasión Demoníaca\c- de 2148.\n" +"\n" +"Denunciando la intervención de la \cfUAC\c-, posteó sobre los eventos en \cfFobos\c- y \cfDeimos\c- mucho antes de que la UAC los hiciese públicos, y proclamó que una invasión en la Tierra era inminente. Aun así pocos lo tomaron en serio, pero una entre ellos era su amiga \cfSaya Miyamoto\c-, de \cfAkari Labs\c-. Como inversor en su compañía, ya había garantizado anteriormente que tuviese los recursos y mano de obra necesarios para la tarea que le encomendaría: Construir un robot de combata que lucharía contra los invasores.\n" +"\n" +"Y así, a partir de su colaboración, nació la \cfDemolicionista\c-.\n" +"\n" +"\cxNotas de Saya:\c-\n" +"\cfDesde el primer momento que lo conocí, aquella primera vez que visité a la familia de Ellen-san, ya sabía que era más que un guapo y molón abuelete femboy demonio. Sí, Cytho-sama es la caña, y la sangre que corre por sus venas es mucho más noble que la de cualquier capullo pomposo con título que vaya por ahí.\c-\n" +"\n" +"\cfY sí, sorpresa sorpresa... Es tu padre (bueno, algo así). Pero eso ya lo sabías, ¿verdad?\c-\n" +"\n" +"\cfEn serio, si no fuera por él, todo esto nunca habría sido posible. Estamos en deuda con él... Solo espero que no tenga que pagarle con mi propio cuerpo (aunque tampoco me importaría, jijijiji).\c-\n" +"\n" +"\cfPS: Su nombre se pronuncia \"Kaizo\", lo has dicho mal todo el rato. Pero no te preocupes, no eres la primera.\c-"; SWWM_LORETXT_DECADEMECH = "\cxNombre:\c-\n" "\cf Decade Mechanics\c-\n" @@ -635,13 +665,13 @@ SWWM_LORETXT_DEMOLITIONIST = "\cxTwitter:\c-\n" "\cf @demolitionist_bot\c-\n" "\n" -"El \cfDemolicionista\c- es uno de los mayores logros de \cfAkari Labs\c- en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado \cfOni Rojo\c-, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor.\n" +"El \cfDemolicionista\c- es uno de los mayores logros de \cfAkari Labs\c- en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado \cfOni Rojo\c-, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. El proyecto ha sido financiado y patrocinado por los muchos socios de Akari Labs, y es fruto de la colaboración entre \cfSaya Miyamoto\c- y el \cfArchiduque Cytho Valathor\c-, representante de la población civil del \cfInfierno\c-.\n" "\n" "Cada unidad está equipada con varios componentes de terceros, tal como los \cfImpulsores JetBurst™\c- a sus espaldas, permitiéndoles realizar rápidos impulsos en el aire y evasiones, un par de contenedores \cfHammerspace™\c-, permitiendo el acceso a un vasto arsenal, los dos acoplados al tan popular \cfCinturón Útil Magnético de Symnatek\c-, o su potente \cfBatería de Microfusión Celestine\c-, cortesía del \cfInstituto Tecnológico Tach-Engine\c-, que provee a la unidad de hasta 80 días de autonomía, al máximo de la capacidad de procesado de su \cfCPU IK-349 de Nekuratek\c-. Hay más detalles sobre las especificaciones completas de hardware disponibles en la página web de Akari Labs.\n" "\n" "El núcleo de IA del Demolicionista está construido sobre la misma tecnología que las \cfMaidbots\c- de Akari Labs, el \cfFramework de IA Nekuronbot\c-, que fue proporcionado a \cfSaya Miyamoto\c- como un regalo de amistad de \cfZanaveth Nekuraku II\c-, la ingeniera jefe de IA y actual CEO de \cfNekuratek\c-. Gracias a esta tecnología, y combinado con muchos otros componentes como el \cfDisplay CuteEmotion\c- que permite a la unidad mostrar visiblemente sus emociones a través de un conjunto de simples caras animadas o la \cfCaja de Voz Loudboi\c- que la permite hablar casi con naturalidad, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, haciendo la interacción con civiles mucho más reconfortante. Se puede decir incluso que el Demolicionista tiene su propia personalidad, con sus pequeñas peculiaridades.\n" "\n" -"La primera unidad, conocida afectivamente como \cfDemo-chan\c- por Saya, fue desplegada en Junio de 2148 en el territorio de la \cfUnión de Estados\c- para combatir la invasión demoníaca atraída por las intervenciones de la \cfUAC\c- en el \cfInfierno\c-.\n" +"La primera unidad, conocida afectivamente como \cfDemo-chan\c- por Saya, fue desplegada en Junio de 2148 en el territorio de la \cfUnión de Estados\c- para combatir la invasión demoníaca atraída por las intervenciones de la \cfUAC\c- en el Infierno.\n" "\n" "De esta primera unidad anteriormente mencionada, se conocen muchos más detalles gracias a la sesión de preguntas y respuestas que Saya realizó en directo meses antes del despliegue. La unidad es reconocida como parte de la familia Miyamoto, teniendo el nombre completo de \cfDemo Miyamoto\c-, y Saya se refiere a ella como su \"hija\". Se puede describir a Demo como \"muy habladora\" y aficionada a hacer chistes para poner una sonrisa en las caras de la gente, aunque también es muy seria y determinada en su deseo de proteger a quien lo necesita. También es bastante popular con la comunidad LGBTQIA+ dado su feroz soporte de proteger los derechos de aquellos que sufren discriminación por su identidad, e incluso ha anunciado públicamente ser no-binaria. Esto fue algo poco inesperado, dada la experiencia de Saya con el colectivo.\n" "\n" @@ -665,13 +695,13 @@ SWWM_LORETXT_DEMOLITIONIST2 = "\cxTwitter:\c-\n" "\cf @demolitionist_bot\c-\n" "\n" -"El \cfDemolicionista\c- es uno de los mayores logros de \cfAkari Labs\c- en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado \cfOni Rojo\c-, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor.\n" +"El \cfDemolicionista\c- es uno de los mayores logros de \cfAkari Labs\c- en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado \cfOni Rojo\c-, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. El proyecto ha sido financiado y patrocinado por los muchos socios de Akari Labs, y es fruto de la colaboración entre \cfSaya Miyamoto\c- y el \cfArchiduque Cytho Valathor\c-, representante de la población civil del \cfInfierno\c-.\n" "\n" "Cada unidad está equipada con varios componentes de terceros, tal como los \cfImpulsores JetBurst™\c- a sus espaldas, permitiéndoles realizar rápidos impulsos en el aire y evasiones, un par de contenedores \cfHammerspace™\c-, permitiendo el acceso a un vasto arsenal, los dos acoplados al tan popular \cfCinturón Útil Magnético de Symnatek\c-, o su potente \cfBatería de Microfusión Celestine\c-, cortesía del \cfInstituto Tecnológico Tach-Engine\c-, que provee a la unidad de hasta 80 días de autonomía, al máximo de la capacidad de procesado de su \cfCPU IK-349 de Nekuratek\c-. Hay más detalles sobre las especificaciones completas de hardware disponibles en la página web de Akari Labs.\n" "\n" "El núcleo de IA del Demolicionista está construido sobre la misma tecnología que las \cfMaidbots\c- de Akari Labs, el \cfFramework de IA Nekuronbot\c-, que fue proporcionado a \cfSaya Miyamoto\c- como un regalo de amistad de \cfZanaveth Nekuraku II\c-, la ingeniera jefe de IA y actual CEO de \cfNekuratek\c-. Gracias a esta tecnología, y combinado con muchos otros componentes como el \cfDisplay CuteEmotion\c- que permite a la unidad mostrar visiblemente sus emociones a través de un conjunto de simples caras animadas o la \cfCaja de Voz Loudboi\c- que la permite hablar casi con naturalidad, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, haciendo la interacción con civiles mucho más reconfortante. Se puede decir incluso que el Demolicionista tiene su propia personalidad, con sus pequeñas peculiaridades.\n" "\n" -"La primera unidad, conocida afectivamente como \cfDemo-chan\c- por Saya, fue desplegada en Junio de 2148 en el territorio de la \cfUnión de Estados\c- para combatir la invasión demoníaca atraída por las intervenciones de la \cfUAC\c- en el \cfInfierno\c-.\n" +"La primera unidad, conocida afectivamente como \cfDemo-chan\c- por Saya, fue desplegada en Junio de 2148 en el territorio de la \cfUnión de Estados\c- para combatir la invasión demoníaca atraída por las intervenciones de la \cfUAC\c- en el Infierno.\n" "\n" "De esta primera unidad anteriormente mencionada, se conocen muchos más detalles gracias a la sesión de preguntas y respuestas que Saya realizó en directo meses antes del despliegue. La unidad es reconocida como parte de la familia Miyamoto, teniendo el nombre completo de \cfDemo Miyamoto\c-, y Saya se refiere a ella como su \"hija\". Se puede describir a Demo como \"muy habladora\" y aficionada a hacer chistes para poner una sonrisa en las caras de la gente, aunque también es muy seria y determinada en su deseo de proteger a quien lo necesita. También es bastante popular con la comunidad LGBTQIA+ dado su feroz soporte de proteger los derechos de aquellos que sufren discriminación por su identidad, e incluso ha anunciado públicamente ser no-binaria. Esto fue algo poco inesperado, dada la experiencia de Saya con el colectivo.\n" "\n" @@ -695,13 +725,13 @@ SWWM_LORETXT_DEMOLITIONIST3 = "\cxTwitter:\c-\n" "\cf @demolitionist_bot\c-\n" "\n" -"El \cfDemolicionista\c- es uno de los mayores logros de \cfAkari Labs\c- en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado \cfOni Rojo\c-, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor.\n" +"El \cfDemolicionista\c- es uno de los mayores logros de \cfAkari Labs\c- en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado \cfOni Rojo\c-, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. El proyecto ha sido financiado y patrocinado por los muchos socios de Akari Labs, y es fruto de la colaboración entre \cfSaya Miyamoto\c- y el \cfArchiduque Cytho Valathor\c-, representante de la población civil del \cfInfierno\c-.\n" "\n" "Cada unidad está equipada con varios componentes de terceros, tal como los \cfImpulsores JetBurst™\c- a sus espaldas, permitiéndoles realizar rápidos impulsos en el aire y evasiones, un par de contenedores \cfHammerspace™\c-, permitiendo el acceso a un vasto arsenal, los dos acoplados al tan popular \cfCinturón Útil Magnético de Symnatek\c-, o su potente \cfBatería de Microfusión Celestine\c-, cortesía del \cfInstituto Tecnológico Tach-Engine\c-, que provee a la unidad de hasta 80 días de autonomía, al máximo de la capacidad de procesado de su \cfCPU IK-349 de Nekuratek\c-. Hay más detalles sobre las especificaciones completas de hardware disponibles en la página web de Akari Labs.\n" "\n" "El núcleo de IA del Demolicionista está construido sobre la misma tecnología que las \cfMaidbots\c- de Akari Labs, el \cfFramework de IA Nekuronbot\c-, que fue proporcionado a \cfSaya Miyamoto\c- como un regalo de amistad de \cfZanaveth Nekuraku II\c-, la ingeniera jefe de IA y actual CEO de \cfNekuratek\c-. Gracias a esta tecnología, y combinado con muchos otros componentes como el \cfDisplay CuteEmotion\c- que permite a la unidad mostrar visiblemente sus emociones a través de un conjunto de simples caras animadas o la \cfCaja de Voz Loudboi\c- que la permite hablar casi con naturalidad, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, haciendo la interacción con civiles mucho más reconfortante. Se puede decir incluso que el Demolicionista tiene su propia personalidad, con sus pequeñas peculiaridades.\n" "\n" -"La primera unidad, conocida afectivamente como \cfDemo-chan\c- por Saya, fue desplegada en Junio de 2148 en el territorio de la \cfUnión de Estados\c- para combatir la invasión demoníaca atraída por las intervenciones de la \cfUAC\c- en el \cfInfierno\c-.\n" +"La primera unidad, conocida afectivamente como \cfDemo-chan\c- por Saya, fue desplegada en Junio de 2148 en el territorio de la \cfUnión de Estados\c- para combatir la invasión demoníaca atraída por las intervenciones de la \cfUAC\c- en el Infierno.\n" "\n" "De esta primera unidad anteriormente mencionada, se conocen muchos más detalles gracias a la sesión de preguntas y respuestas que Saya realizó en directo meses antes del despliegue. La unidad es reconocida como parte de la familia Miyamoto, teniendo el nombre completo de \cfDemo Miyamoto\c-, y Saya se refiere a ella como su \"hija\". Se puede describir a Demo como \"muy habladora\" y aficionada a hacer chistes para poner una sonrisa en las caras de la gente, aunque también es muy seria y determinada en su deseo de proteger a quien lo necesita. También es bastante popular con la comunidad LGBTQIA+ dado su feroz soporte de proteger los derechos de aquellos que sufren discriminación por su identidad, e incluso ha anunciado públicamente ser no-binaria. Esto fue algo poco inesperado, dada la experiencia de Saya con el colectivo.\n" "\n" @@ -900,7 +930,7 @@ SWWM_LORETXT_DOOMGUY = "\cxNotas de Saya:\c-\n" "\cfBien, COSA IMPORTANTE: no te acerques a este tío, no le digas nada, no te metas en medio. Si os cruzáis, quédate quieta y deja que trabaje, o si no puede que vaya y te pegue un tiro a ti también.\c-\n" "\n" -"\cfPor cierto, mi enhorabuena a los gorilas de la UAC por lo bien guardado que tienen todo sobre este tío. No sabemos ni como se llama, ni de su historial antes de que empezara toda esta mierda. Es que, ¿que clase de tío es? Tampoco he oído mucho de eso, aunque ¿creo que mencionaron por ahí que le gustan los conejos? ¿conejillos monos?\c-\n" +"\cfPor cierto, mi enhorabuena a los gorilas de la UAC por lo bien guardado que tienen todo sobre este tío. No sabemos ni como se llama, ni de su historial antes de que empezara toda esta mierda. Es que, ¿que clase de tío es? Tampoco he oído mucho de eso, aparte de la poca info que Cytho-sama pudo sacar de su anterior paseo por el Infierno, aunque ¿creo que mencionaron por ahí que le gustan los conejos? ¿conejillos monos?\c-\n" "\n" "\cfBueno, entonces, a lo mejor si haces como que esa cornamenta tuya son orejitas de conejo, puede que no te dispare, quien sabe...\c-"; SWWM_LORETXT_DOOMGUY2 = @@ -3582,7 +3612,7 @@ SWWM_LORETXT_UAC3 = "\cxNotas de Saya:\c-\n" "\cfUn lío muy gordo, todo por que la UAC es una mierda y el mal. Aunque me alegro, porque pude ver como la caída del niñato patético ese, puto idiota, que se creía el \"hombre más importante del mundo\", y ahora es el perrito faldero del gobierno de la Unión de Estados. Es que me muero de la risa, oye.\c-\n" "\n" -"\cfOh ya, ¿la parte esa del final, de \"la historia del otro lado\"? Sí, puedes darle las gracias a mi \"fuente especial\". Cytho-sama tiene un monte de contactos en el Infierno, eso seguro. Nunca me ha hablado del tema, pero supongo que fue alguien importante hace tiempo, antes de venir a la Tierra y \"reformarse\". Oh bueno. Aquí acaba la historia de la Epístolas de Dumbo estas o lo que sea, uno de los mayores ejemplos de las consecuencias del capitalismo desenfrenado™.\c-"; +"\cfY aquí acaba la historia de la Epístolas de Dumbo estas o lo que sea, uno de los mayores ejemplos de las consecuencias del capitalismo desenfrenado™.\c-"; SWWM_LORETXT_UNISSIX = "\cxNombre Completo:\c-\n" "\cf Misa Azadeku Unissix\c-\n" diff --git a/language.es_menu b/language.es_menu index b857f996b..b6d989118 100644 --- a/language.es_menu +++ b/language.es_menu @@ -198,6 +198,7 @@ SWWM_ITEMGLOWS = "Los Ítems Lejanos Brillan"; SWWM_NOMAGDROP = "Tirar Cargadores Usados"; SWWM_BARRIERUSE = "Usar Revestimiento Automáticamente"; SWWM_SVBARRIERUSE = "Forzar Auto-Uso de Revestimiento"; +SWWM_NOMAPMSG = "Mensajes Especiales de Mapa"; SWWM_MMTITLE = "Opciones de Minimapa"; SWWM_MM_ENABLE = "Mostrar Minimapa"; SWWM_MM_ROTATE = "Rotar Minimapa"; @@ -343,6 +344,7 @@ TOOLTIP_SWWM_ITEMGLOWS = "Al activar, los ítems que se encuentren lejos del jug TOOLTIP_SWWM_NOMAGDROP = "Por defecto, la Demolicionista será un poco consciente con el medio ambiente y no dejará cargadores usados por ahí. Activa si prefieres la basura adicional."; TOOLTIP_SWWM_AUTOUSEBARRIER = "Cuando esto está activado, el revestimiento elemental será usado automáticamente si es necesario al estar en suelos dañinos."; TOOLTIP_SWWM_ENFORCEAUTOUSEBARRIER = "Fuerza una opción específica de auto-uso de revestimiento para todos los jugadores, o respeta la opción de cada uno."; +TOOLTIP_SWWM_NOMAPMSG = "Activa mensajes especiales animados de personajes en ciertos mapas (usualmente vanilla)."; TOOLTIP_SWWM_MM_ENABLE = "Muestra un minimapa bajo el contador de puntuación."; TOOLTIP_SWWM_MM_ROTATE = "Gira la vista del minimapa."; TOOLTIP_SWWM_MM_GRID = "Muestra una cuadrícula de 128x128 en el minimapa."; diff --git a/language.version b/language.version index 8d0011cc7..c664b0729 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r17 \cu(Sun 12 Sep 22:41:47 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.1pre r17 \cu(2021-09-12 22:41:47)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r18 \cu(Tue 14 Sep 18:40:22 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.1pre r18 \cu(2021-09-14 18:40:22)\c-"; diff --git a/lore/default/cytho.txt b/lore/default/cytho.txt new file mode 100644 index 000000000..a40e5a40a --- /dev/null +++ b/lore/default/cytho.txt @@ -0,0 +1,36 @@ +TAG +Valathor, Cytho +TAB +People +REL +Hell;Ellen;Anarukon;DemonInvasion;UAC;Saya;AkariLabs;Demolitionist +TXT +\cxFull Name:\c- +\cf Archduke Cytho of House Valathor\c- +\cxNationality:\c- +\cf Kuriste\c- +\cxDate of Birth:\c- +\cf 2008-10-09\c- +\cxTwitter:\c- +\cf @incuvalathor\c- + +Born in the now fallen Iskar township in 2008 as one of the youngest men of the humble **House Valathor**, **Cytho** took to the family business upon reaching adulthood, quickly climbing the ranks of **Hell**'s sex work industry, partly due to his innate beauty, but also the rapidly accumulating "satisfied customers" he would regularly service, and the many pupils he'd take under his wing. By 2028, he had made of Earth his second home, where he would open up an account on social media for a more modern method of attracting new clientele. + +One day, however, everything changed. A large number of incubi would report being "creeped out" by a woman's unreasonable requests. Curious, Cytho would then set forth to try and find her, to see what exactly his colleagues were finding so unreasonable. And that, is how he met **Elena Yanikov XVI**, an **Anarukon** woman "struck by the curse of eternal loneliness", who so desperately wished to find a husband that she eventually resourced to summoning demons and begging for them to marry her. As expected, all of them had rejected her pleas, no matter how hard she tried, as many among demonkind were wary of her kind. Cytho, however, took pity on her, and accepted, on one condition: They would have to go on a date first. + +Some time later, the archduke announced his retirement from sex work, having "reformed" as the faithful husband to an Anarukon woman. While his friends and family celebrated, others saw this as an affront. House Valathor was heavily criticised for not rejecting him right there and then, to the point a small war broke out, as the rival **House Irishtanar** would crush their hometown in "protest". That day, Cytho closely witnessed the cruelty of his own kind, as the sole survivor of that massacre. + +Since then, he lives in Boston with his wife and their three children. His social media account's purpose has been shifted to communicating the news of what transpires in his home realm, sourced from the many contacts he's gathered over the years, as representative of the subjugated civilian population. Although the vast majority of Earth's population would not take him seriously, not until the **Demon Invasion** of 2148 began. + +Denouncing the **UAC**'s involvements, he posted about the events on **Phobos** and **Deimos** long before the UAC had made them public, and proclaimed that an invasion on Earth was imminent. Still few took him seriously, but one among them was his friend **Saya Miyamoto**, of **Akari Labs**. As investor in her company, he had already ensured beforehand that she would have the resources and manpower needed for the task he'd ask of her: Build a combat robot that can fight the invaders. + +And thus, through their collaboration, the **Demolitionist** was born. + +\cxSaya's Notes:\c- +\cfSince the very moment I met him, back when I first visited Ellen-san's family, I knew he was more than just a cool, handsome femboy demon grandpa. Yeah, Cytho-sama's the real deal, and the blood that runs through his veins is more noble than that of any pesky, pompous trashlord with a fancy title out there.\c- + +\cfAnd yeah, surprise surprise... He's your dad (well, kinda). But you already knew that, didn't you?\c- + +\cfSeriously, if it wasn't for him, all of this would have never been possible. We owe a lot to him... I just hope I don't have to repay him with my body (not that I would mind, kihihihi).\c- + +\cfPS: His name is pronounced "Kaizo", you kept saying it wrong every time. But don't worry, you're not the first.\c- diff --git a/lore/default/demolitionist.txt b/lore/default/demolitionist.txt index 532ca5663..a23a628b9 100644 --- a/lore/default/demolitionist.txt +++ b/lore/default/demolitionist.txt @@ -3,7 +3,7 @@ Demolitionist TAB People REL -AkariLabs;Ibuki;Saya;Zanaveth2;Hell;UAC;Nekuratek;Belt;Collar;Propulsor;Hammerspace;Display;Voicebox;Maidbot;EngineTech;Kirin;DemonInvasion +AkariLabs;Ibuki;Saya;Zanaveth2;Hell;UAC;Nekuratek;Belt;Collar;Propulsor;Hammerspace;Display;Voicebox;Maidbot;EngineTech;Kirin;DemonInvasion;Cytho TXT \cxFull Name:\c- \cf Akari Labs First Generation Autonomous Combat Unit\c- @@ -16,13 +16,13 @@ TXT \cxTwitter:\c- \cf @demolitionist_bot\c- -The **Demolitionist** is one of the crowning achievements of **Akari Labs** on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the **Red Oni** supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. +The **Demolitionist** is one of the crowning achievements of **Akari Labs** on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the **Red Oni** supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. The project has been funded and sponsored by many partners of Akari Labs, and is the brainchild of both **Saya Miyamoto** and **Archduke Cytho Valathor**, representative of **Hell**'s civilian population. Each unit is equipped with various third-party components of note, such as the **JetBurst™ Impulsors** on their backs, allowing them to perform rapid mid-air boosts and dashes, a pair of **Hammerspace™** containers, giving them quick access to a wide arsenal, the two being attached to the all-popular **Symnatek Magnetic Utility Belt**, or the powerful **Celestine Microfusion Battery**, courtesy of **Tach-Engine Technology Institute**, which provides up to 80 days of autonomy for the unit, at full processing power of its **Nekuratek IK-349 CPU**. More details on the full hardware specifications can be found at the Akari Labs website. The AI core of the Demolitionist is built on the same technology as Akari Labs' **Maidbots**, the **Nekuronbot AI Framework**, which had been provided to **Saya Miyamoto** herself as a gift of friendship from **Zanaveth Nekuraku II**, the lead AI engineer and current CEO of **Nekuratek**. Thanks to this technology, and combined with many other features such as the **CuteEmotion Display** that allows the unit to visibly show emotion through a set of simple animated faces or the **Loudboi Voicebox** that allows it to speak almost naturally, the Demolitionist is barely indistinguishable from a real person in its behavior and emotional response, making interaction with civilians much more comforting. It can even be said that the Demolitionist has its own little personality, with unique quirks and all. -The first unit, affectionately known as **Demo-chan** by Saya, was deployed in June of 2148 on **Union States** territory in order to combat the demonic invasion brought upon by the **UAC**'s interventions on **Hell**. +The first unit, affectionately known as **Demo-chan** by Saya, was deployed in June of 2148 on **Union States** territory in order to combat the demonic invasion brought upon by the **UAC**'s interventions on Hell. Of this previously mentioned first unit, there are many details known thanks to a Q&A session that Saya had livestreamed months prior to the deployment. The unit has been acknowledged as being part of the Miyamoto household, having the full name of **Demo Miyamoto**, and being referred to by Saya as her "child". Demo can be described as "quite chatty" and fond of joking around to try and put a smile on people's faces, but also very serious and determined in their desire to protect those in need. They are also quite popular within the LGBTQIA+ community due to their fierce support of also protecting the rights of those who face discrimination for their identities, and has even publicly come out themself as non-binary. This didn't really come as a surprise to most due to Saya's own involvements with the collective, however. @@ -46,13 +46,13 @@ TXT \cxTwitter:\c- \cf @demolitionist_bot\c- -The **Demolitionist** is one of the crowning achievements of **Akari Labs** on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the **Red Oni** supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. +The **Demolitionist** is one of the crowning achievements of **Akari Labs** on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the **Red Oni** supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. The project has been funded and sponsored by many partners of Akari Labs, and is the brainchild of both **Saya Miyamoto** and **Archduke Cytho Valathor**, representative of **Hell**'s civilian population. Each unit is equipped with various third-party components of note, such as the **JetBurst™ Impulsors** on their backs, allowing them to perform rapid mid-air boosts and dashes, a pair of **Hammerspace™** containers, giving them quick access to a wide arsenal, the two being attached to the all-popular **Symnatek Magnetic Utility Belt**, or the powerful **Celestine Microfusion Battery**, courtesy of **Tach-Engine Technology Institute**, which provides up to 80 days of autonomy for the unit, at full processing power of its **Nekuratek IK-349 CPU**. More details on the full hardware specifications can be found at the Akari Labs website. The AI core of the Demolitionist is built on the same technology as Akari Labs' **Maidbots**, the **Nekuronbot AI Framework**, which had been provided to **Saya Miyamoto** herself as a gift of friendship from **Zanaveth Nekuraku II**, the lead AI engineer and current CEO of **Nekuratek**. Thanks to this technology, and combined with many other features such as the **CuteEmotion Display** that allows the unit to visibly show emotion through a set of simple animated faces or the **Loudboi Voicebox** that allows it to speak almost naturally, the Demolitionist is barely indistinguishable from a real person in its behavior and emotional response, making interaction with civilians much more comforting. It can even be said that the Demolitionist has its own little personality, with unique quirks and all. -The first unit, affectionately known as **Demo-chan** by Saya, was deployed in June of 2148 on **Union States** territory in order to combat the demonic invasion brought upon by the **UAC**'s interventions on **Hell**. +The first unit, affectionately known as **Demo-chan** by Saya, was deployed in June of 2148 on **Union States** territory in order to combat the demonic invasion brought upon by the **UAC**'s interventions on Hell. Of this previously mentioned first unit, there are many details known thanks to a Q&A session that Saya had livestreamed months prior to the deployment. The unit has been acknowledged as being part of the Miyamoto household, having the full name of **Demo Miyamoto**, and being referred to by Saya as her "child". Demo can be described as "quite chatty" and fond of joking around to try and put a smile on people's faces, but also very serious and determined in their desire to protect those in need. They are also quite popular within the LGBTQIA+ community due to their fierce support of also protecting the rights of those who face discrimination for their identities, and has even publicly come out themself as non-binary. This didn't really come as a surprise to most due to Saya's own involvements with the collective, however. @@ -76,13 +76,13 @@ TXT \cxTwitter:\c- \cf @demolitionist_bot\c- -The **Demolitionist** is one of the crowning achievements of **Akari Labs** on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the **Red Oni** supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. +The **Demolitionist** is one of the crowning achievements of **Akari Labs** on the field of robotics. An AI-driven combat unit capable of efficiently utilizing any weaponry at its disposition, highly resilient to damage and capable of operating in any environment, including the void of space. It can be seen as the spiritual successor of the **Red Oni** supersoldier program, in a way, as it also serves the same purpose of defending Earth from an overwhelming invading force. The project has been funded and sponsored by many partners of Akari Labs, and is the brainchild of both **Saya Miyamoto** and **Archduke Cytho Valathor**, representative of **Hell**'s civilian population. Each unit is equipped with various third-party components of note, such as the **JetBurst™ Impulsors** on their backs, allowing them to perform rapid mid-air boosts and dashes, a pair of **Hammerspace™** containers, giving them quick access to a wide arsenal, the two being attached to the all-popular **Symnatek Magnetic Utility Belt**, or the powerful **Celestine Microfusion Battery**, courtesy of **Tach-Engine Technology Institute**, which provides up to 80 days of autonomy for the unit, at full processing power of its **Nekuratek IK-349 CPU**. More details on the full hardware specifications can be found at the Akari Labs website. The AI core of the Demolitionist is built on the same technology as Akari Labs' **Maidbots**, the **Nekuronbot AI Framework**, which had been provided to **Saya Miyamoto** herself as a gift of friendship from **Zanaveth Nekuraku II**, the lead AI engineer and current CEO of **Nekuratek**. Thanks to this technology, and combined with many other features such as the **CuteEmotion Display** that allows the unit to visibly show emotion through a set of simple animated faces or the **Loudboi Voicebox** that allows it to speak almost naturally, the Demolitionist is barely indistinguishable from a real person in its behavior and emotional response, making interaction with civilians much more comforting. It can even be said that the Demolitionist has its own little personality, with unique quirks and all. -The first unit, affectionately known as **Demo-chan** by Saya, was deployed in June of 2148 on **Union States** territory in order to combat the demonic invasion brought upon by the **UAC**'s interventions on **Hell**. +The first unit, affectionately known as **Demo-chan** by Saya, was deployed in June of 2148 on **Union States** territory in order to combat the demonic invasion brought upon by the **UAC**'s interventions on Hell. Of this previously mentioned first unit, there are many details known thanks to a Q&A session that Saya had livestreamed months prior to the deployment. The unit has been acknowledged as being part of the Miyamoto household, having the full name of **Demo Miyamoto**, and being referred to by Saya as her "child". Demo can be described as "quite chatty" and fond of joking around to try and put a smile on people's faces, but also very serious and determined in their desire to protect those in need. They are also quite popular within the LGBTQIA+ community due to their fierce support of also protecting the rights of those who face discrimination for their identities, and has even publicly come out themself as non-binary. This didn't really come as a surprise to most due to Saya's own involvements with the collective, however. diff --git a/lore/default/doomguy.txt b/lore/default/doomguy.txt index 771cf5b1b..281da3d7f 100644 --- a/lore/default/doomguy.txt +++ b/lore/default/doomguy.txt @@ -3,7 +3,7 @@ Doom Marine TAB People REL -UAC;Hell;Saya;AkariLabs;Demolitionist +UAC;Hell;Saya;AkariLabs;Demolitionist;Cytho TXT \cxFull Name:\c- \cf CLASSIFIED\c- @@ -23,7 +23,7 @@ At the moment of this article's writing, the marine has been tasked with fightin \cxSaya's Notes:\c- \cfAlright, IMPORTANT THING: don't get close to this guy, don't say anything to him, do not interact. If you two come across each other, stand back and let him work, or he might just go and start shooting you too.\c- -\cfBy the way, my congratulations to those UAC goons for how well-guarded they keep all the info about him. We don't even know his actual goddamn name, or his history from before all this shit started. Like, what even is this guy like? I haven't heard much of that, but there was some mention of him liking rabbits? Cute bunnies?\c- +\cfBy the way, my congratulations to those UAC goons for how well-guarded they keep all the info about him. We don't even know his actual goddamn name, or his history from before all this shit started. Like, what even is this guy like? I haven't heard much of that, apart from the little info Cytho-sama could get out of his previous romp through Hell, but there was some mention of him liking rabbits? Cute bunnies?\c- \cfWell, maybe then, if you pretend those horns of yours are some bun ears, he might not shoot you on sight, who knows...\c- TXT diff --git a/lore/default/ellen.txt b/lore/default/ellen.txt index 769b463a6..24b8b8067 100644 --- a/lore/default/ellen.txt +++ b/lore/default/ellen.txt @@ -3,7 +3,7 @@ Yanikov, Elena XXI TAB People REL -Ibuki;Taro;Ashley;Saya;Anarukon;WhiteScar;Hell;Yui +Ibuki;Taro;Ashley;Saya;Anarukon;WhiteScar;Hell;Yui;Cytho TXT \cxFull Name:\c- \cf Elena "Ellen" Yanikov XXI\c- diff --git a/lore/default/hell.txt b/lore/default/hell.txt index 9f089c0ab..cd13d380f 100644 --- a/lore/default/hell.txt +++ b/lore/default/hell.txt @@ -3,7 +3,7 @@ Hell TAB Lore REL -Imanaki;UAC;Saya;Ellen;Anarukon;Novoskhana;DemonInvasion +Imanaki;UAC;Saya;Ellen;Anarukon;Novoskhana;DemonInvasion;Cytho TXT \cxName:\c- \cf Hell\c- diff --git a/lore/default/tastyhoagie.txt b/lore/default/tastyhoagie.txt index b0a91e148..1d95e7a84 100644 --- a/lore/default/tastyhoagie.txt +++ b/lore/default/tastyhoagie.txt @@ -3,7 +3,7 @@ Hoagie TAB Item REL -Saya;Hell +Saya;Hell;Cytho TXT \cxDesignation:\c- \cf Hoagie\c- diff --git a/lore/default/uac.txt b/lore/default/uac.txt index dc24a8970..5bfc507d6 100644 --- a/lore/default/uac.txt +++ b/lore/default/uac.txt @@ -107,4 +107,4 @@ What little information could be recovered from the other side of all this, that \cxSaya's Notes:\c- \cfCrazy stuff, all because of the UAC being shit and bad. I'm happy though, because I got to see that pathetic brat's fall from glory, that idiot, who once claimed to be the "most important man in the world", now turned into the US government's personal lap dog. It's so hilarious my sides have gone into orbit, I swear.\c- -\cfOh yeah, that little bit at the end of the "other side's account" on things? Yeah, you can thank my "special source" for that. Cytho-sama has a lot of contacts in Hell, that's for sure. He never told me about it, but I'm guessing he was someone important back in the day, before he came to Earth and "reformed". Oh well. Here ends the story of these Dumb Epistles or whatever, one of the shining examples of the consequences of unchecked capitalism™.\c- +\cfAnd so, here ends the story of these Dumb Epistles or whatever, one of the shining examples of the consequences of unchecked capitalism™.\c- diff --git a/lore/es/cytho.txt b/lore/es/cytho.txt new file mode 100644 index 000000000..a5677374b --- /dev/null +++ b/lore/es/cytho.txt @@ -0,0 +1,30 @@ +TXT +\cxNombre Completo:\c- +\cf Archiduque Cytho de la Casa Valathor\c- +\cxNacionalidad:\c- +\cf Kuriste\c- +\cxFecha de Nacimiento:\c- +\cf 2008-10-09\c- +\cxTwitter:\c- +\cf @incuvalathor\c- + +Nacido en la ahora caída villa de Iskar en 2008 como uno de los varones más jóvenes de la humilde **Casa Valathor**, **Cytho** entró al negocio familiar al llegar a la edad adulta, rápidamente ascendiendo en rango en la industria del trabajo sexual del **Infierno**, en parte dada su belleza innata, pero también por la rápida acumulación de "clientes satisfechos" a los que daría servicio regularmente, y los muchos alumnos que tomó bajo su tutela. Ya en 2028, había hecho de la Tierra su segundo hogar, donde abriría una cuenta en redes sociales como una forma más moderna de atraer nueva clientela. + +Un día, sin embargo, todo cambió. Un gran número de íncubos reportaría verse "horrorizados" por las peticiones excesivas de una mujer. Curioso, Cytho entonces se decidió a encontrarla, para ver que era exactamente lo que sus colegas encontraban tan irrazonable. Y así fue como conoció a **Elena Yanikov XVI**, una mujer Anarukon "bajo la maldición de una eterna soltería", la cual tan desesperadamente deseaba encontrar marido que había recurrido finalmente a invocar demonios y suplicarles que se casen con ella. Como era de esperar, todos habían rechazado sus plegarias, sin importar cuanto lo intentara, ya que muchos demonios desconfían de su especie. Cytho, sin embargo, fue compasivo con ella, y aceptó, con una condición: Que tendrían primero una cita. + +Un tiempo después, el archiduque anunció su retiro del trabajo sexual, habiéndose "reformado" como el fiel marido de una mujer Anarukon. Mientras que sus amigos y familiares lo celebraron, otros vieron esto como una afrenta. La Casa Valathor fue criticada severamente por no renegar inmediatamente de él, hasta el punto que una pequeña guerra estalló, en la que la rival **Casa Irishtanar** arrasaría su pueblo natal como "protesta". Ese día, Cytho vería de cerca la crueldad de su propia gente, como único superviviente de aquella masacre. + +Desde entonces, vive en Boston con su mujer y sus tres hijas. El propósito de su cuenta en redes sociales ha cambiado al de comunicar las noticias de aquello que transcurre en su mundo natal, contrastadas con los muchos contactos que ha acumulado durante años, como representante de la subyugada población civil. Aunque la gran mayoría de la población de la Tierra no lo tomaría en serio, no hasta que empezara la **Invasión Demoníaca** de 2148. + +Denunciando la intervención de la **UAC**, posteó sobre los eventos en **Fobos** y **Deimos** mucho antes de que la UAC los hiciese públicos, y proclamó que una invasión en la Tierra era inminente. Aun así pocos lo tomaron en serio, pero una entre ellos era su amiga **Saya Miyamoto**, de **Akari Labs**. Como inversor en su compañía, ya había garantizado anteriormente que tuviese los recursos y mano de obra necesarios para la tarea que le encomendaría: Construir un robot de combata que lucharía contra los invasores. + +Y así, a partir de su colaboración, nació la **Demolicionista**. + +\cxNotas de Saya:\c- +\cfDesde el primer momento que lo conocí, aquella primera vez que visité a la familia de Ellen-san, ya sabía que era más que un guapo y molón abuelete femboy demonio. Sí, Cytho-sama es la caña, y la sangre que corre por sus venas es mucho más noble que la de cualquier capullo pomposo con título que vaya por ahí.\c- + +\cfY sí, sorpresa sorpresa... Es tu padre (bueno, algo así). Pero eso ya lo sabías, ¿verdad?\c- + +\cfEn serio, si no fuera por él, todo esto nunca habría sido posible. Estamos en deuda con él... Solo espero que no tenga que pagarle con mi propio cuerpo (aunque tampoco me importaría, jijijiji).\c- + +\cfPS: Su nombre se pronuncia "Kaizo", lo has dicho mal todo el rato. Pero no te preocupes, no eres la primera.\c- diff --git a/lore/es/demolitionist.txt b/lore/es/demolitionist.txt index 303138e39..957951403 100644 --- a/lore/es/demolitionist.txt +++ b/lore/es/demolitionist.txt @@ -12,13 +12,13 @@ TXT \cxTwitter:\c- \cf @demolitionist_bot\c- -El **Demolicionista** es uno de los mayores logros de **Akari Labs** en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado **Oni Rojo**, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. +El **Demolicionista** es uno de los mayores logros de **Akari Labs** en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado **Oni Rojo**, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. El proyecto ha sido financiado y patrocinado por los muchos socios de Akari Labs, y es fruto de la colaboración entre **Saya Miyamoto** y el **Archiduque Cytho Valathor**, representante de la población civil del **Infierno**. Cada unidad está equipada con varios componentes de terceros, tal como los **Impulsores JetBurst™** a sus espaldas, permitiéndoles realizar rápidos impulsos en el aire y evasiones, un par de contenedores **Hammerspace™**, permitiendo el acceso a un vasto arsenal, los dos acoplados al tan popular **Cinturón Útil Magnético de Symnatek**, o su potente **Batería de Microfusión Celestine**, cortesía del **Instituto Tecnológico Tach-Engine**, que provee a la unidad de hasta 80 días de autonomía, al máximo de la capacidad de procesado de su **CPU IK-349 de Nekuratek**. Hay más detalles sobre las especificaciones completas de hardware disponibles en la página web de Akari Labs. El núcleo de IA del Demolicionista está construido sobre la misma tecnología que las **Maidbots** de Akari Labs, el **Framework de IA Nekuronbot**, que fue proporcionado a **Saya Miyamoto** como un regalo de amistad de **Zanaveth Nekuraku II**, la ingeniera jefe de IA y actual CEO de **Nekuratek**. Gracias a esta tecnología, y combinado con muchos otros componentes como el **Display CuteEmotion** que permite a la unidad mostrar visiblemente sus emociones a través de un conjunto de simples caras animadas o la **Caja de Voz Loudboi** que la permite hablar casi con naturalidad, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, haciendo la interacción con civiles mucho más reconfortante. Se puede decir incluso que el Demolicionista tiene su propia personalidad, con sus pequeñas peculiaridades. -La primera unidad, conocida afectivamente como **Demo-chan** por Saya, fue desplegada en Junio de 2148 en el territorio de la **Unión de Estados** para combatir la invasión demoníaca atraída por las intervenciones de la **UAC** en el **Infierno**. +La primera unidad, conocida afectivamente como **Demo-chan** por Saya, fue desplegada en Junio de 2148 en el territorio de la **Unión de Estados** para combatir la invasión demoníaca atraída por las intervenciones de la **UAC** en el Infierno. De esta primera unidad anteriormente mencionada, se conocen muchos más detalles gracias a la sesión de preguntas y respuestas que Saya realizó en directo meses antes del despliegue. La unidad es reconocida como parte de la familia Miyamoto, teniendo el nombre completo de **Demo Miyamoto**, y Saya se refiere a ella como su "hija". Se puede describir a Demo como "muy habladora" y aficionada a hacer chistes para poner una sonrisa en las caras de la gente, aunque también es muy seria y determinada en su deseo de proteger a quien lo necesita. También es bastante popular con la comunidad LGBTQIA+ dado su feroz soporte de proteger los derechos de aquellos que sufren discriminación por su identidad, e incluso ha anunciado públicamente ser no-binaria. Esto fue algo poco inesperado, dada la experiencia de Saya con el colectivo. @@ -42,13 +42,13 @@ TXT \cxTwitter:\c- \cf @demolitionist_bot\c- -El **Demolicionista** es uno de los mayores logros de **Akari Labs** en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado **Oni Rojo**, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. +El **Demolicionista** es uno de los mayores logros de **Akari Labs** en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado **Oni Rojo**, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. El proyecto ha sido financiado y patrocinado por los muchos socios de Akari Labs, y es fruto de la colaboración entre **Saya Miyamoto** y el **Archiduque Cytho Valathor**, representante de la población civil del **Infierno**. Cada unidad está equipada con varios componentes de terceros, tal como los **Impulsores JetBurst™** a sus espaldas, permitiéndoles realizar rápidos impulsos en el aire y evasiones, un par de contenedores **Hammerspace™**, permitiendo el acceso a un vasto arsenal, los dos acoplados al tan popular **Cinturón Útil Magnético de Symnatek**, o su potente **Batería de Microfusión Celestine**, cortesía del **Instituto Tecnológico Tach-Engine**, que provee a la unidad de hasta 80 días de autonomía, al máximo de la capacidad de procesado de su **CPU IK-349 de Nekuratek**. Hay más detalles sobre las especificaciones completas de hardware disponibles en la página web de Akari Labs. El núcleo de IA del Demolicionista está construido sobre la misma tecnología que las **Maidbots** de Akari Labs, el **Framework de IA Nekuronbot**, que fue proporcionado a **Saya Miyamoto** como un regalo de amistad de **Zanaveth Nekuraku II**, la ingeniera jefe de IA y actual CEO de **Nekuratek**. Gracias a esta tecnología, y combinado con muchos otros componentes como el **Display CuteEmotion** que permite a la unidad mostrar visiblemente sus emociones a través de un conjunto de simples caras animadas o la **Caja de Voz Loudboi** que la permite hablar casi con naturalidad, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, haciendo la interacción con civiles mucho más reconfortante. Se puede decir incluso que el Demolicionista tiene su propia personalidad, con sus pequeñas peculiaridades. -La primera unidad, conocida afectivamente como **Demo-chan** por Saya, fue desplegada en Junio de 2148 en el territorio de la **Unión de Estados** para combatir la invasión demoníaca atraída por las intervenciones de la **UAC** en el **Infierno**. +La primera unidad, conocida afectivamente como **Demo-chan** por Saya, fue desplegada en Junio de 2148 en el territorio de la **Unión de Estados** para combatir la invasión demoníaca atraída por las intervenciones de la **UAC** en el Infierno. De esta primera unidad anteriormente mencionada, se conocen muchos más detalles gracias a la sesión de preguntas y respuestas que Saya realizó en directo meses antes del despliegue. La unidad es reconocida como parte de la familia Miyamoto, teniendo el nombre completo de **Demo Miyamoto**, y Saya se refiere a ella como su "hija". Se puede describir a Demo como "muy habladora" y aficionada a hacer chistes para poner una sonrisa en las caras de la gente, aunque también es muy seria y determinada en su deseo de proteger a quien lo necesita. También es bastante popular con la comunidad LGBTQIA+ dado su feroz soporte de proteger los derechos de aquellos que sufren discriminación por su identidad, e incluso ha anunciado públicamente ser no-binaria. Esto fue algo poco inesperado, dada la experiencia de Saya con el colectivo. @@ -72,13 +72,13 @@ TXT \cxTwitter:\c- \cf @demolitionist_bot\c- -El **Demolicionista** es uno de los mayores logros de **Akari Labs** en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado **Oni Rojo**, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. +El **Demolicionista** es uno de los mayores logros de **Akari Labs** en el campo de la robótica. Una unidad de combate manejada por IA capaz de usar eficientemente todo tipo de armamento a su disposición, altamente resistente a todo tipo de daño y capaz de operar en cualquier entorno, incluyendo el vacío del espacio. Puede considerarse el sucesor espiritual del programa de supersoldado **Oni Rojo**, en cierto modo, ya que también sirve el mismo propósito de defender a la Tierra de una fuerza invasora mayor. El proyecto ha sido financiado y patrocinado por los muchos socios de Akari Labs, y es fruto de la colaboración entre **Saya Miyamoto** y el **Archiduque Cytho Valathor**, representante de la población civil del **Infierno**. Cada unidad está equipada con varios componentes de terceros, tal como los **Impulsores JetBurst™** a sus espaldas, permitiéndoles realizar rápidos impulsos en el aire y evasiones, un par de contenedores **Hammerspace™**, permitiendo el acceso a un vasto arsenal, los dos acoplados al tan popular **Cinturón Útil Magnético de Symnatek**, o su potente **Batería de Microfusión Celestine**, cortesía del **Instituto Tecnológico Tach-Engine**, que provee a la unidad de hasta 80 días de autonomía, al máximo de la capacidad de procesado de su **CPU IK-349 de Nekuratek**. Hay más detalles sobre las especificaciones completas de hardware disponibles en la página web de Akari Labs. El núcleo de IA del Demolicionista está construido sobre la misma tecnología que las **Maidbots** de Akari Labs, el **Framework de IA Nekuronbot**, que fue proporcionado a **Saya Miyamoto** como un regalo de amistad de **Zanaveth Nekuraku II**, la ingeniera jefe de IA y actual CEO de **Nekuratek**. Gracias a esta tecnología, y combinado con muchos otros componentes como el **Display CuteEmotion** que permite a la unidad mostrar visiblemente sus emociones a través de un conjunto de simples caras animadas o la **Caja de Voz Loudboi** que la permite hablar casi con naturalidad, el Demolicionista es casi indistinguible de una persona real en su comportamiento y respuesta emocional, haciendo la interacción con civiles mucho más reconfortante. Se puede decir incluso que el Demolicionista tiene su propia personalidad, con sus pequeñas peculiaridades. -La primera unidad, conocida afectivamente como **Demo-chan** por Saya, fue desplegada en Junio de 2148 en el territorio de la **Unión de Estados** para combatir la invasión demoníaca atraída por las intervenciones de la **UAC** en el **Infierno**. +La primera unidad, conocida afectivamente como **Demo-chan** por Saya, fue desplegada en Junio de 2148 en el territorio de la **Unión de Estados** para combatir la invasión demoníaca atraída por las intervenciones de la **UAC** en el Infierno. De esta primera unidad anteriormente mencionada, se conocen muchos más detalles gracias a la sesión de preguntas y respuestas que Saya realizó en directo meses antes del despliegue. La unidad es reconocida como parte de la familia Miyamoto, teniendo el nombre completo de **Demo Miyamoto**, y Saya se refiere a ella como su "hija". Se puede describir a Demo como "muy habladora" y aficionada a hacer chistes para poner una sonrisa en las caras de la gente, aunque también es muy seria y determinada en su deseo de proteger a quien lo necesita. También es bastante popular con la comunidad LGBTQIA+ dado su feroz soporte de proteger los derechos de aquellos que sufren discriminación por su identidad, e incluso ha anunciado públicamente ser no-binaria. Esto fue algo poco inesperado, dada la experiencia de Saya con el colectivo. diff --git a/lore/es/doomguy.txt b/lore/es/doomguy.txt index 286398779..00873697a 100644 --- a/lore/es/doomguy.txt +++ b/lore/es/doomguy.txt @@ -19,7 +19,7 @@ En el momento de escribir este artículo, el marine ha sido encargado de combati \cxNotas de Saya:\c- \cfBien, COSA IMPORTANTE: no te acerques a este tío, no le digas nada, no te metas en medio. Si os cruzáis, quédate quieta y deja que trabaje, o si no puede que vaya y te pegue un tiro a ti también.\c- -\cfPor cierto, mi enhorabuena a los gorilas de la UAC por lo bien guardado que tienen todo sobre este tío. No sabemos ni como se llama, ni de su historial antes de que empezara toda esta mierda. Es que, ¿que clase de tío es? Tampoco he oído mucho de eso, aunque ¿creo que mencionaron por ahí que le gustan los conejos? ¿conejillos monos?\c- +\cfPor cierto, mi enhorabuena a los gorilas de la UAC por lo bien guardado que tienen todo sobre este tío. No sabemos ni como se llama, ni de su historial antes de que empezara toda esta mierda. Es que, ¿que clase de tío es? Tampoco he oído mucho de eso, aparte de la poca info que Cytho-sama pudo sacar de su anterior paseo por el Infierno, aunque ¿creo que mencionaron por ahí que le gustan los conejos? ¿conejillos monos?\c- \cfBueno, entonces, a lo mejor si haces como que esa cornamenta tuya son orejitas de conejo, puede que no te dispare, quien sabe...\c- TXT diff --git a/lore/es/uac.txt b/lore/es/uac.txt index 90e4d5744..43c2a25b0 100644 --- a/lore/es/uac.txt +++ b/lore/es/uac.txt @@ -101,4 +101,4 @@ De la poca información que se pudo recuperar del otro lado de todo esto, del pr \cxNotas de Saya:\c- \cfUn lío muy gordo, todo por que la UAC es una mierda y el mal. Aunque me alegro, porque pude ver como la caída del niñato patético ese, puto idiota, que se creía el "hombre más importante del mundo", y ahora es el perrito faldero del gobierno de la Unión de Estados. Es que me muero de la risa, oye.\c- -\cfOh ya, ¿la parte esa del final, de "la historia del otro lado"? Sí, puedes darle las gracias a mi "fuente especial". Cytho-sama tiene un monte de contactos en el Infierno, eso seguro. Nunca me ha hablado del tema, pero supongo que fue alguien importante hace tiempo, antes de venir a la Tierra y "reformarse". Oh bueno. Aquí acaba la historia de la Epístolas de Dumbo estas o lo que sea, uno de los mayores ejemplos de las consecuencias del capitalismo desenfrenado™.\c- +\cfY aquí acaba la historia de la Epístolas de Dumbo estas o lo que sea, uno de los mayores ejemplos de las consecuencias del capitalismo desenfrenado™.\c- diff --git a/menudef.txt b/menudef.txt index 658532f0c..0722afb0f 100644 --- a/menudef.txt +++ b/menudef.txt @@ -116,6 +116,7 @@ OptionMenu "SWWMOptionMenu" Option "$SWWM_SCORENUMS", "swwm_scorenums", "YesNo" Option "$SWWM_SCOREBONUS", "swwm_scorebonus", "YesNo" Option "$SWWM_POIS", "swwm_pois", "YesNo" + Option "$SWWM_NOMAPMSG", "swwm_nomapmsg", "NoYes" ScaleSlider "$SWWM_MAXTARGETDIST", "swwm_maxtargetdist", 0, 6000, 100, "$SWWM_UNLIMITED" ScaleSlider "$SWWM_MAXTARGETS", "swwm_maxtargets", 0, 1000, 1, "$SWWM_UNLIMITED" ScaleSlider "$SWWM_MAXDAMNUMS", "swwm_maxdamnums", 0, 1000, 1, "$SWWM_UNLIMITED" diff --git a/zmapinfo.txt b/zmapinfo.txt index 3752bf1a3..7850df746 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -181,6 +181,7 @@ DamageType EndLevel DoomEdNums { // these are placed by a level postprocessor on Kinsie's Test Map, so we don't need 16-bit numbers + // Doom collectibles 4206900 = GenericCube 4206901 = AkariProject 4206902 = LoveSignalsCD @@ -193,16 +194,18 @@ DoomEdNums 4206909 = TastyHoagie 4206910 = IbukiMilk 4206911 = BRCAlbum - // Heretic + // Heretic collectibles 4206912 = DemoPlush 4206913 = Manarokou 4206914 = LithiumNovel - // Hexen + // Hexen collectibles 4206915 = KirinCummies 4206916 = MilkBreads 4206917 = KirinManga 4206918 = KirinPlush 4206919 = Psykkonovexx + // ... and the chancebox + 4206920 = Chancebox // these are also pp stuff 4206990 = SWWMGuard 4206991 = SWWMHans diff --git a/zscript.txt b/zscript.txt index 9e40f31f5..ab1ad8f47 100644 --- a/zscript.txt +++ b/zscript.txt @@ -39,6 +39,7 @@ version "4.6" #include "zscript/handler/swwm_handler_queues.zsc" #include "zscript/handler/swwm_handler_replacements.zsc" #include "zscript/handler/swwm_handler_shaders.zsc" +#include "zscript/handler/swwm_handler_uitick.zsc" #include "zscript/handler/swwm_handler_vanillaboss.zsc" #include "zscript/handler/swwm_handler_worldload.zsc" #include "zscript/handler/swwm_handler_worldthings.zsc" diff --git a/zscript/compat/swwm_compat.zsc b/zscript/compat/swwm_compat.zsc index d32485296..4d39aef55 100644 --- a/zscript/compat/swwm_compat.zsc +++ b/zscript/compat/swwm_compat.zsc @@ -238,6 +238,19 @@ Class SWWMLevelCompatibility : LevelPostProcessor SetThingEdNum(i,4206991); // hans grosse } break; + // Doom 2 Redux MAP20 + case 'C9FFFD855FCF9BD6BC3ABCCA5DC2240A': + // move boss brain so the player telefrags it (lets the mod know this is a death exit) + SetThingXY(497,3296,-96); + AddThing(2035,(3360,-96,0),315); // put a barrel in the hole that was left + break; + // Doom 2 Redux MAP31 + case '4A8EAAB2B29CB438ED6EE972D3EEE951': + // contribute to Aximal's illusion by putting a single WolfSS facing away from the player start + // we can re-use thing 0, which is a shotgunner corpse + SetThingEdNum(0,4206992); + SetThingAngle(0,0); + break; // Kinsie's Test Map case '0EADB2F82732A968B8513E4DC6138439': case 'D70250F93C6B6072DA39D9672B37F236': @@ -245,6 +258,9 @@ Class SWWMLevelCompatibility : LevelPostProcessor // add collectibles for ( int i=0; i<20; i++ ) AddThing(4206900+i,(1472+64*i,640,0)); + // add some chance boxes + for ( int i=0; i<3; i++ ) + AddThing(4206920,(3616,1824-64*i,0),180); break; } switch ( checksum ) diff --git a/zscript/dlc1/swwm_ammoitems_dlc.zsc b/zscript/dlc1/swwm_ammoitems_dlc.zsc index 31dc9fc32..3ca507d0a 100644 --- a/zscript/dlc1/swwm_ammoitems_dlc.zsc +++ b/zscript/dlc1/swwm_ammoitems_dlc.zsc @@ -21,11 +21,6 @@ Class SMW05Ammo : SWWMAmmo FloatBobStrength 0.25; Accuracy 20; } - override void ModifyDropAmount( int dropamount ) - { - Super.ModifyDropAmount(dropamount); - Amount = Random[ShellDrop](1,clamp(dropamount,1,3)); - } States { Spawn: @@ -94,16 +89,11 @@ Class SheenAmmo : SWWMAmmo Inventory.MaxAmount 600; Ammo.BackpackAmount 50; Ammo.BackpackMaxAmount 1200; - Ammo.DropAmount 10; + Ammo.DropAmount 3; +FLOATBOB; FloatBobStrength 0.25; Accuracy 35; } - override void ModifyDropAmount( int dropamount ) - { - Super.ModifyDropAmount(dropamount); - Amount = Random[ShellDrop](1,clamp(dropamount,1,3)); - } States { Spawn: diff --git a/zscript/handler/swwm_handler_cheats.zsc b/zscript/handler/swwm_handler_cheats.zsc index ec59ed115..558128693 100644 --- a/zscript/handler/swwm_handler_cheats.zsc +++ b/zscript/handler/swwm_handler_cheats.zsc @@ -76,6 +76,7 @@ extend Class SWWMHandler if ( !w || (w == 'SWWMWeapon') ) continue; let def = GetDefaultByType(w); if ( def.bCHEATNOTWEAPON ) continue; + if ( w is 'Ynykron' ) continue; // traditionally not given, it's a separate cheat let ow = players[e.Args[0]].mo.FindInventory(w); if ( ow && (ow.Amount >= ow.MaxAmount) ) continue; if ( ow ) ow.Amount = ow.MaxAmount; @@ -148,7 +149,7 @@ extend Class SWWMHandler S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI); S_StartSound("misc/ammo_pkup",CHAN_VOICE,CHANF_UI); } - players[e.Args[0]].mo.GiveInventory("HammerspaceEmbiggener",8,true); + players[e.Args[0]].mo.GiveInventory("TradedHammerspaceEmbiggener",8,true); for ( Inventory i=players[e.Args[0]].mo.inv; i; i=i.inv ) { if ( !(i is 'Ammo') ) continue; @@ -179,8 +180,27 @@ extend Class SWWMHandler S_StartSound("menu/buyinv",CHAN_ITEM,CHANF_UI); S_StartSound("fabricator/use",CHAN_VOICE,CHANF_UI); } - players[e.Args[0]].mo.CheatGive("all",0); players[e.Args[0]].health = players[e.Args[0]].mo.health = 1000; + players[e.Args[0]].mo.GiveInventory("TradedHammerspaceEmbiggener",8,true); + for ( Inventory i=players[e.Args[0]].mo.inv; i; i=i.inv ) + { + if ( !(i is 'Ammo') ) continue; + i.Amount = i.MaxAmount; + } + for ( int i=0; i)(AllActorClasses[i]); + if ( !w || (w == 'SWWMWeapon') ) continue; + let def = GetDefaultByType(w); + if ( def.bCHEATNOTWEAPON ) continue; + if ( w is 'Ynykron' ) continue; // traditionally not given, it's a separate cheat + let ow = players[e.Args[0]].mo.FindInventory(w); + if ( ow && (ow.Amount >= ow.MaxAmount) ) continue; + if ( ow ) ow.Amount = ow.MaxAmount; + else players[e.Args[0]].mo.GiveInventory(w,def.MaxAmount); + } + players[e.Args[0]].mo.CheatGive("armor",0); + players[e.Args[0]].mo.CheatGive("artifacts",0); } else if ( e.Name ~== "swwmflagcheat" ) { @@ -417,9 +437,15 @@ extend Class SWWMHandler if ( kstr != cht[i].Left(kstr.length()) ) continue; matchany = true; if ( kstr != cht[i] ) continue; - if ( (i > 5) && !swwm_oldcheat ) + if ( (i > 5) && !swwm_nomapmsg && !swwm_oldcheat ) { - let m = new("SWWMSecretZanavethMessage").Init(); + let m = new("SWWMDirectMessage").Init("\chZanaveth\c-","\chZanaveth Nekuraku III\c-","Znv"); + m.seqname = "ZNVTXT"; + m.seqcnt = 5; + m.znvspecial = true; + m.delay = 80; + m.enddelay = 90; + m.pausedelay = 40; StatusBar.AttachMessage(m,-1232); CVar.FindCVar('swwm_oldcheat').SetBool(true); } @@ -458,7 +484,7 @@ extend Class SWWMHandler else { kcode++; - if ( kcode > 4 ) return true; // eat keypresses from this point + if ( kcode >= 4 ) return true; // eat keypresses from this point } } return false; diff --git a/zscript/handler/swwm_handler_oneliners.zsc b/zscript/handler/swwm_handler_oneliners.zsc index d613702cd..c68d0d980 100644 --- a/zscript/handler/swwm_handler_oneliners.zsc +++ b/zscript/handler/swwm_handler_oneliners.zsc @@ -1,5 +1,11 @@ // oneliner handling +Class LastLine +{ + String type; + int lineno; +} + extend Class SWWMHandler { transient String oneliner, onelinersnd; diff --git a/zscript/handler/swwm_handler_process.zsc b/zscript/handler/swwm_handler_process.zsc index fe7196732..e081686c6 100644 --- a/zscript/handler/swwm_handler_process.zsc +++ b/zscript/handler/swwm_handler_process.zsc @@ -623,6 +623,15 @@ extend Class SWWMHandler if ( e.Args[0] != consoleplayer ) return; checklist.Clear(); } + else if ( e.Name ~== "swwmstorepuzzlecnt" ) + { + let s = SWWMStats.Find(players[e.Args[0]]); + if ( s ) + { + s.puzzlecnt = e.Args[1]; + s.realpuzzlecnt = e.Args[2]; + } + } // cheats go here else CheatEvent(e); } diff --git a/zscript/handler/swwm_handler_uitick.zsc b/zscript/handler/swwm_handler_uitick.zsc new file mode 100644 index 000000000..c6626af5b --- /dev/null +++ b/zscript/handler/swwm_handler_uitick.zsc @@ -0,0 +1,361 @@ +// misc. UI Tick stuff + +extend Class SWWMHandler +{ + ui bool didstartmsg; + bool doextramsg; + ui bool didextramsg; + + private ui void MapstartUITick() + { + if ( !didextramsg && doextramsg ) + { + if ( !swwm_nomapmsg ) + { + // angry about phase two + let msg = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + msg.seqname = "SAYAEVIB"; + msg.seqcnt = 2; + msg.delay = 20; + StatusBar.AttachMessage(msg,-1232); + } + didextramsg = true; + } + if ( didstartmsg ) return; + if ( swwm_nomapmsg ) + { + didstartmsg = true; + return; + } + int whichboss = WhichVanillaBossMap(); + if ( bossmap == MAP_DE1M8 ) + { + let msg = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + msg.seqname = "SAYAPHOBOS"; + msg.seqcnt = 4; + msg.delay = 40; + StatusBar.AttachMessage(msg,-1232); + } + else if ( bossmap == MAP_DE2M8 ) + { + let msg = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + msg.seqname = "SAYADEIMOS"; + msg.seqcnt = 4; + msg.delay = 40; + StatusBar.AttachMessage(msg,-1232); + } + else if ( bossmap == MAP_DE3M8 ) + { + let msg = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + msg.seqname = "SAYADIS"; + msg.seqcnt = 4; + msg.delay = 40; + StatusBar.AttachMessage(msg,-1232); + } + else if ( bossmap == MAP_DE4M8 ) + { + let msg = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + msg.seqname = "SAYATHY"; + msg.seqcnt = 4; + msg.delay = 40; + StatusBar.AttachMessage(msg,-1232); + } + else if ( bossmap == MAP_DMAP07 ) + { + let msg = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + msg.seqname = "SAYADIMPLE"; + msg.seqcnt = 5; + msg.delay = 40; + StatusBar.AttachMessage(msg,-1232); + } + else if ( bossmap == MAP_DMAP30 ) + { + // rampancy check + bool rampancy = false; + for ( int i=0; i= 4 ) puzzlecnt = 0; + puzzlecnt++; + realpuzzlecnt++; + ispuzzle = true; + } + else if ( ((level.mapname ~== "MAP08") || (level.mapname ~== "MAP09") || (level.mapname ~== "MAP10")) + && ((msg == StringTable.Localize("$TXT_ACS_MAP08_6_ONESI")) || (msg == StringTable.Localize("$TXT_ACS_MAP09_6_ONESI")) - || (msg == StringTable.Localize("$TXT_ACS_MAP10_6_ONESI")) - || (msg == StringTable.Localize("$TXT_ACS_MAP28_6_ONENI")) + || (msg == StringTable.Localize("$TXT_ACS_MAP10_6_ONESI"))) ) + { + if ( (puzzlecnt < 4) || (puzzlecnt >= 10) ) puzzlecnt = 4; + puzzlecnt++; + realpuzzlecnt++; + ispuzzle = true; + } + else if ( ((level.mapname ~== "MAP28") || (level.mapname ~== "MAP30") || (level.mapname ~== "MAP34")) + && ((msg == StringTable.Localize("$TXT_ACS_MAP28_6_ONENI")) || (msg == StringTable.Localize("$TXT_ACS_MAP30_6_ONENI")) - || (msg == StringTable.Localize("$TXT_ACS_MAP34_1_ONENI")) - // deathkings - || (msg == StringTable.Localize("$TXT_ACS_MAP44_1_THREE")) + || (msg == StringTable.Localize("$TXT_ACS_MAP34_1_ONENI"))) ) + { + if ( (puzzlecnt < 10) || (puzzlecnt >= 19) ) puzzlecnt = 10; + puzzlecnt++; + realpuzzlecnt++; + ispuzzle = true; + } + // deathkings + else if ( ((level.mapname ~== "MAP44") || (level.mapname ~== "MAP46")) + && ((msg == StringTable.Localize("$TXT_ACS_MAP44_1_THREE")) || (msg == StringTable.Localize("$TXT_ACS_MAP44_2_TWOMO")) || (msg == StringTable.Localize("$TXT_ACS_MAP44_3_ONEMO")) || (msg == StringTable.Localize("$TXT_ACS_MAP44_4_THEPU")) || (msg == StringTable.Localize("$TXT_ACS_MAP44_10_ONETH")) || (msg == StringTable.Localize("$TXT_ACS_MAP44_11_TWOTH")) - || (msg == StringTable.Localize("$TXT_ACS_MAP46_8_ONEFO")) - || (msg == StringTable.Localize("$TXT_ACS_MAP51_8_ONETH")) + || (msg == StringTable.Localize("$TXT_ACS_MAP46_8_ONEFO"))) ) + { + if ( (puzzlecnt < 19) || (puzzlecnt >= 30) ) puzzlecnt = 19; + puzzlecnt++; + realpuzzlecnt++; + ispuzzle = true; + } + else if ( (level.mapname ~== "MAP51") + && ((msg == StringTable.Localize("$TXT_ACS_MAP51_8_ONETH")) || (msg == StringTable.Localize("$TXT_ACS_MAP51_9_TWOTH")) - || (msg == StringTable.Localize("$TXT_ACS_MAP51_10_THECR")) ) - SWWMUtility.AchievementProgressInc('swwm_progress_puzzle',1,players[consoleplayer]); + || (msg == StringTable.Localize("$TXT_ACS_MAP51_10_THECR"))) ) + { + if ( (puzzlecnt < 30) || (puzzlecnt >= 34) ) puzzlecnt = 30; + puzzlecnt++; + realpuzzlecnt++; + ispuzzle = true; + } + if ( ispuzzle ) + { + EventHandler.SendNetworkEvent("swwmstorepuzzlecnt",consoleplayer,puzzlecnt,realpuzzlecnt); + int tpuz = SWWMUtility.IsDeathkings()?15:19; + if ( realpuzzlecnt >= tpuz ) SWWMUtility.MarkAchievement('swwm_achievement_puzzle',players[consoleplayer]); + if ( !swwm_nomapmsg ) + { + switch ( puzzlecnt ) + { + case 1: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEA"; + m.seqcnt = 2; + m.delay = 90; + AttachMessage(m,-1232); + break; + case 2: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEB"; + m.seqcnt = 1; + m.delay = 80; + AttachMessage(m,-1232); + break; + case 3: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEC"; + m.seqcnt = 2; + m.delay = 70; + AttachMessage(m,-1232); + break; + case 5: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLED"; + m.seqcnt = 2; + m.delay = 70; + AttachMessage(m,-1232); + break; + case 8: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEE"; + m.seqcnt = 2; + m.delay = 60; + AttachMessage(m,-1232); + break; + case 11: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEF"; + m.seqcnt = 3; + m.delay = 60; + AttachMessage(m,-1232); + m2 = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + m2.seqname = "KIRINPUZZLEG"; + m2.seqcnt = 1; + m.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m2.seqname = "KIRINPUZZLEH"; + m2.seqcnt = 1; + m.delay = 30; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + m2.seqname = "KIRINPUZZLEI"; + m2.seqcnt = 2; + m.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + break; + case 20: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEJ"; + m.seqcnt = 2; + m.delay = 80; + AttachMessage(m,-1232); + break; + case 30: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLEK"; + m.seqcnt = 1; + m.delay = 60; + AttachMessage(m,-1232); + m2 = new("SWWMDirectMessage").Init("\crIbuki\c-","\crIbuki Miyamoto\c-","Ibuki"); + m2.seqname = "KIRINPUZZLEL"; + m2.seqcnt = 1; + m2.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m2.seqname = "KIRINPUZZLEM"; + m2.seqcnt = 1; + m2.delay = 10; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + m2.seqname = "KIRINPUZZLEN"; + m2.seqcnt = 1; + m2.delay = 30; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\crIbuki\c-","\crIbuki Miyamoto\c-","Ibuki"); + m2.seqname = "KIRINPUZZLEO"; + m2.seqcnt = 1; + m2.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + m2.seqname = "KIRINPUZZLEP"; + m2.seqcnt = 1; + m2.delay = 30; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\crIbuki\c-","\crIbuki Miyamoto\c-","Ibuki"); + m2.seqname = "KIRINPUZZLEQ"; + m2.seqcnt = 1; + m2.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + break; + case 31: + m = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m.seqname = "KIRINPUZZLER"; + m.seqcnt = 3; + m.delay = 60; + AttachMessage(m,-1232); + m2 = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + m2.seqname = "KIRINPUZZLES"; + m2.seqcnt = 1; + m2.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cxKirin\c-","\cxKirin Xanai\c-","Kirin"); + m2.seqname = "KIRINPUZZLET"; + m2.seqcnt = 1; + m2.delay = 30; + m.nextmsg = m2; + m.nextdirect = true; + m = m2; + m2 = new("SWWMDirectMessage").Init("\cgSaya\c-","\cgSaya Miyamoto\c-","Saya"); + m2.seqname = "KIRINPUZZLEU"; + m2.seqcnt = 1; + m2.delay = 20; + m.nextmsg = m2; + m.nextdirect = true; + break; + } + } + } + // rampancy fun stuff + bool mainframeline = false; + if ( (msg == StringTable.Localize("$AISPAWN_TEXT1")) + || (msg == StringTable.Localize("$AISPAWN_TEXT2")) + || (msg == StringTable.Localize("$AISEE_TEXT")) + || (msg == StringTable.Localize("$AIACTIVE_TEXT1")) + || (msg == StringTable.Localize("$AIACTIVE_TEXT2")) + || (msg == StringTable.Localize("$AIPAIN_TEXT1")) + || (msg == StringTable.Localize("$AIPAIN_TEXT2")) + || (msg == StringTable.Localize("$AIPAIN_TEXT3")) + || (msg == StringTable.Localize("$AIPAIN_TEXT4")) + || (msg == StringTable.Localize("$AIPAIN_TEXT5")) + || (msg == StringTable.Localize("$AIPAIN_TEXT6")) + || (msg == StringTable.Localize("$AIPAIN_TEXT7")) ) + mainframeline = true; + if ( mainframeline ) + { + mainframehack = true; + Console.Printf(msg); + mainframehack = false; + return true; + } if ( !fnt || (fnt == smallfont) ) { midstr = msg; @@ -212,6 +582,12 @@ Class SWWMStatusBar : BaseStatusBar printlevel = PRINT_CHAT; outline = "\cmKorax\c-: "..outline; } + if ( mainframehack ) + { + // same here, hi yholl + printlevel = PRINT_CHAT; + outline = "\cmAI Mainframe\c-: "..outline; + } let m = new("MsgLine"); m.str = outline.Left(outline.Length()-1); // strip newline m.type = printlevel; @@ -1686,7 +2062,8 @@ Class SWWMStatusBar : BaseStatusBar Screen.DrawText(fnt,((level.sucktime>0)&&(sec>=(level.sucktime*3600)))?Font.CR_RED:(sec<=level.partime)?Font.CR_GOLD:Font.CR_WHITE,xx-fnt.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); yy += fnt.GetHeight(); } - if ( am_showtotaltime ) + // don't show total time if it's equal to map time + if ( am_showtotaltime && (level.totaltime != level.maptime) ) { sec = Thinker.Tics2Seconds(level.totaltime); str = String.Format("\cxTT \c-%02d\cu:\c-%02d\cu:\c-%02d",sec/3600,(sec%3600)/60,sec%60); diff --git a/zscript/hud/swwm_hudextra.zsc b/zscript/hud/swwm_hudextra.zsc index bce282449..0fa0b7ad7 100644 --- a/zscript/hud/swwm_hudextra.zsc +++ b/zscript/hud/swwm_hudextra.zsc @@ -114,12 +114,6 @@ Class SWWMOneLiner : HUDMessageBase } } -Class LastLine -{ - String type; - int lineno; -} - // Screen flashes from DT Class GenericFlash : HUDMessageBase { @@ -251,39 +245,47 @@ Class SWWMSewerCount : HUDMessageBase } } -// Secret dialogue -Class SWWMSecretZanavethMessage : HUDMessageBase +// Used sparingly for some events +Class SWWMDirectMessage : HUDMessageBase { TextureID MessageBox, BG, Avatar, Blink[2], Talk[5], Noiz[4]; - transient Font fnt; + transient Font fnt, jpfnt; transient BrokenLines l; - int seqnum, delay, charcnt, blinktics, talktics, talkframe; + String seqname, chrname, chrfullname; + bool znvspecial; // seqnum 2 string replacement + int seqnum, seqcnt, delay, charcnt, blinktics, talktics, talkframe; + int enddelay, pausedelay; int rss; int fadein, fadeout; Vector2 ss, hs, origin; + SWWMDirectMessage nextmsg; // for chaining messages together from different characters + bool nextdirect; // skips directly to next message without delays or fades private int GetRandom() { return (rss = (rss<<1)*35447+(rss/87)); } - SWWMSecretZanavethMessage Init() + virtual SWWMDirectMessage Init( String chrn, String chrfn, String texn ) { - MessageBox = TexMan.CheckForTexture("graphics/HUD/ZnvMessageBox.png",TexMan.Type_Any); - BG = TexMan.CheckForTexture("graphics/HUD/ZnvAvatarBG.png",TexMan.Type_Any); - Avatar = TexMan.CheckForTexture("graphics/HUD/ZnvAvatar.png",TexMan.Type_Any); + MessageBox = TexMan.CheckForTexture("graphics/HUD/DM/DirectMessageBox.png",TexMan.Type_Any); + BG = TexMan.CheckForTexture("graphics/HUD/DM/"..texn.."AvatarBG.png",TexMan.Type_Any); + Avatar = TexMan.CheckForTexture("graphics/HUD/DM/"..texn.."Avatar.png",TexMan.Type_Any); for ( int i=0; i<2; i++ ) - Blink[i] = TexMan.CheckForTexture("graphics/HUD/ZnvAvatarBlink"..i..".png",TexMan.Type_Any); + Blink[i] = TexMan.CheckForTexture("graphics/HUD/DM/"..texn.."AvatarBlink"..i..".png",TexMan.Type_Any); for ( int i=0; i<5; i++ ) - Talk[i] = TexMan.CheckForTexture("graphics/HUD/ZnvAvatarTalk"..i..".png",TexMan.Type_Any); + Talk[i] = TexMan.CheckForTexture("graphics/HUD/DM/"..texn.."AvatarTalk"..i..".png",TexMan.Type_Any); for ( int i=0; i<4; i++ ) - Noiz[i] = TexMan.CheckForTexture("graphics/HUD/ZnvStatic"..i..".png",TexMan.Type_Any); + Noiz[i] = TexMan.CheckForTexture("graphics/HUD/DM/DirectMessageStatic"..i..".png",TexMan.Type_Any); + chrname = chrn; + chrfullname = chrfn; seqnum = -1; - delay = 80; charcnt = 0; blinktics = 30; talktics = 0; talkframe = -1; + enddelay = 40; + pausedelay = 30; rss = 1232; return self; } @@ -291,20 +293,20 @@ Class SWWMSecretZanavethMessage : HUDMessageBase private void SetText() { String txt; - if ( seqnum == 2 ) + if ( (seqnum == 2) && znvspecial ) { // replace with number of years since 2010 int nyears = SystemTime.Format("%Y",SystemTime.Now()).ToInt()-2010; - txt = String.Format(StringTable.Localize("$SWWM_ZNVTXT"..seqnum),nyears); + txt = String.Format(StringTable.Localize("$SWWM_"..seqname..seqnum),nyears); } - else txt = StringTable.Localize("$SWWM_ZNVTXT"..seqnum); + else txt = StringTable.Localize("$SWWM_"..seqname..seqnum); l = fnt.BreakLines(txt,220); // append to the player's chat log let bar = SWWMStatusBar(StatusBar); if ( bar ) { let l = new("MsgLine"); - l.str = "\chZanaveth\c-: "..txt; + l.str = chrname..": "..txt; l.tic = level.totaltime; l.rep = 1; l.type = PRINT_CHAT; @@ -315,6 +317,7 @@ Class SWWMSecretZanavethMessage : HUDMessageBase private void DrawText() { if ( !fnt ) fnt = Font.GetFont('TewiShaded'); + if ( !jpfnt ) jpfnt = Font.GetFont('MPlusShaded'); if ( !l ) SetText(); int cur = charcnt; Vector2 pos = origin+(47,2); @@ -322,7 +325,7 @@ Class SWWMSecretZanavethMessage : HUDMessageBase { if ( cur <= 0 ) break; String part = l.StringAt(i).Left(cur); - Screen.DrawText(fnt,Font.CR_WHITE,pos.x,pos.y,part,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + Screen.DrawText((language~=="jp")?jpfnt:fnt,Font.CR_WHITE,pos.x,pos.y,part,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); pos.y += 13; cur -= l.StringAt(i).Length(); } @@ -343,7 +346,7 @@ Class SWWMSecretZanavethMessage : HUDMessageBase } Screen.DrawTexture(BG,false,origin.x+2,origin.y+2,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); Screen.DrawTexture(Avatar,false,origin.x+2,origin.y+2,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( (seqnum > 0) && (seqnum < 6) ) + if ( (seqnum > 0) && (seqnum < (seqcnt+1)) ) { if ( blinkframe >= 0 ) Screen.DrawTexture(Blink[blinkframe],false,origin.x+2,origin.y+2,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); if ( talkframe >= 0 ) Screen.DrawTexture(Talk[talkframe],false,origin.x+2,origin.y+2,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); @@ -382,7 +385,7 @@ Class SWWMSecretZanavethMessage : HUDMessageBase { seqnum++; charcnt = 0; - if ( seqnum > 5 ) S_StartSound("misc/chat",CHAN_VOICE,CHANF_UI,1.,0.); + if ( (seqnum > seqcnt) && !nextdirect ) S_StartSound("misc/chat",CHAN_VOICE,CHANF_UI,1.,0.); else SetText(); return; } @@ -406,7 +409,11 @@ Class SWWMSecretZanavethMessage : HUDMessageBase int idx = punctuation.IndexOf(ch); if ( idx >= 0 ) delay += (idx*2)+1; charcnt++; - if ( charcnt >= TotalLength() ) delay += (seqnum==5)?90:40; + // utf-8 skipping (naive but works, as we don't have to EXPECT invalid sequences in the input) + if ( ch.ByteAt(0)&0xE0 == 0xC0 ) charcnt++; + else if ( ch.ByteAt(0)&0xF0 == 0xE0 ) charcnt += 2; + else if ( ch.ByteAt(0)&0xF8 == 0xF0 ) charcnt += 3; + if ( charcnt >= TotalLength() ) delay += (seqnum==seqcnt)?enddelay:pausedelay; } override bool Tick() @@ -416,6 +423,7 @@ Class SWWMSecretZanavethMessage : HUDMessageBase delay--; if ( delay <= 0 ) { + Console.Printf(StringTable.Localize("$SWWM_INCOMINGMSG"),chrfullname); S_StartSound("misc/chat",CHAN_VOICE,CHANF_UI,1.,0.); seqnum++; } @@ -433,7 +441,11 @@ Class SWWMSecretZanavethMessage : HUDMessageBase talktics--; } else talkframe = -1; - if ( seqnum > 6 ) return true; + if ( seqnum > (seqcnt+1) ) + { + if ( nextmsg ) StatusBar.AttachMessage(nextmsg,-1232); + return true; + } if ( seqnum == 0 ) { fadein++; @@ -444,8 +456,14 @@ Class SWWMSecretZanavethMessage : HUDMessageBase } return false; } - if ( seqnum == 6 ) + if ( seqnum == (seqcnt+1) ) { + if ( nextmsg && nextdirect ) + { + nextmsg.seqnum = 1; + StatusBar.AttachMessage(nextmsg,-1232); + return true; + } fadeout++; if ( fadeout > 30 ) seqnum++; return false; @@ -461,17 +479,17 @@ Class SWWMSecretZanavethMessage : HUDMessageBase override void Draw( int bottom, int visibility ) { - if ( (seqnum < 0) || (seqnum > 6) ) return; + if ( (seqnum < 0) || (seqnum > (seqcnt+1)) ) return; double alph = 1.; if ( seqnum == 0 ) alph = fadein/15.; - else if ( seqnum == 6 ) alph = 1.-fadeout/30.; + else if ( seqnum == (seqcnt+1) ) alph = 1.-fadeout/30.; if ( swwm_hudscale <= 0 ) hs = StatusBar.GetHUDScale(); else hs.x = swwm_hudscale; hs.y = hs.x; ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y); - origin = (int(ss.x-270)/2,swwm_hudmargin+60); + origin = (int(ss.x-270)/2,swwm_hudmargin+70); Screen.DrawTexture(MessageBox,false,origin.x,origin.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); - if ( (seqnum < 1) || (seqnum > 5) ) return; + if ( (seqnum < 1) || (seqnum > seqcnt) ) return; DrawAvatar(); DrawText(); } diff --git a/zscript/items/swwm_ammoitems.zsc b/zscript/items/swwm_ammoitems.zsc index a5074b809..64c05d43c 100644 --- a/zscript/items/swwm_ammoitems.zsc +++ b/zscript/items/swwm_ammoitems.zsc @@ -18,7 +18,7 @@ Class RedShell : SWWMAmmo Inventory.MaxAmount 30; Ammo.BackpackAmount 2; Ammo.BackpackMaxAmount 80; - Ammo.DropAmount 2; + Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; Radius 4; @@ -73,7 +73,7 @@ Class GreenShell : SWWMAmmo Inventory.MaxAmount 25; Ammo.BackpackAmount 2; Ammo.BackpackMaxAmount 60; - Ammo.DropAmount 2; + Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; Radius 4; @@ -609,11 +609,6 @@ Class HellblazerCrackshots : SWWMAmmo Height 22; Accuracy 75; } - override void ModifyDropAmount( int dropamount ) - { - Ammo.ModifyDropAmount(dropamount); - Amount = min(Amount,2); - } States { Spawn: @@ -671,11 +666,6 @@ Class HellblazerRavagers : SWWMAmmo Height 22; Accuracy 80; } - override void ModifyDropAmount( int dropamount ) - { - Ammo.ModifyDropAmount(dropamount); - Amount = min(Amount,1); - } States { Spawn: @@ -722,11 +712,6 @@ Class HellblazerWarheads : SWWMAmmo Height 22; Accuracy 85; } - override void ModifyDropAmount( int dropamount ) - { - Ammo.ModifyDropAmount(dropamount); - Amount = min(Amount,1); - } States { Spawn: @@ -777,11 +762,6 @@ Class SparkUnit : SWWMAmmo Height 22; Accuracy 70; } - override void ModifyDropAmount( int dropamount ) - { - Ammo.ModifyDropAmount(dropamount); - Amount = min(Amount,1); - } States { Spawn: diff --git a/zscript/items/swwm_collectibles.zsc b/zscript/items/swwm_collectibles.zsc index ee490ec97..a9c7bc3aa 100644 --- a/zscript/items/swwm_collectibles.zsc +++ b/zscript/items/swwm_collectibles.zsc @@ -190,6 +190,9 @@ Class SayaBean : SWWMCollectible } Class MothPlushy : SWWMCollectible { + bool activated; // she knows where you are + bool present; // she's here (TBD 1.4) + Default { Tag "$T_MOTHPLUSH"; diff --git a/zscript/swwm_blod.zsc b/zscript/swwm_blod.zsc index 6284d770a..7950d6f2c 100644 --- a/zscript/swwm_blod.zsc +++ b/zscript/swwm_blod.zsc @@ -613,7 +613,7 @@ Class mkFlyingGib : Actor A_Bleed(); A_StartSound("misc/gibhit",CHAN_BODY,CHANF_OVERLAP); // oops we got squished - if ( floorz >= ceilingz ) ExplodeMissile(null,null); + if ( floorz+height >= ceilingz ) ExplodeMissile(null,null); } Goto Spawn; Death: diff --git a/zscript/swwm_gesture_fx.zsc b/zscript/swwm_gesture_fx.zsc index 712752baf..944d68f64 100644 --- a/zscript/swwm_gesture_fx.zsc +++ b/zscript/swwm_gesture_fx.zsc @@ -236,10 +236,10 @@ Class LoveHeart : Actor double fl, cl; if ( BlockingLine.sidedef[1] ) { - fl = min(BlockingLine.frontsector.floorplane.ZAtPoint(pos.xy),BlockingLine.backsector.floorplane.ZAtPoint(pos.xy)); - cl = max(BlockingLine.frontsector.ceilingplane.ZAtPoint(pos.xy),BlockingLine.backsector.ceilingplane.ZAtPoint(pos.xy)); - if ( max(floorz,pos.z) < fl ) LinePart = 0; - else if ( min(ceilingz,pos.z+height) > cl ) LinePart = 2; + fl = max(BlockingLine.frontsector.floorplane.ZAtPoint(pos.xy),BlockingLine.backsector.floorplane.ZAtPoint(pos.xy)); + cl = min(BlockingLine.frontsector.ceilingplane.ZAtPoint(pos.xy),BlockingLine.backsector.ceilingplane.ZAtPoint(pos.xy)); + if ( max(floorz,pos.z) < fl ) LinePart = 2; + else if ( min(ceilingz,pos.z+height) > cl ) LinePart = 0; else LinePart = 1; } else @@ -313,6 +313,7 @@ Class LoveHeart : Actor { if ( Hit3DFloor ) { + // TODO connected textures for upper/lower if ( Hit3DFloor.flags&F3DFloor.FF_UPPERTEXTURE ) HitLine.sidedef[LineSide].SetTexture(0,replacewith); else if ( Hit3DFloor.flags&F3DFloor.FF_LOWERTEXTURE ) HitLine.sidedef[LineSide].SetTexture(2,replacewith); else Hit3DFloor.master.sidedef[0].SetTexture(1,replacewith); diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index 07a071ecc..7e9ef32dd 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -131,6 +131,7 @@ Class SWWMHandler : EventHandler FlashUITick(); VanillaBossUITick(); CheatUITick(); + MapstartUITick(); } override void WorldLinePreActivated( WorldEvent e ) diff --git a/zscript/swwm_monsters.zsc b/zscript/swwm_monsters.zsc index 5f1b8f951..cd138f6fe 100644 --- a/zscript/swwm_monsters.zsc +++ b/zscript/swwm_monsters.zsc @@ -34,9 +34,7 @@ Class SWWMMonster : Actor abstract if ( whomst is 'Inventory' ) whomst = Inventory(whomst).Owner; if ( whomst ) { - if ( whomst.bMISSILE || (flags&DMG_INFLICTOR_IS_PUFF) ) - guesspos = level.Vec3Diff(pos,whomst.pos); - else guesspos = level.Vec3Diff(pos,whomst.Vec3Offset(0,0,whomst.Height/2)); + guesspos = level.Vec3Diff(pos,whomst.Vec3Offset(0,0,whomst.Height/2)); guesspos.x = clamp(guesspos.x,-radius,radius); guesspos.y = clamp(guesspos.y,-radius,radius); guesspos.z = clamp(guesspos.z,0,height); @@ -325,7 +323,6 @@ Class SWWMBossBrain : BossBrain else if ( (a.Health > 0) && (a.bBossSpawned || a.bCOUNTKILL) ) a.DamageMobj(self,self,a.Health,'EndMii',DMG_FORCED|DMG_THRUSTLESS); } - } Default diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index 0fbfeaf61..9ceeb309f 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -536,6 +536,7 @@ Class Demolitionist : PlayerPawn { if ( d.Hit3DFloor ) { + // TODO connected textures for upper/lower if ( d.Hit3DFloor.flags&F3DFloor.FF_UPPERTEXTURE ) d.HitLine.sidedef[d.LineSide].SetTexture(0,replacewith); else if ( d.Hit3DFloor.flags&F3DFloor.FF_LOWERTEXTURE ) d.HitLine.sidedef[d.LineSide].SetTexture(2,replacewith); else d.Hit3DFloor.master.sidedef[0].SetTexture(1,replacewith); diff --git a/zscript/swwm_thinkers_player.zsc b/zscript/swwm_thinkers_player.zsc index b41409140..43bcb4e6c 100644 --- a/zscript/swwm_thinkers_player.zsc +++ b/zscript/swwm_thinkers_player.zsc @@ -45,8 +45,10 @@ Class SWWMStats : Thinker int plushuses; // for pistol start info (to avoid it within hubs) int lastcluster; - // for trash removal chievement + // for trash removal achievement int nazicleanup; + // stored for hexen + int puzzlecnt, realpuzzlecnt; bool GotWeapon( Class which ) { diff --git a/zscript/utility/swwm_utility.zsc b/zscript/utility/swwm_utility.zsc index c6a25e1c4..d479a2221 100644 --- a/zscript/utility/swwm_utility.zsc +++ b/zscript/utility/swwm_utility.zsc @@ -1538,11 +1538,11 @@ Class SWWMUtility // shorthand for some of these checks (these are generally used by the mission briefing system) static bool IsKnownMap() { - if ( (gameinfo.gametype&GAME_DOOM) && (IsKnownCustomWAD() || CheckMD5List("vanilladoom.list")) ) + if ( (gameinfo.gametype&GAME_DOOM) && (IsKnownCustomWAD() || CheckMD5List("vanilladoom.lst")) ) return true; - if ( (gameinfo.gametype&GAME_HERETIC) && CheckMD5List("vanillaheretic.list") ) + if ( (gameinfo.gametype&GAME_HERETIC) && CheckMD5List("vanillaheretic.lst") ) return true; - if ( (gameinfo.gametype&GAME_HEXEN) && CheckMD5List("vanillahexen.list") ) + if ( (gameinfo.gametype&GAME_HEXEN) && CheckMD5List("vanillahexen.lst") ) return true; return false; } @@ -1600,7 +1600,7 @@ Class SWWMUtility static bool CheckMD5List( String fname ) { String csum = level.GetChecksum(); - let lmp = Wads.FindLump(fname); + let lmp = Wads.CheckNumForFullName(fname); if ( lmp == -1 ) return false; String dat = Wads.ReadLump(lmp); // fucking Windows