Search Results
Searched for posts by vasiliy in all forums

Showing results 31 - 40 out of 165 total
Modify your search
Posted by vasiliy, Jan 17 at 12:18 pm
some k8ivan trivia, lost in the depth of the thead.

do you know that k8ivan has new array syntax?
arr := { … }
the difference is `:=`, and you don't need any counter, the game is able to count items on its own.

do you know that it is not only possible to include .dat files with `Include` command, but you can extend existing classes AND overworld terrains?
Extend owterrain
{
  Config ASLONA_CASTLE;
  {
    Probability = 100;
    CanBeSkipped = false;
    //NameSingular = "Alien Vessel";
    BitmapPos = 96, 128;
    NameStem = "mighty seaside castle";
    UsesLongArticle = false;
    AttachedDungeon = ASLONA_CASTLE;
    CanBeGenerated = true;
    NativeGTerrainType = LEAFY_FOREST;
    WantContinentWith = ATTNAM;

    RevealEnvironmentInitially = true; //for debug
  }

  Config REBEL_CAMP;
  {
    Probability = 100;
    BitmapPos = 16, 64;
    NameStem = "hidden camp";
    UsesLongArticle = false;
    AttachedDungeon = REBEL_CAMP;
    CanBeGenerated = true;
    NativeGTerrainType = STEPPE;
    WantContinentWith = ATTNAM;

    RevealEnvironmentInitially = true; //for debug
  }
}
this creates two new POIs for Alsona and Rebels. you still need C++ code to actually implement quests, but the dungeons are accessible with wizard mode.

and some new configurations too:
Extend smith
{
  Config ASLONA_CASTLE;
  {
    DefaultName = "Khalybs";
    TorsoBitmapPos = 48, 192;
    HeadBitmapPos = 112, 480;
    ArmBitmapPos = 64, 64;
    LegBitmapPos = 0, 96;
    HairColor = rgb16(44, 34, 43);
    ClothColor = rgb16(100, 100, 100);
    TotalVolume = 90000;
    TotalSize = 200;
    Cloak = SELKIE_SKIN cloak(CLOAK_OF_FIRE_RESISTANCE) { Enchantment = 1; }
    RightGauntlet = SELKIE_SKIN gauntlet(GAUNTLET_OF_DEXTERITY) { Enchantment = 4; }
    RightWielded = CHROME MAHOGANY_WOOD meleeweapon(HAMMER);
    LeftWielded = CHROME MAHOGANY_WOOD meleeweapon(HAMMER);
    Sex = FEMALE;
  }
}

k8ivan includes "Alien Mod", and it is competely optional. you can comment `Module "zone69";` in "scripts/module.dat", and there will be no Alien Nest dungeon. note that Alien Nest has unique monsters which never appears in other dungeons. there are some new features to support this: you can not only restrict monsters to some dungeons (which is possible in mainline too), but you can assign a "tag" to any level, and restrict monsters to levels with that tag. that's how Alien Queen is done. also, Enner Beast uses this system too.

this was already done 7 years ago, and while this won't allow you to create new quests and new monster classes (because doing that still requires C++ support code), you can extend existing classes, and easily design new optional dungeons, all without ever touching C++ compiler!
Posted by vasiliy, Jan 17 at 8:10 am
i guessed that from the indentation.
Posted by vasiliy, Jan 17 at 7:41 am
implemented long-time-awaited feature: it is now possible to chat through windows and bar walls. in the future we might have bars with bartenders, for example.

p.s.: also, it is possible to rest when paniced in small rooms with all doors closed and nobody inside.
Posted by vasiliy, Jan 17 at 4:09 am
also, i am pretty sure that you should be able to rest when paniced if the surroindings seem to be safe. previously you was able to rest in dead ends (long-time k8ivan feature). now i implemented more of it: you will be able to rest in the corridor, or in `[`-shaped place, if there are no hostile monsters around. this is because everybody just keep "." pressed until panic passes anyway (in case there are no other means to remove the state, of course), and to do that the player will find a "safe" space. so let the game help us here a little!
Posted by vasiliy, Jan 17 at 1:09 am
i always wondered why backpack with powder has so little uses. so… i think that if you have "flaming something" in your inventory… we have several choices here.

first, the moment you pick up flaming thing and already have a backpack (or vice versa), the backpack should KABOOM! because why not? it's I.V.A.N. we are talking about!

second, we can turn backpack into a grenade instead. 'B'urn it (i already have that command for webs), and then throw away. kinda like Holy Grenade. this is less fun than KABOOM, but more useful.

by the way: if you're wielding a flaming weapon, it will automatically burn the webs. with a random chance, of course, but most of the time it succeeds. (this is already implemented.)


any other ideas how to turn the backpack into a grenade? i really love to do it, but i want flaming weapons to perform KABOOM! too.
Posted by vasiliy, Jan 16 at 6:56 pm
The Main Problem of I.V.A.N. Development…

…is insolveable.

somehow you need to convince yourself to stop "testing the game" (aka playing, and playing, and playing, and pla…), and start coding. but hey, what if i'll catch some bug on the next playthrough? ok, just one more time…
Posted by vasiliy, Jan 16 at 7:52 am
there is missing `{` after `if(PLAYER->GetRelativeDanger(this, true) > 0.1)` there. both statements should belong to `if`, but only one does. hey, this is not Python!
Posted by vasiliy, Jan 16 at 7:41 am
thank you, i'll take a look!

meanwhile, i implemented saving massacre history to hiscores db. it is not possible to view it yet, but at least it is preserved.
Posted by vasiliy, Jan 16 at 4:41 am
moved hiscore table to SQLite database. the game will still show top 100 entries, but there is no reason to remove anything from db, so db will never be wiped. now i can start accumulating high-scores again, and check what will be there in another 20 years.
Posted by vasiliy, Jan 15 at 4:58 pm
and btw. if you'll look into k8ivan directory after the first run, you'll find ".ivan.keys.rc" file there. it is not just a help, this is actual keybind config the game is using.