i7 / kerkerkruip

Kerkerkruip - the interactive fiction roguelike game
kerkerkruip.org
84 stars 13 forks source link

0 damage breaks concentration? #326

Closed mciul closed 10 years ago

mciul commented 10 years ago

I thought it wasn't possible for damage to break your concentration if it was reduced to 0. Is that an intentional or unintentional effect of the new damage system? Also, the dagger of draining's effect happens here. Should that behave the same way?

React> c
You concentrate, and are now quite concentrated.

Rolling 20 - 1 (the dagger of draining penalty) + 7 (inherent bonus) + 2 (concentration) + 3 (tension) - 
3 (blindness) + 3 (dagger benefits from tension) - 2 (your defence increased by ment) = 29, Malygris 
beats your defence rating of 12.

Malygris deals 1 + 2 (tension) + 1 (dagger benefits from tension) - 2 (ment) - 100% (protection) = 0 
damage, allowing you to escape unscathed.

You lose your concentration!

The magical dagger saps your defensive reflexes, transferring them to Malygris.

Malygris concentrates, and is now mildly concentrated.
VictorGijsbers commented 10 years ago

Certainly a bug, I'll look into it!

VictorGijsbers commented 10 years ago

Fixed. Need to do a search for "attack damage" and change to "total damage" were necessary. Unfortunately, I'm currently using Windows 8 and haven't succeeded yet in making it search inside .i7x files (even after using advanced search options to tell it to -- maybe it is just slow and bad at indexing?)

mciul commented 10 years ago

Hey, if you ever want me to do a grep for you, I'd be glad to help!

