Skip to content

Commit

Permalink
(ready) Aslona (#576)
Browse files Browse the repository at this point in the history
* Implement Aslona Castle

* Aslona, part II

* Bloods

* Magic helms have random material

Magic helms with pre-defined materials are too strong. Random materials
will make it more interesting when you find one.

* Add crysteel

* Update

* Fix ownedroom

* Aslona, part III

* Goblin Fort, part I

* Rebel Camp, part II

* Add wizard

* Golem update

Golem spawning rates are still not OK, with powerful golems sometimes 
spawning way too early and often. This tries to address this.

Also handle theoretical gaseous golems.

* Nerf magic helmets

Magic helmets with pre-defined materials are too strong, as they appear 
early with good material AND a magical effect.

Make magic helmets use randomized materials. Their magic effects should 
be good enough to make them competitive with other helmets.

Also switch most magic helmets to normal helmet, rather than full 
helmet. This allows full helmets to be more distinct, as they will offer 
the best coverage and AV.

* Minor tweak

* Add wizard II

TODO: Fix gas golems!

* Nerf magic helmet, attempt II

Magic helmets with pre-defined materials are too strong, as they appear
early with good material AND a magical effect.

Make magic helmets use randomized materials. Their magic effects should
be good enough to make them competitive with other helmets.

Also switch most magic helmets to normal helmet, rather than full
helmet. This allows full helmets to be more distinct, as they will offer
the best coverage and AV.

* Merge remote-tracking branch 'upstream/master'

* Fixes

Mirrored items cannot be dismantled into permanent lump of material #534

Use fix from @AquariusPower to stop weapon swap from auto-stealing items 
from shops #555

* Implement Black Market

Especially in later stages of the game, players can find themselves with 
large amounts of money that can no longer be spend on anything useful 
(barring priest services and fixing equipment in Attnam), as shops not 
always offer good items, or anything of value was already bought.

This adds a new dungeon, the Black Market, which is randomy placed on 
the worldmap and may be found by players who go explore the wilderness 
(This also gives some incentive to go explore, as otherwise the player 
will only go for the shortest route between UT, Attnam and GC/TX). It 
has two levels: The first one is full of guards, the second has a hige 
shop of overpriced items.

The purpose of this is to have a palce where players can spend all their 
hard-earned money, with enough items generated to ensure there will be 
at least something for every player. However, to prevent unbalancing the 
game with new shopping options, the Black Market has intentionally 
overpriced items that will only be affordable to players who have 
accumulated some excess funds.

* Tweaks and fixes

* Add missing NEWS

* Make some magic helmets full again

* Tweaks and fixes

* Allowed dungeons

* New dialogues

Also make NPCs sometimes talk on their own.

* Minor changes

* Make NPCs talk

* Monsters

* Minor fixes

* Allow levitation in Black Market

* Minor changes and fixes

* Hide black market

After some play testing, I realized that wandering on the worldmap 
looking for the black market is not really working out. Unfortunately it 
tends to spawn either close to one of the other dungeons, leading to it 
being discovered rather soon, or in very remote location, even on other 
continents.

Because the black market should remain a late game area, I think it 
would be better to make it initially hidden and reveal it only once the 
player can buy a map that would lead them there.

BTW, why was Tomb of Xinroch "locationAW"? :)

* No cloth full helmets

I forgot to restore non-flexible-only materials for full helmets.

* Bug fix

* Add dungeon definitions...

..for ease of use and future development.

* Monster update

* Oops

* Fix wizard summons

* Minor fixes

* Add nurphe bats

* Cat taming

* Goblin Fort update

* Display Will in secrets

* Fix and finish Goblin Fort

* Give the player a boat for exploration

ALso drop "very" from alternate running descriptions, to make them fit 
on a single line.

* Pyramid

* Fungal Cave

* Script fixes and balancing

* Wilderness changes

* You have to board/disembark your ship.
* You no longer have limitless stamina on worldmap.
* Most above ground locations now have day/night cycle and weather.

