another one IVAN fork

Jan 26, 9:50 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
first, i stand corrected: such color removal is done only for melee weapons — that game has special flag to control this. and it indeed checks for zero secondary volume material. i implemented new item property `ForceAllowRegularColors` to override this.

second, i implemented automatic item outlines, because maintaining two tile images is boring. now item has `DrawOutlined` property, which can be set for any individual item, regardless of item graphics. it not only gives better control of outline creation, but also allows to omit outlines for items which already have them (staff of smell, for example). i mean, the game automatically turns off outlining for such items, there is no need to do it in script files.
Jan 26, 11:44 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
vasiliy wrote
by the way: is it possible to kill the stupid kid (or wait for him to be killed), carry his body to the exit, and resurrect him? escort missions sux, especially with this dumb m… mighty future king!

Yes.

It should not be you who kills him (that makes his friends in both Aslona Castle and Rebel Camp hostile), but if you let him be killed, take his body and later resurrect him, everything is fine and dandy.
Jan 26, 11:53 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
vasiliy wrote
and by the way… thank you all once more for Aslona route! i guess it's mostly red_kangaroo's work, right? (i haven't looked at git logs, it's just a wild guess). anyway, thanks to everybody involved. i like it so far, and for me it feels like an integral part of the game, made with "IVAN spirit" in mind. i haven't played it much yet, though — mostly because i am too lazy to sail to Aslona. (i REALLY need to implement auto-travel!) yet ~1/6 of my games is Aslona route. cannot say anything about balance, because i never even made to Oree without WM, but i managed to explore starting levels of GF and FC before having my ass handed to me, so they at least as playable as other parts of the game.

Thank you very much. Yes, Aslona is basically mine.

Note that the three dungeons (GF, FC, PY) were made with the assumption that the player will be jumping between them, not doing one at a time. Difficulty jumps between floors are BIG and you need to weigh your options where it's safest to proceed with your current equipment.

vasiliy wrote
p.s.: we need to replace player's icon with a ship icon while sailing. sadly, i cannot draw even to save my life.

