Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Strive: Conquest

A successor to first Strive For Power game, currently at alpha stage · By Strive4Power

Loyalty gain stops working.

A topic by Kaito707 created Oct 28, 2022 Views: 686 Replies: 4
Viewing posts 1 to 4

It seems at random, when you praise your companions, they eventually stop gaining loyalty points. I understand that it's suppose to only be gained once a day with skills, but this will happen after say day 3 and you try again day 4 but it claims that "loyalty has already increased for that day."

If you can provide a save with replication or console errors it would help a lot

I haven't verified in the latest version, but at least as of a few versions ago, using multiple Loyalty-gaining abilities on a character in one day could cause the "already gained loyalty today" flag to be set multiple times.  Then when the day ticked over, one of those flags would be cleared, but not all of them, so the game would still think that they had gained loyalty the current day (and if you tried again on the new day, you'd end up adding *another* flag).  

You can potentially clear the flags by waiting multiple days without attempting to use any Loyalty-gaining abilities on that character (I believe abilities that change their loyalty gain rather than giving a lump sum of loyalty are exempt, so you can potentially use abilities like Serve/Allure to keep their obedience up).  Or you can clear the flags by mucking around with the save file, which is how I discovered that this was happening...  <.<  >.>

@Strive4Power suggestion:  maybe have some UI indication of whether or not a character has gained Loyalty today?  Nice game, btw.  

I also noticed this exact same behaviour. Annoying especially if you use the full mansion skills for obedience, but want to use more loyalty rewarding skills on the characters that need training, as it basically means you lose a day of training for them.

(1 edit)

In the file src\core\game_party.gd around line 20 replace


func advance_day():
    update_global_cooldowns()
    for i in characters.values():
        i.tags.erase("no_date_day")
        i.tags.erase("no_loyalty_gain_temp")
        i.cooldown_tick()
        i.process_event(variables.TR_DAY)
        i.quest_day_tick()



with 


func advance_day():
    update_global_cooldowns()
    for i in characters.values():
        var numt = 0
        for t in i.tags:
            if t == "no_date_day":
                numt += 1
        while numt > 0:
            i.tags.erase("no_date_day")
            numt -= 1
        for t in i.tags:
            if t == "no_loyalty_gain_temp":
                numt += 1
        while numt > 0:
            i.tags.erase("no_loyalty_gain_temp")
            numt -= 1
        i.cooldown_tick()
        i.process_event(variables.TR_DAY)
        i.quest_day_tick()


The original code only removes 1 instance of "no_date_day" and "no_loyalty_gain_temp" per day. This updated code will remove all instances.