ciullaptop:kerkerkruip mciul$ grep -r 'attack damage' 'Kerkerkruip.materials/Extensions/'
Kerkerkruip.materials/Extensions//Remko van der Pluijm/Kerkerkruip Dream of Montenoir:  increase the attack damage by x.
Kerkerkruip.materials/Extensions//Remko van der Pluijm/Kerkerkruip Dream of Montenoir:  if the location is the Back alley of Bar and the attack damage is equal to or greater than the health of the global defender:
Kerkerkruip.materials/Extensions//Remko van der Pluijm/Kerkerkruip Dream of Montenoir:      decrease attack damage by uppdr.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:The attack damage is a number variable.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    now the attack damage is 0;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:        now the attack damage is a random number between 1 and the damage die of the global attacker weapon;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    increase the attack damage by weapon damage bonus of the global attacker weapon; [1d(damage die) + WDB]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:        say "[The global attacker] [deal] ", the attack damage, "[run paragraph on]".
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is less than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:        now the attack damage is 0;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:Last damage multiplier rule (this is the standard show the attack damage dealt rule):
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:        say " = [bold type]", the attack damage, " damage[roman type][italic type], ";
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:        if the the attack damage is less than 1:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:            if the the attack damage is less than the health of the global defender:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:                say "wounding [the global defender] to ", health of the global defender minus the attack damage, " health.[run paragraph on]" ;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    decrease the health of the global defender by the attack damage;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    increase the attack damage by the bonus.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    decrease the attack damage by the bonus.]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is greater than 0 and the global defender is alive:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    increase the attack damage by the bonus;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is greater than 0 and the global defender is alive:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is 0 and the global defender is at parry:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is 0 and the global defender is at dodge:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is 0 and the global defender is at-roll:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:    if the attack damage is 0 and the global defender is at-block:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:[Tension is a standard plug-in, since I believe almost any game will benefit from it. Tension is a kind of "drama manager" for combat: it makes sure that long periods in which no apparent progress is made--that is, in which no damage is done--are not experienced as boring, but rather as increasing the tension. The way it works is that every turn when no hit is scored, the tension (a number that varies) is increased by one. High tension gives everyone bonuses on the attack roll, thus increasing the likelihood that something will happen, and on the attack damage roll, thus increasing the stakes.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:        increase the attack damage by the bonus.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Inform ATTACK.i7x:An aftereffects rule when the attack damage is greater than 0 (this is the standard reduce tension after hit rule):     
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip ATTACK Additions.i7x: if the the attack damage is greater than 0 and the global defender is alive and the concentration of the global defender is not 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip ATTACK Additions.i7x: decrease remain concentrated chance by attack damage.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Damage.i7x:The standard show the attack damage dealt rule is not listed in any rulebook.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Damage.i7x:Carry out an actor hitting (this is the set up attack damage rule):
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Damage.i7x:           now the attack damage is a random number between 1 and the damage die of the global attacker weapon;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Damage.i7x:       increase the attack damage by weapon damage bonus of the global attacker weapon; [1d(damage die) + WDB]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Damage.i7x:           say "[roman type][The global attacker] [deal] ", the attack damage, "[run paragraph on]";
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Damage.i7x:       now harm of physical damage is attack damage;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Help and Hints.i7x:"Offensive and defensive flow" "[paragraph break]In addition to concentration and tension, two other numbers affect every attack in Kerkerkruip. These are 'offensive flow' and 'defensive flow'. Every point of offensive flow increases the chance of an attack hitting by 1 and increases attack damage by 1. Likewise, defensive flow reduces the chance of an attack hitting, although it doesn't reduce damage.[paragraph break]Offensive flow is increased by successfully parrying or rolling into combat. Defensive flow is increased by successfully dodging. A successful block may randomly increase either, with both options having a 25% probability.[paragraph break]The sum of offensive and defensive flow can never be greater than 3, and both are reset to 0 when attacking unsuccessfully or when getting damaged by an attack.[paragraph break]At the beginning of a block move, all your offensive flow is converted into defensive flow. At the end of a roll move, your defensive flow is converted into offensive flow. Use these actions to switch between attacking and defending!"
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            increase the attack damage by the attack damage divided by 4;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            increase the attack damage by the attack damage divided by 2;       
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            let n be the attack damage divided by 4;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            now the attack damage is the attack damage times 2;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            decrease the attack damage by n;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            now the attack damage is the attack damage times 2.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:    if the global attacker wears the greasy gauntlets and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:    if the global defender wears the greasy gauntlets and the global defender is at parry and the attack damage is 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the attack damage is 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if global defender is at parry and attack damage is 0 and global attacker weapon is not ranged: [parry successful]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            if the attack damage is 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:    if the global attacker weapon is the dagger of draining and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the global defender is at parry and the attack damage is 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the global defender is at parry and the attack damage is 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the global defender is iron and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the attack damage is greater than 0 and the global defender is sleeper:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the attack damage is greater than 0 and the faction of the global defender is not insane and the global defender is not dead:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the global defender is at parry and the attack damage is 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:            if a random chance of attack damage in 10 succeeds:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Items.i7x:        if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Locations.i7x:            if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Locations.i7x:                if n is less than the attack damage:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Locations.i7x:                if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Locations.i7x:                    if n is less than the attack damage:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monster Abilities.i7x:    if the attack damage is not 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monster Abilities.i7x:        if the attack damage is greater than 0 and global attacker weapon is not ranged:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global defender is the swarm of daggers and the attack damage is greater than 0 and the swarm of daggers is not dead:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global attacker is the blood ape and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if global attacker is the player and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global defender is the giant tentacle and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:[ This is almost the same as the set up attack damage rule, except with the option to mention that the tentacle still holds on to the defender. ]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:         now the attack damage is a random number between 1 and the damage die of the global attacker weapon;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:     increase the attack damage by weapon damage bonus of the global attacker weapon; [1d(damage die) + WDB]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:         say "[roman type][The global attacker] [deal] ", the attack damage, "[run paragraph on]";
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:     now harm of physical damage is attack damage;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:The show the damage dealt by the giant tentacle rule is listed before the set up attack damage rule in the carry out hitting rules.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if Israfel is the global defender and the attack damage is greater than 0 and Israfel is alive:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global attacker is Israfel and attack damage is greater than 0 and global defender is alive:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global defender is Israfel and attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global defender is Isra and attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global attacker is Fell and attack damage is greater than 0 and global defender is alive:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x: if the global defender is alive and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:     if the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:             say "Drakul [bold type]drinks [regarding the global defender][possessive] blood[roman type], gaining [attack damage] health!";
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Monsters.i7x:             increase health of Drakul by attack damage.
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Persistent Data.i7x:  if global attacker is player and the attack damage is greater than 19:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Systems - Hiding Smoke Ethereal.i7x:  if the global attacker is the player and the attack damage is greater than 0:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Systems.i7x:          decrease the attack damage by 2;
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Systems.i7x:          increase the attack damage by 4;]
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Systems.i7x:          if the attack damage is greater than 0 or defender is at parry:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Systems.i7x:  if the attack damage is less than 1 and the defender is at parry:
Kerkerkruip.materials/Extensions//Victor Gijsbers/Kerkerkruip Systems.i7x:      decrease the attack damage by 1.]
mciul commented 10 years ago

Victor, did you push up your changes? I don't see anything new.