* Quest changes

Changes the structure of quests to better allow for multiple alternative 
main quests without having to juggle with the encrypted scroll for all 
of them.

Petrus now takes the encrypted scroll and gives the player some time to 
wander Attnam. If the player chats with him again, they will receive the 
GC quest, but they can also find other people to get other quests.

Chat with the necromancer for TX quest, plus some preliminary work for 
Aslona quests is done.

* Basic quest framework

* Minor changes

* Unify musical instruments under magicalinstrument, move GetCooldown() 
to this class.
* Make movement over ocean slightly slower than on dry land.

* Make amulets easily recognizable

Change materials of amulets so that they can be easily recognized by 
their color. Many amulets were off-white, so unlike rings, it was rather 
difficult to tell them apart without looking at the description.

* Muramasa and Masamune

* Fix gas traps

They should be revealed when you step on them.

* Add mirror imps

* Add some fun materials

* Hotness allows to define materials that burn on contact, like 
Acidicity works for acid damage.
* Several new material effects.
* Some minor bug fixes where panic or disease immunity was not correctly 
respected.

* Lobh-se

Bite attack can sometimes be replaced by vomiting, plus her 
SpecialBiteEffect now correctly respects disease immunity.

* Lobh-se II

Summons spiders, a bit like Genetrix Vesana.

* Rebel camp and graphics

New graphics by @fejoa, based on #569.

