Jump to content

[Mod] Shel's Adventure Expansion Mod Progress (Alpha now Publicly Available)


Playr10

Recommended Posts

Gonna maybe throw in some of my progress in this thread as it comes out. I'm kind of a dumbass when it comes to modding but through sheer will and a single stream of someone modding cards as my guide, I put together a Battle starter deck for Shel. I think it would be interesting to give her a "Leader" sort of gimmick, relying more than other characters on her allies, which she can support in a multitude of ways. Half of her fighting strength will be decided by who you take with you alone. (Of course, the starter deck will be semi-self sufficient due to the fact you likely won't have a lot of allies available to you). Feedback and ideas for Shel-specific battle gimmicks are welcome and encouraged. (Also I plan to make a Shel version of Fight Dirty with Bleed and Combo being replaced when I settle on battle gimmicks).

download.thumb.png.65a30cfee8c5cf08ee742332cc6c039b.png
Link to comment
Share on other sites

I think this is a great idea since I feel like Shel just gets destroyed if she gets into combat instead of negotiation, or perhaps her battle side is a bit incomplete.  The Nature's gift card is interesting and kind of makes sense that she would be friendly with monsters/animals 

1 hour ago, Newbiespud said:

Is that my stream you mentioned? Neat! I didn't think it'd be that helpful! Starting to feel like I should do more.

Also Newbiespud, what's your stream link?  I'd be interested in watching some modding as well!

Link to comment
Share on other sites

My twitch is Newbiespud, but I don't really have a set schedule for this sort of thing, and that modding stream (archived on my YouTube) was initially just kind of a crazy one-off idea. And I feel like it'd be weird to start a topic here on the forum advertising my streams for live modding? I'm just kind of fumbling, copy-pasting, monkey-see-monkey-doing my way through like everyone else, but on the off chance it's helpful and people enjoy it I can see about making it a semi-regular thing.

Link to comment
Share on other sites

Shel's negotiation starter deck is complete. She makes heavy use of arguments, and lacks in focused damage, but makes up for it with her sheer damage potential. Quarrel gives flexibility against different kinds of situations, with Assailing Words being quite helpful against people who make a lot of arguments, Play Dumb giving you the ability to skimp out on defensive options in turn for deploying more arguments, and Perception being an amazing deck guiding tool, but difficult to protect from it's 1 Resolve, as well as the downside of potentially pulling Bravery at a bad time and losing it or being forced to play it. Empty Threat is Shel's main damage source, but will easily be turned against her if you aren't able to protect their 1 Resolve as they add 2 stacks of Vulnerability that don't stack with others (if two threats get destroyed, you'll be taking +2 damage for 2 turns) to you and deal 2 resolve damage to your core argument (I decided on this after recording) if destroyed. Also I think I might like to use Pang later down the line as a way to buff cards that have an effect tied to the amount of damage they deal. Bait makes Shel a god among women so I'll be sure to keep it scarce. All of that aside, I'm more than happy to take any feedback/criticism and ideas for Shel's negotiations.568353614_download(1).thumb.png.844bc6cb800518d360349f5d8e2c6052.png653593604_download(1).thumb.png.ace03ab805cc037259a5bef817710ceb.png

Link to comment
Share on other sites

Yeah, I've been on the fence about whether or not to tune her down, but through a couple hours testing on max prestige, she can pretty easily fall apart and instantly have a quarter of her resolve choke and die in a single negotiation if you're put in a bad spot due to the nature of Empty Threat. This footage makes her look especially powerful since Assailing Words constantly nullifies Prestige 0 Zealot arguments.

Edit: This is because Shel's whole premise relies on keeping momentum on your side and your arguments alive, the moment a Quarrel or Empty Threat argument gets destroyed, you could snowball downhill for the rest of the negotiation

Link to comment
Share on other sites

Hitting all enemies or enemy arguments with anything, even minimal damage, is very very powerful on its own just as a threat multiplier. Getting 3 spread damage for 1 energy and as a 4 resolve argument? Yeah, it might not be impossible to overcome, but it's clearly the dominant choice.

Link to comment
Share on other sites

