tukkek / javelin

Party-based roguelike (open-source strategy-RPG game).
https://javelinrl.wordpress.com/
67 stars 7 forks source link

Haunts #33

Open tukkek opened 7 years ago

tukkek commented 7 years ago

Can probably think of a better name, not be confused with Pathfinder haunts. would be cool to have some thematic dungeons (acting like temples, or simple fights) All monsters inside are affected by a template or of a certain type all encounters are of a fixed level once you destroy the boss (harder encounter), the dungeon is removed hard fights that reward you with an extra ruby? all are static difficulty to form garrison: just pick eligible creatures at random until target EL is reached would be cool to have custom maps too and stuff like multiple waves, etc

tukkek commented 7 years ago

Abandoned Manor (ghosts) Ravenkeep (vampires) Graveyard (skeletons and zombies) Abyssal rift (demons) Sunken ship / underground cave (aquatic type) Wind-filled tunnels (only lovecraftian horrors, could have EL-1 but chance of causing fear) gate of heaven (celestials) Pharao's tomb (desert/egypcian types) Glade (only animal types) labyrinth (minotaurs, maybe take 4 days to explore, reduced by intelligence test?) palace of dreams (astral beings) sunken ship (undead + sea animals) mushroom village (faeries) orc outposts (goblinoids) shaterred temple (extraplanars) Vault 17 (bizarre, mutated creatures) vermin pit (insects) elemental nexus (fire, earth, air and water-based elementals)

tukkek commented 7 years ago

after battle they are destroyed would be awesome to have 20 of these, 5 for each tier, 1 for each EL this ensures good balance if they are all put in the world map with this it would be possible to create a mini-game as well, where you fight each level in sequence though each tier is randomized since on tier it could be an encounter for level 1-5 the minigame would have to be separate from the world quest though

tukkek commented 7 years ago

The locations for thematic battles could benefit from elven/dwarven/halfling/etc etc lairs. Once vanquished they can hire mercenaries from there. This could benefit from better kits - search through more DND and PF classes, wizards schools, etc. this way we can advance the creatures

tukkek commented 7 years ago

Haunts should not necessarily start immediately, allowing for more tactical scenarios. Maybe in some, all waves are placed initially but some are only activated when visual contact is made (or perhaps by rolling hearing rolls, etc). All in all, some Combatants would be "freezed" at ap=Float.MAX_VALUE initially.

tukkek commented 7 years ago

Haunts need to be handled especially in strategic combat, regarding multiple waves. May need to delegate to Fights and possibly even to Locations too.

tukkek commented 7 years ago

