Newbiespud

  • Content Count

    49
  • Joined

  • Last visited

Community Reputation

37 Excellent

About Newbiespud

  • Rank
    Junior Member
...

Recent Profile Visitors

89 profile views
  1. v1.1.5 - Added more nil-checks to Appropriated's description to avoid crashes when, for whatever reason, it tries to describe a stolen argument name that doesn't exist. Also nil-checks the stolen argument when destroyed and incept's Doubt instead if somehow the table is occupied by a nil argument. We're getting into "I don't even know how this is possible, but here's a fix anyway" territory. In terms of a status update for the full mod: The main story campaign is now first-draft content-complete and fully functional! Without card drafts and with light reading, one run from beginning to end lasts about 80 minutes. Next on the roadmap is implementing the Bog Expedition mode, then nerfing Arint's basic deck and creating draft pools, plus a whole host of miscellaneous stuff. When cards are ready, I'm definitely going to be uploading a private beta mod page to get feedback.
  2. The archive for stream #5 is now up on YouTube! I have to say, this particular stream was probably one of my most successful in terms of raw results. We got like 11 event quests done!
  3. Been a while, huh? I'm going to be streaming some more Griftlands modding this Saturday the 20th at 1PM Mountain time. I need to make a bunch of event quests for Arint, so I might as well make it open to hang out and show off where the mod is at!
  4. v1.1.4 - Appropriated's description no longer brings up the tooltip for the argument it has stolen, now instead highlights it in bold (This is a change for safety - some enemy argument descriptions don't have a safe "generic" version when they're ownerless and cause crashes, like the Rise's Brainwash) Status update: All 7 side jobs and all 5 contracts now have main functionality and dialogue. The full-length Brawl has been implemented. The story campaign still needs travel events and opportunities. The second post-campaign game mode, The Bog Expedition, hasn't been started yet. The rework of Arint's cards and grafts has not started yet. I did, however, make some terrible MSPaint storyboards for Arint's opening and ending slides. Consider them a preview of Arint's story.
  5. TL;DR: Invulnerable/Personality argument images don't fill up the frame currently, and .png images to textures get really pixel-crunched when downscaling, especially at lower resolutions. Now that Fatigued has individual icons for each character, I thought I should see about making one for Arint! And I'm... most of the way there. Here's the image I'm trying to use (drawn by @onetinybee): I'm using this code to override Fatigued's OnInit and append my own check: local old_fatigued = Content.GetNegotiationModifier("FATIGUED") local old_fatigued_init = old_fatigued.OnInit function old_fatigued.OnInit(self, source) old_fatigued_init(self, source) if self.negotiator.agent:GetContentID() == "PC_ARINT" then self.icon = engine.asset.Texture( "ARINTMOD:textures/Arint_Fatigue.png", true ) end end Note that simply self.icon = "ARINTMOD:textures/Arint_Fatigue.png" causes a crash when Fatigue is added. (bad argument #2 to 'SetTexture' (Not a valid texture asset)) This is what this setup currently looks like in-game: It's a little hard to tell, but there's a gap, a sliver of transparency, on the top and bottom of the frame for Fatigued. It's not filling the frame. It's a square image, 256x256, and it still turns out this way even with an upscaled 512x512 version. When I use this image for another modifier's icon, like Arint's core argument, it looks much better: Here it's filling the frame and not as roughly downscaled. So I can only assume it's possibly the reassignment of the icon and/or the engine.asset.Texture() call that's messing things up? I'm a bit stumped. EDIT: Wait, every Personality/Invulnerable argument seems to have this framing issue. The roughness of the downscaling is still very noticeable, though, especially at lower windowed resolutions.
  6. Bit of a low-priority feature request, but I'm wondering if it's possible to override the character's normal battle/negotiation track with another one when a battle or negotiation is started. Like if my default is Rook's music, but for one specific battle I can replace it with Sal's or Smith's tracks.
  7. v1.1.3 - Arint now has Mettle enabled by default and will be able to earn it through Mini-Brawl missions In terms of a status update: The story campaign is now playable up to its win states, but there's still plenty of work to be done. 11 out of 12 major sidequests are complete, though a rewards balancing pass is pending. There are not currently any travel events or opportunities. Game modes like Brawl that are unlocked after story completion still need to be implemented and tested. Arint's decks still need to be nerfed, her draft pools need to be built and tested, plus grafts need to be made. I will likely need some custom art for the story campaign's opening and ending slides. There's still a lot of work to do, is what I'm saying. This is going to end up the size of a small DLC. I'm considering, at some point in the future, uploading a private invite-only preview build for testing before release, but that will likely be for when I've got cards to test, which I'm saving for near-last.
  8. Thanks, that was the push I needed! For anyone else who might be wondering about this in the future: To get my strings into a separate file, I made a file in my mod folder (lang/english.lua) like this: return { ARINTMOD = { WIDGET = { CELLS = "BEAM CHARGES", CELLS_TT_TITLE = "Beam Charges", CELLS_TT_TEXT = "Power charges required to fire Arint's chest piece. Arint can store <b>Beam Charge</b> in her empty cells.", CELLS_TT_CHARGES = "{1}/{2} CHARGES AVAILABLE", CELLS_TT_CHARGES_TEXT = "The first time Arint takes damage each turn, gain 1 <b>Defense</b> per empty cell.\n<b>Power Surge:</b> If Arint is below 25 health at the start of your turn, gain 1 <b>Beam Charge</b> and add 1 <b>Emergency Surge</b> to your hand.", CELLS_TT_CHARGES_PRIMED = "<#TITLE><b>Fully Charged:</> Some cards have additional effects when all cells are charged.</>\nThe first time Arint takes damage each turn, gain 1 <b>Defense</b> per empty cell.\n<b>Power Surge:</b> If Arint is below 25 health at the start of your turn, gain 1 <b>Beam Charge</b> and add 1 <b>Emergency Surge</b> to your hand.", CELLS_TT_SURGE = "{1} OVERDRIVE AVAILABLE", CELLS_TT_SURGE_TEXT = "<#TITLE>Increases the status conditions your cards apply by 1 stack per <b>Overdrive</b>.</>\nGaining <b>Beam Charge</b> while <b>Fully Charged</> generates <b>Overdrive</>. Reduce <b>Overdrive</b> by 1 at the end of your turn.", CELLS_TT_MALFUNCTION = "CHARGE CELLS MALFUNCTIONING", CELLS_TT_MALFUNCTION_TEXT = "You will take <#PENALTY>{1} Damage</> per charged cell at the end of your turn. (<#PENALTY>{2} Total Damage</>)", }, }, } And then in my modinit OnLoad (ARINTMOD in this case is my mod alias to resolve the pathname to the file): Content.AddStringTable( mod.id, require "ARINTMOD:lang/english" ) Then to call the strings in code, wherever I need to input a string, including in loc.format(): LOC"ARINTMOD.WIDGET.CELLS" LOC"ARINTMOD.WIDGET.CELLS_TT_TITLE" LOC"ARINTMOD.WIDGET.CELLS_TT_TEXT" LOC"ARINTMOD.WIDGET.CELLS_TT_CHARGES" LOC"ARINTMOD.WIDGET.CELLS_TT_CHARGES_TEXT" LOC"ARINTMOD.WIDGET.CELLS_TT_CHARGES_PRIMED" LOC"ARINTMOD.WIDGET.CELLS_TT_SURGE" LOC"ARINTMOD.WIDGET.CELLS_TT_SURGE_TEXT" LOC"ARINTMOD.WIDGET.CELLS_TT_MALFUNCTION" LOC"ARINTMOD.WIDGET.CELLS_TT_MALFUNCTION_TEXT" Works like a charm!
  9. I'd like to consolidate some in-line strings for widgets and unlocks and whatnot into a localized string table that provides all the miscellaneous text that my mod might need. One, to make them easier to edit down the line if need be, and two... maybe it's a bit presumptuous and boastful of me, but I'm feeling pretty good about this campaign mod I'm working on, and I'd like to make a future potential localizer's job a bit easier. I'm English-only, and I've never written or coded for a potentially multilingual project before. I'm just a bit stumped on the exact method to add an English-version localization file for a mod and then reference it in code.
  10. This is something I've run into with Arint's Strange Chemical as well. Applying a modded battle condition to an enemy, or multiple enemies, creates an extraneous preview arrow.
  11. v1.1.1 - Removed the superfluous settings_patch.lua v1.1.2 - Inherited some of Sal's combat animations onto Arint (for instance, Arint can now use most item cards with their proper animations)
  12. v1.1.0 - The Flourish and Mettle Update GAMEPLAY - Added battle and negotiation flourishes - Added unique cards granted by the flourish Tactical Battery - Appropriator can no longer target support arguments (heckler, FIGHT_ALLY_SCARE, etc.) - Changed the card pools for Spark Arsenal and Spark Authority (to avoid overlaps with flourishes) ANIMATION - Implemented low-health idle animation - Changed Deflect anim from taunt to stunned_pst UI - Composure generated by All Business is applied more consistently if intents were added before your turn - Appropriated's description now lists what argument it contains that will be returned when destroyed - The effect "Deals bonus damage to targets with Strange Chemical" has been consolidated into the feature "Detonator" - Added per-stack highlights to conditions and arguments MINI-BRAWL - Unlocking flourishes is now an option at the start of the run - The mettle merchant is now in the rotation of possible merchants spawned (you do not generate mettle organically at this time, but you can purchase mettle once per run) - Increased number of merchants spawned at intervals from 1 to 2 - Updated boss lists ROOK BOSS DEMO - Removed Rook's pet - Increased Rook's health (from 83 to 140) - Changed Pistol Charges so they no longer boost damage - Rook now has Empty Cells that generate Defense every turn - The Arint VS Rook experiment now loops instead of completing (so you can't use it to cheese the "under 30 minutes" achievement)
  13. Solved with this in the modinit OnLoad: if not TheGame:GetGameProfile().values["unlocked_flourishes"]["PC_ARINT_DEMO"] then TheGame:GetGameProfile().values["unlocked_flourishes"]["PC_ARINT_DEMO"] = {BATTLE = {},NEGOTIATION = {},} end Replace "PC_ARINT_DEMO" with whatever your character's ID is. The problem was indeed a nil value. This makes it function normally. Credit where credit's due: Thanks @codyfun123 for the extra pair of eyes and pointing me in the right direction.
  14. I made the severe mistake of creating and testing flourishes for a custom character... with the "All Unlocks" mod on. Without really understanding what manages whether a flourish is locked or unlocked. Without All Unlocks, pressing the Flourish button causes a crash. What do I need to do in GameProfile to make sure the game knows which flourishes are currently locked and unlocked?
  15. Yeah, but I figure that the modular pieces that go into character and head builds are a lot harder to make a public-facing pipeline for than, y'know, an image with transparency that moves a little bit.