golem quest balance request

Issue #7419 wontfix
Limaximus Lamb created an issue

500 rep with a random faction is markedly worse than using a few schrodinger pages before crafting your golem, because schrodinger pages can be duplicated and flexibly used, while the golem slot is fixed and permanent. this updated effect is closer to what figurines do in game, but very few items used as hamsa are this close to being 1:1 with their item effects. with it being what it is now, it feels like it would see extremely fringe use, if any. it's really disappointing to me as an early alpha/beta player, knowing that the systems to make it an interesting and useful hamsa have already been made, but have been removed… it just leaves a bad taste in my mouth. my proposal would be to either:
A) revert the systems to previous behavior, coinflips and all. while not ideal, if the current effect is the best fix for it, we are better off with what was there before.
B) have each figurine roll a single, fixed mutation from the corresponding creature (barring night and dark vision) when obtained. this way there's no RNG in the moment of creation, the player can only get a maximum of one mutation, and can foresee the exact effect it will have on their golem.
C) if the above options are not possible, please release the source code for the original figurine hamsa effect, so that it can be modded in by players.

Comments (5)

  1. Jason Grinblat

    this is sort of just a function of early beta testing. we'll try to expose as much as we can to modding at some point

  2. Limaximus Lamb reporter

    🙏 i’ll eagerly wait for the day
    hope that the systems becoming moddable makes it into patch notes.
    thanks for your and the rest of the team’s hard work!

  3. Armithaig

    It’s not _un_moddable at the moment, you can extend the unit dictionary of each golem selector (e.g. hamsa is GolemHamsaSelection.Units) in a mod sensitive cache init

    Here’s the original figurine effect, it just queries the atzmus for its units

    private static IEnumerable<GameObjectUnit> UnitFigurine(GameObject Object)
    {
        yield return new GameObjectAttributeUnit { Attribute = "All", Value = 2 };
    
        if (Object != null && Object.HasPart(nameof(RandomFigurine)))
        {
            var atzmus = GolemQuestSystem.Get()?.Atzmus;
            if (atzmus != null)
            {
                foreach (var unit in atzmus.YieldEffectsOf(Object))
                {
                    yield return unit;
                }
            }
        }
    }
    

  4. Log in to comment