First haunt should probably be level 1 and added to the starting location (can be randomized once there are more low-level haunts - as long as it's a very early game location).

tukkek commented 7 years ago

If there are multiple teams implemented (a base requirement for multiplayer), one of the haunts could have pacific, neutral units emerging together with hostile units, creating a unique, dynamic scenario. It would also open up possibilities of haunts and locations with allied teams and more. This can also be achieved with Automatic temporary units added to the player's team.

For example: if would allow for players to start against a first wave (or even two at once) but have the possibility to reach an area and spawn allies.

tukkek commented 7 years ago

Haunts probably should start with a full-screen (or in-browser) flavor text and explanation of the rules for the current scenario. Time-based, wave-based and area-based mechanics should be quantified and detailed (for example if a single unit should stand on an area to activate or all have to be present, etc).

The Battle Screen would do well to delegate drawing tiles to a Map, because this way Haunts could more easily draw different tile types to represent certain areas.

tukkek commented 7 years ago

If haunts are based on templates, would be pretty cool to allow that template to be applied to your monsters after it has been captured. Not sure if that makes them a permanent location or just offer it as a one-time offer. The creature either must have the XP to spend as an upgrade or maybe have the XP won for the fight be spent applying templates instead (would be interesting to even have more than one template per haunt in this case?).

If this doesn't work for haunts might need to make a subtype or new location type instead focused on templates.

tukkek commented 7 years ago

WH40K fan-made missions have some interesting ideas for spicing up Haunts:

https://creativetwilight.com/warhammer-40k-custom-missions/ https://www.dakkadakka.com/wiki/en/Custom_40k_Missions

tukkek commented 7 years ago

A rudimentary first version of some haunts is getting into 1.7. In particular, their maps could be improved with some custom tiles. They also need more work to reflect their true vision described here of being really unique fights, with possible custom objectives and combat phases but at least they're sporting unique maps and roster of opponents right now, which is hopefully fun enough to start with.

tukkek commented 7 years ago

Haunts would make for perfect recruiting locations for sets of unique units (like a goblinoid village). Would be pretty simple to implement too. Maybe make it generate a single Monster that can either be hired or recruited - depending on the type of creature generated there is a delay, equal to that of a Dwelling delay with the initial delay being 2d6 days. A maximum of 5 creatures sounds fine, with older ones being replaced at random in case of an overflow.

The location itself could be pillaged for 1 ruby.

tukkek commented 7 years ago

Some haunts would make for good (pre-captured) district buildings. For example: Graveyard would make for a nice Religious/Criminal location.

tukkek commented 7 years ago

locationabyssalrift abyssal rift locationchurch abandoned church (can be used as Heaven's Gate)

tukkek commented 7 years ago

A cool idea for some haunts (or at least Haunt-like fights) would be to have a setup phase where the player chooses which units will start in which area of the map. A castle, for example: the roof would be attacked by flying creatures, the basement by underground-types and the front by a large number of lower-level units.

tukkek commented 6 years ago

Wizard's tower (hill or mountain): composed of a number of floors. Generates them in advance with the purpose of being a total of 100% resource depletion for a party of the haunt's Encounter Level (6-15). Follow the order (from easiest to hardest).

In-between the first and last encounters the player is given the option of having an extra encounter (guards/dogs only) in order to free the wizard's prison. If so, the EL is the same as the prisoners themselves (equal to one of the non-final encounters) and upon winning they will join the party for the rest of the haunt.

After each fight the party may choose to leave, but that will regenerate all encounters (not prisoners though, they are a one-time opportunity only). Winning all fights grants 2 rubies (besides common fight rewards). Would be cool if second and third tier fights could possibly reward an item instead of gold (as in dungeons).

Encounters probably shouldn't be regenerated, as it doesn't make much sense guards and apprentices could be replenished so easily. Maybe instead only give a chance of being able to leave the tower mid-run, with a 5-95% chance based on the worst Stealth of the group. On fail, just proceed to the next fight anyways (you were intercepted as tried to backtrack your way out!).

How to show the appropriate difficulty on hovering the mouse / entering the haunt? Maybe base it upon a calculation of predicted resources spent, since it's hard to just give an EL for a sequence of fights?

tukkek commented 6 years ago

Would be cool if some haunt locations could be restored by using rubies - shattered temple could become a Monastery; a witch's hut could become a shop, etc.

tukkek commented 6 years ago

Overrun prison: hallway-like map with doors, from which the waves come from, one enemy per door. Probably only intelligent evil monsters of low-to-mid CR.

Maybe this Haunt just keeps spawning enemies until the players can destroy a passive Gate blocking the exit (no fleeing allowed).

tukkek commented 6 years ago

Instead of being sent wave-by-wave, it'd be good to decouple the Arena's Tension Director to roll in the next wave as soon as a low-enough tension level is achieved. That way, all the new Haunts have to do, pretty much, is set up its waves before-hand and just consult the director before placing them on the map.

tukkek commented 6 years ago

Battlesphere: a passive Sphere spawns a new monster whenever its HP reaches full capacity. Might start with a few spheres. Ideally they're not destroyed, so the Location becomes hostile after a season or so, on a higher power level.

tukkek commented 6 years ago

Forge: a map with cauldrons of molten metal that damages everyone around them when hit (passive Combatants who cause this effect on Combatant#die(), so as to be reachable by the Battle AI). Should be a low-to-mid level fight with intelligent creatures on a map that makes staying away from the cauldrons a difficult proposition. No gold is given but an Artifact instead.

tukkek commented 6 years ago

Slope: mountain Haunt where all combatants are moved south every turn (to an amount dependent on size and Acrobatics) and fall off the map if they go beyond the edge. Allies don't necessarily have to die, just take fall damage and be removed from combat (fleeing, not dead).

This is tricky to do with the Battle AI. It's easy enough to add a startturn(Combatant,BattleState) method but that doesn't guarantee the AI will think that far to prevent losing units. Adding some form of per-Fight utility calculation is probably very prone to misuse and difficult balancing as to rather not have it at all.

Am alternative would be to have the fall only apply to non-flying creatures and select only flyers for the enemy team. This would probably merit a +1EL adjustment.

Passive Boulders could also be falling down erratically (1 square each .1 to .25ap), dealing minor damage and pushing Combatants 1d4 steps downwards.

tukkek commented 6 years ago

Encampment: basically a Fight against a powerful chieftain, with maybe two tiers of fodders coming in throughout (as simple as selecting two types of creatures and spamming them when Tension drops too low). Preferably only intelligent, humanoid enemies, without any weird Monster types

Could be placed on Plains. and use a normal map, but removing all obstructions and adding 2d4 2x2 to 4v4 rectangular groups of tents instead.

tukkek commented 6 years ago

Tomb: a small space with a few powerful undead units (maybe 3-4).

Pyramid (desert): a large space with full tiers of undead creatures (possibly animals too).

tukkek commented 6 years ago

Sunken city: tier 4 encounter on a non-shore water tile. Entire map flooded, possibly with "underwater" Fight effects.

Can generate either a large group of mid-tier aquatic units, a few very strong aquatic units or a mixture of both.

tukkek commented 6 years ago

Chaos vortex: only chaotic creatures, terrain changes each 1d4 turns. Pick any Terrain and any map as a base, and just regenerate it with each change.

tukkek commented 6 years ago

If haunts ever get too many for the main World, might transfer some to Planes #91

tukkek commented 6 years ago

A cool mechanic for the Graveyard fight would be to produce less enemies and just have them revive 1d3-1 times each before the battle is over. This should be easy enough to do given an EL (and necessary for other Haunt ideas here), since each -2EL doubles the number of encounters that can be taken in a row (EL-0 being 100% resources used, EL-2 being 50%, etc).

tukkek commented 6 years ago

Battles on ice or shifting sand might require an Acrobatics check or have units fall Prone (done for everyone once per round). This might make for a cool Fight, especially against enemies who either already have good Acrobatics or can ignore the checks due to flying (remember to adjust EL though).

tukkek commented 6 years ago

Similarly to the arena, a haunt could have a number of fragile structures that can be destroyed by the spawning enemies. Whatever the result, gold and experience are rewarded normally but haunt benefits as a Location are based on how many structures were preserved.

The same can be done inversely: a fight where waves keep incoming until you destroy all structures.

tukkek commented 6 years ago

Autodromum: fight a powerful golem and his minions. The golem may randomly change teams but usually prefer to fight the player. Winning yields no loot but the golem joins the party as a normal character.

tukkek commented 6 years ago

Volcano: strips of lava in the battlefield cause damage to creatures (probably requires some Fight<->BattleState interop so the AI will understand it).

Unstable cave: every turn either small rocks fall causing minor damage or a big rock falls causing massive damage.

Surrounded city: player reward is measured by how many friendly "civilian" units survive. Civilians are controlled by the Fight to move randomly/cautiously in panic, always 1 AP ahead of active Combatants. Should be easy to also add the opposite scenario if players want to be evil and attack the city instead.

tukkek commented 6 years ago

At some point should become easy to abstract at least some of Haunt Fight's mechanics, so that it's easy to mix-and-match between them (and offer them on mini-games, multiplayer, etc).

tukkek commented 6 years ago

Pier: a "horizontal" bridge surrounded by water to the top and bottom, with 1d4 waves of intelligent aquatic monsters rising from the water. HIgh-level encounter (11-15).

Is that unique enough to make it different from the Sunken Ship Fight? If not, could further differentiate the Sunken Ship by making that Fight alternate between full-water and boat-surface with each round (simulating crashing, periodic waves).

Once cleared up, it'll offer one of these services (decide which is more interesting and pick one): summon a boat for 1 ruby at any time, rent a boat (basically make it a boat-only Hub) or give a free boat once and then remove the location from the map. For this reason, this needs to be placed on a Water tile, next to a shore - should also be easy to verify it it's within 2-3 tiles of the map border so it's not place on a lake/river.

tukkek commented 5 years ago

Haunts should probably become scaled encounters that spontaneously regain garrisons once a month (1/30 chance), as long as they haven't been been captured by an Incursion. This allows them to be farmed and remain relevant n the long-term. If scaling is too meta-gaming, they could gain +1d4 EL per clear.

As such, it should be possible to either define Haunts based on a list of monsters, as done today, or a more generic pool of monster type (say: undead or demons). A subsequent task would be to have one Haunt per type; then per subtype; etc.

Their respawning nature would allow them to be more than a one-time fight, thus justifying their placement in the Wold map and also for them to be "farmed" like in MMORPG raids. The rewards would be gold and XP as usual, plus a one-time-per-clear offer of either recruiting an Easy ally or hiring a Moderate band of mercenaries from said pool (relative to the Haunt EL, not Squad EL).

When an Incursion captures a Haunt, they add the mercenary group to the garrison and its one-time reinforcement use is spent, requiring the Haunt to be recaptured and then for another respawn to enable the hiring mechanic again. As long as a Haunt has a garrison, it will not respawn spontaneously and replace said garrison.

tukkek commented 5 years ago

(post 2.0)

Haunts could not only pop up an independent battle against Incursions (which the player controls) but also defend an area around it against incursions as well.

[2:00 PM] Kylelopezwms: You could make the camera show your haunt, and a text saying "you have x units garisoned in this haunt, do you want to defend X location from invasion?" [2:01 PM] Kylelopezwms: As well as an explination on the haunt that tells you you can garison the haunt to protect buildings next to it

City garissons could work the same way.