While it was my intention to make Shel's starter decks decently powerful early on so she wouldn't face the issue of potentially getting destroyed in the first few fights that other characters have (especially since Shel's maxhp is so low), I feel like I accidentally made her way too powerful and so I took a shotgun and a blindfold and started nerfing the good majority of her kit. I'm much more happy with her state now, and also I created her Core Argument: Stalwart - When one of your arguments gets destroyed, heal your core argument by 1.

 
Link to comment
Share on other sites

https://steamcommunity.com/sharedfiles/filedetails/?id=2245060394

It's not showing the mod on the workshop despite me putting it public, but the link works for me and hopefully will work for everyone else. If you find any bugs, balance issues, interesting combos with non-Shel cards, etc. and want to share them, go right ahead and put it under this thread and I'll take a look at it.

Link to comment
Share on other sites

17 hours ago, Playr10 said:

https://steamcommunity.com/sharedfiles/filedetails/?id=2245060394

It's not showing the mod on the workshop despite me putting it public, but the link works for me and hopefully will work for everyone else. If you find any bugs, balance issues, interesting combos with non-Shel cards, etc. and want to share them, go right ahead and put it under this thread and I'll take a look at it.

image.thumb.png.be27e1b40cf93da708e7e9bbc473e88f.png

Looks fine to me.

Link to comment
Share on other sites

32 minutes ago, Playr10 said:

@ZeppMan217 Nice, I've been told that the mod crashes when you try to play it though, and I might not even be able to get to it until tomorrow. Do you have the same issue?

Again, fine on my end. Didn't have any other mods active.
574063138_.thumb.png.dda6052d694590cc871d925f3e5275fa.png

Also, I turned red after using Throw Dust. The redness went away after I ended my turn.

649016027_.thumb.png.7a5d0418c3a5c4fc9cacc9c86a4b44fa.png

Link to comment
Share on other sites

38 minutes ago, ZeppMan217 said:

Also, I turned red after using Throw Dust. The redness went away after I ended my turn.

649016027_.thumb.png.7a5d0418c3a5c4fc9cacc9c86a4b44fa.png

I believe I know what caused this. The game doesnt have an animation set up for shel throwing dust in the way sal has one, so the character turns red to show theres no animation.

It shouldn't affect gameplay too much, although shel doesnt really have many animations to flavor cards like throwing.

Link to comment
Share on other sites

To mildly fix the problem, I have just the patch for you!

Spoiler

local patch_id = "COMPREHENSIVE_ATTACK_FALLBACKS"
if rawget(_G, patch_id) then
    return
end
rawset(_G, patch_id, true)
print("Loaded patch:"..patch_id)

local battle_defs = require "battle/battle_defs"
require "components/animfighter"

local melee_fallback = {
    "slice",
    "swing",
    "slash",
    "smash",
    "crush",
    "stab",
    "punch",
    "bite",
    "whip",
    "poke",
    "cut",
    "claw",
    "attack3",
    "attack2",
}
local ranged_fallback = {
    "throw",
    "blast",
    "shoot",
    "pierce",
    "projectile",
    "spark_canister",
    "grenade",
    "master_blaster",
}
local attacks_fallback = {
    "attack1",
    -- Everyone has a counter, maybe?
    "riposte",
}
local all_fallback = {
    -- Everyone has a taunt.
    "taunt",
}
local extra_anim = {
    blast = {pre_anim = "blast_pre",post_anim = "blast_pst",}
}

local old_fn = AnimFighter.DoAttack

AnimFighter.DoAttack = function(self, attack, screen)
    local anim, presentation = self:GetPresentation( attack.anim )
    local selected_anim_id = attack.anim
    
    if not self.entity.cmp.AnimController:GetAnimInfo( anim ) and CheckBits( attack.flags, battle_defs.CARD_FLAGS.MELEE ) then
        for i, id in ipairs(melee_fallback) do
            anim, presentation = self:GetPresentation(id)
            selected_anim_id = id
            if self.entity.cmp.AnimController:GetAnimInfo( anim ) then break end
        end
    end

    if not self.entity.cmp.AnimController:GetAnimInfo( anim ) and CheckBits( attack.flags, battle_defs.CARD_FLAGS.RANGED ) then
        for i, id in ipairs(ranged_fallback) do
            anim, presentation = self:GetPresentation(id)
            selected_anim_id = id
            if self.entity.cmp.AnimController:GetAnimInfo( anim ) then break end
        end
    end

    if not self.entity.cmp.AnimController:GetAnimInfo( anim ) and CheckAnyBits( attack.flags, battle_defs.CARD_FLAGS.MELEE | battle_defs.CARD_FLAGS.RANGED ) then
        for i, id in ipairs(attacks_fallback) do
            anim, presentation = self:GetPresentation(id)
            selected_anim_id = id
            if self.entity.cmp.AnimController:GetAnimInfo( anim ) then break end
        end
    end

    if not self.entity.cmp.AnimController:GetAnimInfo( anim ) then
        for i, id in ipairs(all_fallback) do
            anim, presentation = self:GetPresentation(id)
            selected_anim_id = id
            if self.entity.cmp.AnimController:GetAnimInfo( anim ) then break end
        end
    end

    if selected_anim_id and extra_anim[selected_anim_id] then
        for id, data in pairs(extra_anim[selected_anim_id]) do
            attack.card[id] = data
        end
    end
    if selected_anim_id then
        attack.anim = selected_anim_id
    end
    print("selected anim id: " .. (selected_anim_id or "nil"))
    -- TheGame:GetDebug():CreatePanel(DebugTable(attack))
    return old_fn(self,attack,screen)
end

 

I made this when making my character randomizer mod(which is on steam workshop, btw, please check it out if you haven't) to deal with the same issue. The game does have an animation fallback, but it's very basic(replace melee attacks with "punch", ranged with "shoot", and others with "taunt"), and not every character has a default. With this, any card with a non-existent animation will try to fall back through a list of available animation until they find one, and they WILL find one because the last one is "taunt" where every character has.

Of course, some animation might not make sense, such as where the normal spree thug does a ranged attack, they will taunt because they don't have a ranged by default. Still, it's 10000x better than a red mask all the time.

The smart decision is obviously to actually add a standard anim for every character, but this is the convenient one, because I already did it.

I might make a repo to keep track of a list of patches that I made to fix the game's functions, or expand upon its functionality.

Usage: Copy and paste the above code onto a new file(otherwise the code might break due to lua treating files like functions) and call the file using "require".

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...