Applied Energistics 2

Applied Energistics 2

172M Downloads

Creating a Blood Magic Meteors [AE2 cross-mod interaction]

wrincewind opened this issue ยท 2 comments

commented

hi team,

I'm currently working on tweaks and improvements to Blood Magic 1.20, in preparation for a potential upcoming 1.21 version that some members of our community are working on.

One of the features of Blood Magic is the Mark of the Falling Tower, an end-game ritual that allows for players to spawn meteors to come crashing down from space. Of course, there's an obvious overlap with AE2's meteors.

In previous versions, our version of the ae2 meteor contained useful ores for Applied Energistics - nether quartz, certus quartz, and charged certus, along with a chance of fluix blocks and quartz blocks (both certus and nether). However, since the update to how meteors work, particularly the introduction of budding quartz and the Mysterious Cube, we've been having a hard time deciding how we'd want these 'renewable' (albeit expensive, end-game) meteors to work.

So, i figured the reasonable thing to do would be to come here and ask the team. Should we allow players of blood magic the ability to generate flawless budding quartz? or only flawed and below? What about the Mysterious Cube, or the other items such as fluix blocks?

Additionally, what're the current % likelihoods of any given block of budding quartz in an ae2 meteor being plain/damaged/chipped/flawed/flawless?

If you've no strong opinion one way or the other, feel free to close this, and we'll probably go with our best guess at the right ratios, but I figured it was worth at least reaching out for your opinion on the matter.

Hope to hear from you soon!

commented

I'm not speaking for the entire project here, just adding my thoughts as a someone who fixes some of the bugs around here. But since the devs are quite busy usually it might take a while to hear from them. You might want to try to contact them on discord though.

The relevant code you're looking for is here: https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/main/src/main/java/appeng/worldgen/meteorite/MeteoritePlacer.java#L249

                                var certusIndex = random.nextInt(quartzBlocks.size());
                                this.putter.put(level, pos, quartzBlocks.get(certusIndex));
                                // Add a bud on top if it's not a regular certus block (index 0), and not the center.
                                // (70% chance)
                                if (certusIndex != 0 && (dx != 0 || dz != 0) && random.nextFloat() <= 0.7) {
                                    var bud = Util.getRandom(quartzBuds, random);
                                    var budState = bud.setValue(AmethystClusterBlock.FACING, Direction.UP);
                                    this.putter.put(level, pos.offset(0, 1, 0), budState);
                                }

You can see that it is an equal chance for any of the certus block qualities to be placed inside the meteorite. The list of certus block qualities is generated here: https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/main/src/main/java/appeng/worldgen/meteorite/MeteoritePlacer.java#L105

    private List<BlockState> getQuartzBudList() {
        if (AEConfig.instance().isSpawnFlawlessOnlyEnabled()) {
            return Stream.of(AEBlocks.FLAWLESS_BUDDING_QUARTZ).map(def -> def.block().defaultBlockState()).toList();
        }
        return Stream.of(
                AEBlocks.QUARTZ_BLOCK,
                AEBlocks.DAMAGED_BUDDING_QUARTZ,
                AEBlocks.CHIPPED_BUDDING_QUARTZ,
                AEBlocks.FLAWED_BUDDING_QUARTZ,
                AEBlocks.FLAWLESS_BUDDING_QUARTZ).map(def -> def.block().defaultBlockState()).toList();
    }

So flawless is getting a 20% chance unless you changed the config to only ever spawn flawless which is probably not the default.
Sidenote: This reveals a small bug. If you enable that config setting to only spawn flawless you will never generate any buds on top since flawless is the only entry and has the index 0 which the code above always interprets as regular certus that should not generate buds.

The mysterious cube is an object that you need to find only once. Unless you somehow lose your presses you can duplicate them in the inscriber to scale up your processor production with more presses. Afaik they also are used for the meteorite compass to lock on to. Have you thought about how your meteorites should behave in regard to the compass?

As for the non-flawless certus variants: These are effectively craftable once you get started with AE2 so they should not influence balance significantly. Basically you could consider them resources for one-time use as they can be used as regular certus.

The most interesting point which you correctly identified is the flawless variant, as in vanilla AE2 you cannot obtain them other than finding them in meteorites. To find more you'd have to invest time to explore more of the map and carefully move them to your certus farm. There are however some points you could consider that make that balancing issue less critical:

  • in larger mod packs, certus quartz generation often has alternatives, e.g. productive bees, mystical agriculture or sieving, sometimes replacing the need for certus quartz farms altogether
  • you said that in blood magic the ritual is end-game and expensive. This means time has been invested elsewhere and maybe giving a player the perks is warranted because of that
  • finding a few flawless blocks is not that hard, it usually takes only a few meteorites which are probably not that hard to reach. After that it is just a question of scaling up, not of reaching the first flawless anymore and that does not make that much of a difference. At some point there are diminishing returns from adding more production to your farm I'd guess. You still would have to move the flawless blocks to your certus farm though and expand that which will take some effort before you can benefit properly from the flawless blocks you'll spawn with blood magic.
  • meteorite generation in AE2 can be considered renewable as well if you have jetpacks, waystones etc and use them to explore the map further and further.

You mainly need to decide what you want to give to the player. You can either give them a certain amount of resources once (such as certus quartz, nether quartz, fluix blocks etc) or you can give them a way to generate the resources over time indefinitly as they are renewable by being harvested from the flawless budding certus quartz. Maybe if the ritual is renewable and the benefit is renewable as well this is overkill from a balance point of view.
Maybe some further questions can guide you in the right direction:

  • What does renewable ritual mean exactly, i.e. what is the recharge time between two invocations?
  • How much player interaction would be necessary to trigger the ritual or would it be fully automatable?
commented

Hm, good things to think about! Thanks.

So, to start with the questions at the end:

  • currently the ritual requires 108 blood runes, 1,000,000 LP to 'prime', and 500,000 LP to summon a meteor. This depends a lot on the player's setup, but even with an endgame setup and modded spawners supplying the Well of Suffering, we're talking closer to 'minutes' than 'ticks'.
  • Meteors are summoned by dropping a piece of certus quartz atop the Master Ritual Stone. After this, there's a short pause before the meteor 'lands', causing an explosion, then it can be mined. However it needs at least one block somewhere in the air above the ritual to 'catch' it, otherwise it will crash into the ritual and destroy it. So to automate this, you'd need to mine it, somehow automatically move the pure budding certus clusters, and replace the 'catching' block. so, possible to automate, but definitely not easy. (The last time i tried automating this myself i tried using blood magic rituals, and ended up taking the easy route and using two RFTools Builders - but that doesn't cover moving the budding blocks.)

I think we'll go for allowing flawless crystals, given the challenge of 1) summoning the meteor in the first place, 2) building the ritual, 3) the difficulty in automating the setup, and 4) if additional mods are present to make any of 1-3 easier, it'll also make hunting for meteors easier. I particularly see this as being useful on larger multiplayer servers where finding a nearby meteor may be challenging.

We'll skip the mysterious cube (if you have the quartz to summon a meteor, you've already found one, after all, or bargained with a friend for one) and have the inside be equal weightings for each kind of budding quartz (including certus blocks), then a 1 block air-gap, then a shell of quartz blocks (nether/certus/fluix, again, equally balanced), then an outer housing of skystone with some of the above scattered throughout.

if anyone seeing this later thinks it's wrong, feel free to re-open - or open a report on the blood magic github - or talk to us at our discord.