That was my intention, too. Then I got... lazy.
Jan 26, 11:55 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
I really want to have enough time at my hands to merge k8IVAN code back into vanilla.
Jan 26, 2:32 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
got the icon (don't ask me, it wasn't made by me! and no, it's not a floating egg!), and put it inside. now we are sailing on… ahem… floating egg, i guess.
Jan 26, 2:39 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
red_kangaroo wrote
Note that the three dungeons (GF, FC, PY) were made with the assumption that the player will be jumping between them, not doing one at a time. Difficulty jumps between floors are BIG and you need to weigh your options where it's safest to proceed with your current equipment.
hm. thank you, because this is something i never considered. i mean, if i enter the dungeon, i usually go deeper and deeper until i die. it's not a criticism, though — this is just how i'm playing.

that is, i never won any game exactly because of my playing style. i basically know how to proceed, but prefer to play IVAN as an action game, not as game of balance and tactics. and IVAN is more like chess actually, so running around all swords blazing ends quick. but that's how i'm having fun.
Jan 26, 2:52 pm
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
red_kangaroo wrote
I really want to have enough time at my hands to merge k8IVAN code back into vanilla.
oh… it wouldn't be that easy, i think… it is quite easy for me to move some code from vanilla, but moving all k8IVAN improvements back is… problematic, i believe. there are a lot of subtle changes all over the codebase, and almost all the code is heavily reformatted (and sometimes rewritten). just enough to defeat most attemps at diffing it. i prolly won't even be able to do that myself.

tbh, i believe that it would be easier to take k8IVAN as a base, and port missing vanilla features to it. not THAT easy, tho, because i missed most vanilla bugfixes over all those years, so it will still require a lot of work. and some basic systems were heavily rewritten (pool manager, tile manager, etc…).

i always intended k8IVAN to be the base of new vanilla — achieve feature-parity, so you'll be able to just switch codebases. but real life issues stopped me before i could reach that goal, and now is prolly too late for that.
Jan 27, 12:39 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
i cannot see why we can drink potions in wilderness, but cannot open chests in our inventory. maybe devs had some plans for that, but for now i believe that this should be enabled.

also, i will prolly turn "Go" command to auto-trevel in wilderness. choose any POI you know about, and your char will automatically go/swim there.

and i realised that i need a separate "on the ship" flag. because having a ship and a belt of levitation means that the player is considered to be on the ship each time he is flying over the sea. by the way, isn't belt of levitation overpowered? maybe it should allow to travel only that far into the sea before ceasing to work? i mean, if you're too far away from any land square, the game will print something like "you are too scared to fly further", and refuse to go.
Jan 27, 1:10 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
btw, i don't remember if i already mentioned it, but k8IVAN will try to automatically apply the proper key when opening a closed door before kicking it. actually, the game goes through all available keys, asking (via a new method) if the door could be opened with each one. besides being nicer to doors , locking doors has one more use in k8IVAN: the player can rest in small empty rooms even if panicked. locking the doors will ensure that no monster will come to say hello.

and… scroll/wand of lock creation? pretty useles, and should prolly be cheap, but may save your ass if you are paniced and need some safe place to rest.

people, if you are reading this, feel free to comment on my ideas! i sux at game design (at any design, actually), so i'd love to hear your thoughts. or even your crazy ideas. not that i'm out of things to do (you'd better don't look at my TODO file, it's HUGE , but if you'll tell me about your ideas sooner, it may shape the code in a specific way to make implementing them easier.
Jan 27, 1:47 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
also, i will prolly partially revert the change to Siren logic from vanilla. having Elianise to sing to you and take your stuff in Cathedral is so… "ivanly". i bet nobody cares if she takes some stuff from a dirty peasant. it is IVAN after all! the player will quickly learn to avoid her; she stole my stuff more than once, and that was… frustrating, but fun. i knew that i have to avoid her, so it is my punishment for being careless.
Jan 27, 1:58 am
Joined: Dec 19, 2018
Occupation: Pharmacy Tech
Location: USA
Interests: ZZT, Roleplaying,
Posts: 59
vasiliy wrote
by the way, isn't belt of levitation overpowered? maybe it should allow to travel only that far into the sea before ceasing to work? i mean, if you're too far away from any land square, the game will print something like "you are too scared to fly further", and refuse to go.

The belt is unique so I don't think it's overpowered unless it can't be broken/destroyed. Going to all that work to balance it...imvho, better off spending your mental energy elsewhere.

vasiliy wrote
people, if you are reading this, feel free to comment on my ideas! i sux at game design (at any design, actually), so i'd love to hear your thoughts. or even your crazy ideas. not that i'm out of things to do (you'd better don't look at my TODO file, it's HUGE , but if you'll tell me about your ideas sooner, it may shape the code in a specific way to make implementing them easier.

Ok! You want ideas? You GET ideas:

-Artifact staff with once-a-day polymorph ZAP. Either just rare as hell generated or carried by a unique wizard.
-The first level of a Dwarven city/mine, enabled on the worldmap after speaking to the representative in the cathedral. SPOILER ALERT. Click here to see text.
If you bring back the zombie of khaz-adam in his 'true' state (not hostile or extra-zombified via revival with a Wand of Necromancy) or the scrolls/copied message from the 'betrayal' location and speak to the Dwarven captain of the guard, this brings about a couple screens of text and an ending where you're recruited into the Dwarven army that rapidly begins forming to flatten Attnam.

-A worldmap location SPOILER ALERT. Click here to see text.
where Sir Galladon betrayed and murdered the two delegations
that should not have much of immediate value - rusted/broken/burned items, some bones, and perhaps a 'cave' leading to a second level. SPOILER ALERT. Click here to see text.
This can in turn contain scrolls or engraved messages on the floor that when stepped on/read will allow the "Vengeance" ending
. It's location can be revealed after speaking enough times to a friendly unique zombie or by reading a unique 'tattered scroll' it carries that has a minimum INT score to decipher the faded writing.

"Hearthfire, IVAN edition":
---Basic: Pay dowry, get girl with unique dialog, decorate her change her gear if you like as any other friendly NPC, but she always runs from combat.
---Intermediate: More than one potential spouse and the actually helpful ones also have INT/WIS/CHR requirements. 'Helpful' spouses remove hunger/tiredness/panic 1x/day. Orphaned children can be adopted off the street if given food items.
---Advanced: You have to buy an empty house from an NPC outside it and craft several furniture items before you're even allowed to try to get a spouse or adopt kids. Extra dialog from your spouse/kid if they are both on your 'team'. If your alignment is more than mildly chaotic, nobody will marry you or let you adopt them!

Expanded Attnam
- Extra rows of houses and a 'marketplace' of themed vendors with tiny stalls - bakers, butchers, locksmiths, carpenters, chandlers, go nuts!
- Public tavern with booze aplenty and beds for rent.

"BOOM, baby"
-Have a way to activate the thaumatic bomb
---Basic: it detonates immediately after activation with a unique endgame screen and a snarky death message.
---Intermediate: it activates but doesn't go off until you leave the current location (and you can't activate it while on the worldmap). Endgame screen with message that you flee to the ends of the earth to avoid being found out.
---Advanced: Detonation occurs as per Intermediate, but there are unique messages depending on what dungeon/location you light the thing off, with negative score multipliers for blowing up a place with innocent people.
---Super-advanced: as above, but you aren't allowed to activate the bomb in the first place if your spouse/kids are on the same map and don't have the "follow me" command enabled....unless you've turned Chaotic in the meantime, you utter bastard you.
Energizer - you are invincible
ZZT @narchists unite! Turn off the dark, get free money, defeat death itself!
Jan 27, 2:27 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
thank you! the new dungeon sounds interesting… but i need someone to create the scripts. i can add required things on C++ side, yet creating dungeon scripts is something completely different. i cannot even imagine how red_kangaroo managed to pull off that trick without any tools better than text editor. but i like the idea, and maybe one day i'll try it.

the staff is easy to do, and we can give it to Izzy as unique weapon instead of boring plain enchanted staff.

as for belt of levitation… i simply don't feel it right. besides, the belt is relatively easy to obtain (there are at least 3 ways to get it). checking distance to the nearest land square is not hard, the code could be done in 5 minutes or so. the belt has hella lot of uses already. but… your reasoning looks legit too. if the player wants to fly all over the world… why not?

the devs wanted to make worldmap not as dull as it is now. maybe add some random encounters, in Fallout 1/2 style? not just fights, but some unique events, like those Knights with The Holy Grenade in Fallout.


as for the bomb… k8IVAN has "Hell's device", which was intended to be The Nuke that devastates whole cities. i planned to put it into Alien Vessel dungeon. no specific quests for it, but you can bring it to Attnam and blow it away just for fun of it.
Jan 27, 2:31 am
Joined: Dec 19, 2018
Occupation: Pharmacy Tech
Location: USA
Interests: ZZT, Roleplaying,
Posts: 59
vasiliy wrote
the devs wanted to make worldmap not as dull as it is now. maybe add some random encounters, in Fallout 1/2 style? not just fights, but some unique events, like those Knights with The Holy Grenade in Fallout.

My memory on this is as fuzzy as my new daughter's hair, but I actually tried bringing that idea up years ago and was told that "it would be a nightmare on par with fighting Raxy while limbless" as the current code had absolutely no provision for letting the player enter a location that wasn't on the worldmap.

vasiliy wrote
but… your reasoning looks legit too. if the player wants to fly all over the world… why not?

Just had a funny idea for the BoL - if an appropriate stat is crazy-high enough, like maybe 3x that of a baseline human, attempting to go up on the worldmap should have a warning prompt about a mere human daring to go so high, then killing the player with a unique death message and a high score entry snarking that you "Failed to heed the fate of Icarus".
Energizer - you are invincible
ZZT @narchists unite! Turn off the dark, get free money, defeat death itself!
Jan 27, 2:35 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
Dark-Star2018 wrote
My memory on this is as fuzzy as my new daughter's hair, but I actually tried bringing that idea up years ago and was told that "it would be a nightmare on par with fighting Raxy while limbless" as the current code had absolutely no provision for letting the player enter a location that wasn't on the worldmap.
k8ivan is quite different here: i can easily generate POIs on worldmap as i need to, and remove them later. i've rewritten the POI code to use owterrain configs instead of separate classes, so it is possible to add new dungeons from the script simply by creating new configs. coincidentally, this allows dynamic POIs too.

so we can simply describe random encounters as new dungeons, with the specific "random encounter" flag set, and the game will simply randomly spawn them under the player when the player is moving around (and will remove/replace them if necessary after visiting).
Jan 27, 2:41 am
Joined: Dec 19, 2018
Occupation: Pharmacy Tech
Location: USA
Interests: ZZT, Roleplaying,
Posts: 59
vasiliy wrote
k8ivan is quite different here: i can easily generate POIs on worldmap as i need to, and remove them later. i rewrote the POI code to use owterrain configs instead of separate classes, so it is both possible to add new dungeons from the script simply by creating new configs. coincidentally, this allows dynamic POIs too.

so we can simply describe random encounters as new dungeons, with the specific "random encounter" flag set, and the game will simply randomly spawn them under the player when the player is moving around (and will remove/replace them if necessary after visiting).

DAMN!! Son of a banana, then this really is workable?! My hat is off to you!

I would definitely recommend one thing - that the player not be required to defeat every monster before leaving. If you can get to the exit square(s), you should be able to automatically escape.

And maybe there's a better use of the BoL on the worldmap, check this out:
https://attnam.com/posts/30444
Energizer - you are invincible
ZZT @narchists unite! Turn off the dark, get free money, defeat death itself!
Jan 27, 2:44 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
Dark-Star2018 wrote
Just had a funny idea for the BoL - if an appropriate stat is crazy-high enough, like maybe 3x that of a baseline human, attempting to go up on the worldmap should have a warning prompt about a mere human daring to go so high, then killing the player with a unique death message and a high score entry snarking that you "Failed to heed the fate of Icarus".
lol. yeah, i definitely like it!

also, i was thinking about a way to go off the world map, and die by falling onto the frog which holds the world on its back.
Jan 27, 2:47 am
Joined: Dec 19, 2018
Occupation: Pharmacy Tech
Location: USA
Interests: ZZT, Roleplaying,
Posts: 59
vasiliy wrote
lol. yeah, i definitely like it!

also, i was thinking about a way to go off the world map, and die by falling onto the frog which holds the world on its back.

ooh definitely go for that!

On a similar note , how about 'bottomless pits' that kill you instantly, death message "(player) fell all the way through the earth to the Great World Frog"
Energizer - you are invincible
ZZT @narchists unite! Turn off the dark, get free money, defeat death itself!
Jan 27, 2:55 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
Dark-Star2018 wrote
On a similar note , how about 'bottomless pits' that kill you instantly, death message "(player) fell all the way through the earth to the Great World Frog"
i'm not sure about this. it doesn't look fair, and IVAN is the fair game. i mean, most of the time you die by doing something stupid, and most traps are not insta-kills.

on the other side… it might be possible to blow a hole in level floor if you'll try hard enough, and fall down to the dungeon below. like, stack a lot of backpacks, mines and such, blow them away, and voila. it will require adding HP to floor tiles, though, but it should not be that hard to implement.
Jan 27, 3:07 am
Joined: Dec 19, 2018
Occupation: Pharmacy Tech
Location: USA
Interests: ZZT, Roleplaying,
Posts: 59
vasiliy wrote
i'm not sure about this. it doesn't look fair, and IVAN is the fair game. i mean, most of the time you die by doing something stupid, and most traps are not insta-kills.

on the other side… it might be possible to blow a hole in level floor if you'll try hard enough, and fall down to the dungeon below. like, stack a lot of backpacks, mines and such, blow them away, and voila. it will require adding HP to floor tiles, though, but it should not be that hard to implement.

Blowing a hole in the floor via stupidhuge explosion sounds intriguing, to be sure!

I wasn't really clear enough on bottomless holes, though, because on further thought I wanted them to mostly act like water squares: the player can see them and is not stupid enough to merely walk in. You have to deliberately choose to go too far out over water by poly'ing into a flying/ethereal creature or with a BoL.

Of course, if your square and an adjacent 'pit' square is heavily obscured in smoke/magic bubbles/gas/etc, one could argue that if the player moves over the edge their character was also blinded and fell in...

Or perhaps a strong enemy headbutted/kicked them toward the pit and they failed a DEX save.
Energizer - you are invincible
ZZT @narchists unite! Turn off the dark, get free money, defeat death itself!
Jan 27, 3:12 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
Dark-Star2018 wrote
And maybe there's a better use of the BoL on the worldmap, check this out:
https://attnam.com/posts/30444
this is interesting too, but it will require scripts… again. and prolly some new themed monsters. this is where i need a helping hand both with scripting, and with gfx.

Dark-Star2018 wrote
I wasn't really clear enough on bottomless holes, though, because on further thought I wanted them to mostly act like water squares: the player can see them and is not stupid enough to merely walk in. You have to deliberately choose to go too far out over water by poly'ing into a flying/ethereal creature or with a BoL.

Of course, if your square and an adjacent 'pit' square is heavily obscured in smoke/magic bubbles/gas/etc, one could argue that if the player moves over the edge their character was also blinded and fell in...

Or perhaps a strong enemy headbutted/kicked them toward the pit and they failed a DEX save.
ah. this souns like the perfect fit for "cloud dungeon". or/and to some abandoned dwarven mines, where they tried to dig to the lowest levels of the world… and succeeded!
Jan 27, 5:02 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
vasiliy wrote
and… scroll/wand of lock creation? pretty useles, and should prolly be cheap, but may save your ass if you are paniced and need some safe place to rest.

We already have a wand of door creation that does something similar.

vasiliy wrote
people, if you are reading this, feel free to comment on my ideas! i sux at game design (at any design, actually), so i'd love to hear your thoughts. or even your crazy ideas. not that i'm out of things to do (you'd better don't look at my TODO file, it's HUGE , but if you'll tell me about your ideas sooner, it may shape the code in a specific way to make implementing them easier.

https://attnam.com/wiki/Plans_by_red_kangaroo

Jan 27, 5:04 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
vasiliy wrote
also, i will prolly partially revert the change to Siren logic from vanilla. having Elianise to sing to you and take your stuff in Cathedral is so… "ivanly". i bet nobody cares if she takes some stuff from a dirty peasant. it is IVAN after all! the player will quickly learn to avoid her; she stole my stuff more than once, and that was… frustrating, but fun. i knew that i have to avoid her, so it is my punishment for being careless.

Well, she was intended as the quest leader for Dark Forest, so you would have to come to her... So she shouldn't steal from her while she gives you a quest.
Jan 27, 5:08 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
Dark-Star2018 wrote
-Artifact staff with once-a-day polymorph ZAP. Either just rare as hell generated or carried by a unique wizard.

Already exists in vanilla.

SPOILER ALERT. Click here to see text.

Dark-Star2018 wrote
-Have a way to activate the thaumatic bomb

I planned that and never got around to implement it.
Jan 27, 5:10 am
Joined: Apr 2, 2014
Occupation: Navastating
Location: Aslona
Posts: 807
vasiliy wrote
the devs wanted to make worldmap not as dull as it is now. maybe add some random encounters, in Fallout 1/2 style? not just fights, but some unique events, like those Knights with The Holy Grenade in Fallout.

Random encounters on non-permanent maps would be awesome. Like an ambush set by some bandits, or a hungry bear, etc.
Jan 27, 6:11 am
Joined: Sep 5, 2010
Interests: make more ivans!
Posts: 232
red_kangaroo wrote
Well, she was intended as the quest leader for Dark Forest, so you would have to come to her... So she shouldn't steal from her while she gives you a quest.
yeah, i thought about that too, and i think she may give some stolen goods back if you accept the quest (and stop stealing). like, "oh, it seems you accidentally dropped this… here, take it, and please be more careful next time."

oops. and in k8IVAN too, because i copied the code. just never looked what exactly this thing does.

red_kangaroo wrote
Random encounters on non-permanent maps would be awesome. Like an ambush set by some bandits, or a hungry bear, etc.
yeah. it should be quite easy to do. create several "template" POIs and spawn them randomly, asking the player if they want to enter. wipe dungeon data on exit instead of keeping it. almost all required code is already there (as i have POIs as Configs, not separate classes).

it may need some new properties like "Min/MaxDangerLevel", maybe "TimePassedBeforeSpawn" and such to control what will spawn and when, but it's easy too.

actually, the hardest part is designing the levels themselves, C++ side is a piece of banana.
Jump to