* Assorted changes (#8)

Merge changes and bugfixes from @AquariusPower. Should fix #554

Squashed because of large number of commits:

* WIP: added auto-pickup list currently 'kiwi|wand|dagger', easy to become an user cfg option later;
Fix for when entering a new area/map/dungeon, will create the map note for stairs and try to pick things there;

* Fixed: help F1 in case of wide lines, hard limit 80 chars for now;
AutoPickUpMatching user option added with detailed help;

* autopickup: fix for owned rooms;

* autopickup: ignore spoiling;

* autopickUp: complex perl regex working with initial example;
iosystem - global AlertConfirmMsg();

* autoPickUp: fixed default regex example;

* autopickup: improved default regex;

* autoPickUp: improved default regex;

* more useful default pickup regex match

* Doc/HelperScripts/ivanDbgmsg.sh: helper to monitor dbgmsg logs;

* craft: limit firesparks to one square
craft: re-allow craftable poison/sulphuricacid

* craft: added dbg msgs and better abort on craft denial

* craft: validate crafted only after it is completely ready;
humanoid::SetEquipment: check if item is not null prior to ResetFlyingThrownStep;

* craft: now anvil must be on adjacent square;

* hiteffectSetup: better/granted init fields;
craft: hiteffects when creating items/building;

* craft: check craftability b4 being "broken";

* craft: hiteffect fix to check for tools and arms;

* craft: workbench should be damaged w/o explosions (that are area effect of fire/forge);
AutoPickUp: improved default;

* craft: craftcore::canBeCrafted() always allows sticks now (happens when splitting one in many);

* crafting: easier carving, most common bladed weapons can be used now;

* craft: restored capability to craft the simple chests;

* fixed old crash when Terra is being asked for lycanthropy cure at crystal cave;

* Main/Include/definesvalidator.h: recreated using (ctrl+`) console command DefVal, also revalidated w/o errors!;

* crafthandle::SpawnItem() fixed (workaround) a crash when the final message gets too big

* fix Terra when player has the seedling and she wouldn't cure anymore

* changed auto-pickup to "thrown weapons" only (never made much sense about other items)

* crafted chests now come unlocked;
wizard autoplay will be auto disabled to let the read command work again;

* commandsystem::IsForRegionListItem() and ::IsForRegionSilhouette() properly implemented now to compare with the command's linked function pointer (instead of the hard to maintain description);
auto map note for fountains;
deprecated: Doc/HelperScripts/prepareCmdsDescrCode.sh;

* auto map note for chair and doublebed;

* craft: lowered annoyance to access new craftings by hitting space;

* craft: changed flow to let resume/cancel be the first craft option;

* craft: nice(?) chosen action message;

* fixed: pet stay put at CheckForEnemies() if MayMoveRandomly=true;
craft: cleared missing tool msg;

* fix glitch that lets steal just sold weapons from shop using weaponswap command key;
added bugtrack breakpoint (debug mode only) when showing the map, and also a workaround to prevent crash;

* crafting: shows suspended total;

* sfx: skips chat messages now;

* "Show god info" option changed context:
- now F1 shows god's description for coherency
- and extra info is now last remembered player's offer god's reaction (much more useful)
- v133 (at least) savegames will be imported automatically

* items now have DescriptiveInfo that will be shown by pressing F1

* craft: sticks are now "dismantable" into lumps, to easify the melting code;

* chat now is easier with previous NPC (as long it dont move)

* craft: better carving fail message and failToolMsg();
auto-pickup: wont do it to items auto marked with #d when dropped (but cleared on pickup);
auto-pickup: improved default regex;

* auto-pickup: better help info;

* TODO: fix FIRE_GAS

* Bugfixes

Among others:
* Fix overflowing config strings.
* Change WaterRain() into general LiquidRain().
* Fix ACID_GAS and FIRE_GAS.
* Explosive liquids can no longer be used to douse flames (#121).
* Better help for crafting.

* Quests

Also fix #530 and address some other bugs, oversights and balance 
issues. See NEWS.

* Item descriptions

* Prepare config options help

Most entries must still be written. ;)
Make restoring equipped items active for all and non-configurable #406
Remove redundant messages from auto map notes #505

* Y'yter Durr and snakes

* Item descriptions

* Some new graphics

* Fountains and chastity belts

* Tabs -> Spaces

* Add Fusanga

* Quests II

* Tweaks and balancing

* Quests III

* Wand AI fix

* Quests IV

* Fixes

* Further fixes

* Travis fix

* Minor fixes

* More lore

* Fix mommo crash

Does not seem to be crashing anymore, so hopefully fixed.

* Rework taming difficulty

It was reported that some monsters (notably mistress whip champions and 
dark knights) were too easy to tame, which unbalanced both taming and 
body switch. This was because only TamingDifficulty was checked, which 
defined only several hard to tame monsters. The rest was nearly always 
successfully tamed.

Change that to also take Willpower into account, so that monsters with 
higher overall stats are harder to tame.

TamingDifficulty can still be used to make monsters with low Willpower 
but high difficulty of taming, or for NO_TAMING flag.

* More fixes

* Minor changes

* Update README, add MANUAL

We don't need two README files, and the info needed an update.

Old AUTHORS and README can be still found in Doc/Obsolete.

* Fixes

Also attempt to make some crafting messages a bit more confusing. :)

* Two new options

* start with no pet
* use descriptions instead of numeric HP

* Nerf black market

* Update

* Fixes

* Keybindings

The command list claimed to be sorted alphabetically, but it really 
wasn't. Additionally, it was quite chaotic when one tried to find a 
specific command.

I tried to reorganize the commands more by relation, putting similar 
commands close together. Hopefully this will make it easier for players 
to get oriented in the list.

Also adds movement keys, because they weren't listed anywhere at all, 
AFAIK.

* Update II

* Fixes

* Fixes

* Minor fixes

* remove commented out code
* fix F1 help for ? menu
* try to unify command prompts

* Fixes!

* Fix what @fejoa said. :)
* Fix a bug that prevented temporary teleport lock from actually timing 
out.
* Let the player review their stats on death.
* Split CT_MISC_ORGANIC into _ANIMAL and _PLANT to prevent herbivores 
from eating animal products.
* Fix help for sound options, because I misinterpreted them.

* Fix + Descriptions

* Aciouds -> Caustic once more. :)
* Make multiple slayings on a single weapons possible.
* Some item descriptions.
  • Loading branch information
red-kangaroo authored Feb 26, 2020
1 parent 4bdf1a9 commit 8fcc706
Show file tree
Hide file tree
Showing 113 changed files with 14,082 additions and 3,217 deletions.
98 changes: 98 additions & 0 deletions .devsPrefs/red-kangaroo/code_snippets
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
// Solicitus' banana prayer.
void solicitus::PrayBadEffect()
{
if(PLAYER->HasAllBodyParts()) //Checks if Player has all his limbs! Important because this effect crashes if you try it with missing limbs.
{
ADD_MESSAGE("A voice speaks. \"BANANAAAAAAAAAAAAAAA.\"");
PLAYER->ChangeMainMaterial(MAKE_MATERIAL(BANANA_FLESH)); //Change whole body to banana flesh.
ADD_MESSAGE("You feel like a banana.");
}
else
ADD_MESSAGE("\"No banana for you.\"");
}



// Sappho belt
ITEM(sappho, chastitybelt)
{
public:
virtual truth TryKey(item*, character*);
long GetGearStates() const;
};

truth sappho::TryKey(item* Key, character* Applier)
{
/* BROKEN_LOCK should not be possible. */

if(Key->CanOpenLockType(HEART_SHAPED_LOCK))
{
if(Locked)
{
if(Applier->IsPlayer())
ADD_MESSAGE("You unlock %s.", GetVirtualDescription(DEFINITE).CStr());
else if(Applier->CanBeSeenByPlayer())
ADD_MESSAGE("%s unlocks %s.", Applier->CHAR_NAME(DEFINITE), GetVirtualDescription(DEFINITE).CStr());
}
else
{
if(Applier->IsPlayer())
ADD_MESSAGE("You lock %s.", GetVirtualDescription(DEFINITE).CStr());
else if(Applier->CanBeSeenByPlayer())
ADD_MESSAGE("%s locks %s.", Applier->CHAR_NAME(DEFINITE), GetVirtualDescription(DEFINITE).CStr());
}

// Add a tiny chance that any key you use breaks.
if(!RAND_N(Key->GetMainMaterial()->GetStrengthValue()))
{
Key->Break(Applier);
}

// We're changing GearStates when the belt is locked/unlocked, so re-calculate.
if(Applier->Equips(this))
Applier->CalculateEquipmentState();

Locked = !Locked;
}
else
{
if(Applier->IsPlayer())
ADD_MESSAGE("%s doesn't fit in the lock.", Key->CHAR_NAME(DEFINITE));
else if(Applier->CanBeSeenByPlayer())
ADD_MESSAGE("%s tries to fit %s in the lock, but fails.",
Applier->CHAR_NAME(DEFINITE), Key->CHAR_NAME(DEFINITE));
}

return true;
}

long sappho::GetGearStates() const
{
if(IsBroken())
return 0;
else if(IsLocked())
return TELEPORT_LOCK|POLYMORPH_LOCK;
else
return LEVITATION;
}

sappho
{
Possibility = 0;
Adjective = "seductive";
PostFix = "with a heart-shaped lock named Sappho";
Alias == "Sappho";
ArticleMode = FORCE_THE;
CanBeWished = false;
IsMaterialChangeable = false;
IsPolymorphable = false;
IsPolymorphSpawnable = false;
CanBeCloned = false;
CanBeMirrored = true;
CanBePiled = false;
CanBeBroken = false;
CreateLockConfigurations = false;
MainMaterialConfig == CHROME;
MaterialConfigChances == 100;
Price = 1000;
}
184 changes: 184 additions & 0 deletions .devsPrefs/red-kangaroo/feature_ideas
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
* port 3D option from IVANX

* zombie town
* valpurium mine
* penguins who perform anti-sci-talk
* taxidermy!
* smurfs with hammer and sickle

* body part damage
* crits can cut off pieces:
head -> eyes
torso -> breasts (females only)
groin -> nuts (males only)


Features
========
* wellspring
* fence
* gravestone

* saplings for all trees

Rooms
-----
* animal zoo
* graveyard
* orcish barracks
* swamp/flooded room
* lost library
* garden
* grass, trees, fountain
* dilapidated armory
* daemon pit
* fungus farm
* chameleon zoo

Items
=====
* scroll of harden and change can be used on secondary material
* wand of locking/opening
* cage trap
* scythe of reaping
* mattock of tremors (causes earthquakes)
* flail

* Saal'thul gets increased damage per enemy disabler (unconsc, conf, stuck etc.)
* charging/charged <- NOPE, would require passing user as arg
* mutagen
* Turox can be zapped
* weapon that drains stamina, causing Fainting
* lore books/scrolls
* buckler
* glove slot shield
* rusty items can poison
* cloak of magic (rare recharging)
* wand of asphalt rain
* axe of cleaving (battle-axe)
* robe
* demon armor (rF)

rogue's ring of rapid retreat
* invis, haste, teleportitis
scroll of war
* summons mirrored valpurium battle-axe +10

wand of fear
wand of (cloud, poison? - venom, raw magic? - wonder)

tunic (under chainmail)
expensive camera
vacuum cleaner
flamethrower
baby bottle
gigantic potatoe

bow + arrow
sling

* artifact portable anvil of Loricatus, for crafting
* artifact katana "Razor Wind", as vacuum blade in CLIVAN

* weird trinkets for someone's collection (quest items)
* the vaccum cleaner, camera and flamethrower

* Per penalty for full helmets
* horn of blasting (knockback)
* scroll of random material
* shield of displacement (teleport attacker)

* amulet of psychic protection (MindBlanked)
* blocks telepathy and psi damage
* immunity to confusion and knockout

scroll of forestry
* transforms nearby terrain into grass, including water and such
* creates several trees, mostly pines and banana trees

wand of opening
* unlocks and opens doors
* removes or untraps bear traps

magical staves
* Recharge times when not equipped almost double.
* Generally this counter is decreased by one per turn.
* If an item is equipped the counter is decreased by an extra turn.
* If you attack, it is decreased by an extra turn.
* If you hit, it is decreased by an extra turn.
* If you hit critically, it is decreased by an extra turn.
* If you kill the monster, it is decreased by an extra turn.

Monsters
========
drang knight
twin spears
twin hammers

* huldra

dwarves
* can be paid to follow you (see CLIVANT human.cpp assassin::BeTalkedTo)
* several types:
dual hammers
war hammer and shield
battle axe + thrown axes
grenadier
rookie kamikaze

* mushrooms can talk to you if you have ESP
* reaper
only torso and groin vital
necromancer cloak + skull
flesh material: wraith bone (can regenerate)
scythe, cloak
ethereal, teleporting
* dark spirit knight
* leper knight
* orc hornblower
random horn for SpecialEnemySightedReaction
* flying fish
* ancient golem
can equip
oil for blood
* dark daemon
liquid darkness vomit
* blood daemon
oree stats -50%

Uniques
-------
souldrinker Jorr Al Nah the exalted necromancer
* DRAIN insetad of magic missile
* conjure miasma -> random gas
* summon bone golems, ghosts

Pristina the half-dragon priestess
* nod to DS, so has cloak of invisibility and a scythe
* the only high priestess of Valpurus ever, now censured to ever exist

Fusanga the massive magical mushroom matriarch
* buffs as mystic frog, plus spawns as Jenny

cult leader
* as female cultist, but randomly scythe of terror, oxid, or good enchantment
* only spawned in room on altar to Morty, with cultists

kobold storyteller
* female, Mondedr
* Valpurus killed Mortifer, from his blood daemons, from him Curse of Undeath
Hime the masterless swordswoman
* wields katana and a short sword

Coe-Nan the barbarian

kobold matriarch
* largecreature

* fallen valpurist
* the great white hunter

Materials
=========
* dolphin flesh increases int
* ommel vomit grants huge nutrition
100 changes: 0 additions & 100 deletions AUTHORS

This file was deleted.

Loading

0 comments on commit 8fcc706

Please sign in to comment.