Skip to content

Commit

Permalink
Healing skills (another) overhaul
Browse files Browse the repository at this point in the history
- Critical successes fleshed out
- Added critical failures
- Kits overcome daily limit (reverted limit to 3)
- Kit stats rebalanced
- Separate skill/critical mods for skill items
- Fix Lenny's inability to help with Doctoring on 0 level
  • Loading branch information
phobos2077 committed May 27, 2024
1 parent 74812e9 commit 5ef6e5f
Show file tree
Hide file tree
Showing 13 changed files with 232 additions and 51 deletions.
10 changes: 6 additions & 4 deletions docs/ecco_changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@ v0.9.6:

> Healing:
- replaced default FirstAid/Doctor/Repair skill usage with fully-featured scripted implementation
- added critical healing success: restores more HP than normal
- changed first aid kits, doctor bags, etc. will now have a fixed number of uses instead of a 10% chance to remove on every use
- added a fixed number of uses to first aid kits, doctor bags, etc. instead of a 10% chance to remove
- added critical healing success: restores much more HP than normal
- added critical failure: reduces remaining uses of a kit/bag
- added ignoring daily limits when using kits/bags
- increased skill level influence on critical success and failure chances
- buffed restored HP amount for all 3 skills
- buffed number of heal actions per day to 4 (from 3)
- nerfed rest heal interval to 6 hours (from 3)
- nerfed world travel heal interval to 24 hours (was 1 real-time second; requires future sfall update)
- fixed numerious bugs and inconsistencies of vanilla system
- fixed numerious bugs and inconsistencies of vanilla healing system

> Crafting:
- fixed craft button disappearing when using external HRP
Expand Down
14 changes: 13 additions & 1 deletion docs/ecco_readme.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-====================-
-=== EcCo mod ===-
-=== v0.9.5 BETA ===-
-=== v0.9.6 BETA ===-
-====================-
by phobos2077

Expand Down Expand Up @@ -70,6 +70,17 @@
- Opening inventory has no cost, but every action (except reload, see below) requires 2 AP (or 1 with Quick Pockets).
- Bonus Move perk is now available at level 3 (was 6) and grants 3 Move Points per level (was 2).
- Most "Melee" NPC's now get Bonus Move perk to close on their gun-wielding foes and make combat more dynamic.
- Enemy AI will now use aimed shots much more often.
- Critical hits to arms will sometimes make target drop their weapon.


> Healing:
- New healing system replaces the original to make First Aid & Doctor skills useful.
- First Aid Kits & Doctor Bags have limited uses (instead of random 10% removal).
- Much more HP is restored per skill use.
- Critical successes restore even more and crit chance depends heavily on skill level.
- Using kits & bags now has clear benefit: this ignores daily usage limits.
- To have more reason for using these skills, all passive healing was considerably nerfed (now it matches in-game Healing Rate description from vanilla).


> AMMO:
Expand Down Expand Up @@ -162,6 +173,7 @@
- Weapon loadouts were adjusted in respect to new weapon balance.
- Most new weapons are used by people in the wasteland.
- Throwing weapons will be used against you more often.
- Ranged enemies will sure to have some spare ammo.


> MISC:
Expand Down
116 changes: 116 additions & 0 deletions proto_src/critters/00000107.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{
"pid": 107,
"textID": 10700,
"type": 1,
"flags": 536870912,
"lightRadius": 0,
"lightIntensity": 0,
"frmPID": 79,
"frmType": 1,
"extra": {
"actionFlags": 24576,
"scriptID": -1,
"headFID": -1,
"AI": 82,
"team": 1,
"flags": 2,
"baseStats": {
"STR": 4,
"PER": 6,
"END": 5,
"CHR": 2,
"INT": 6,
"AGI": 5,
"LUK": 5,
"HP": 29,
"AP": 7,
"AC": 5,
"Unarmed": 0,
"Melee": 1,
"Carry": 125,
"Sequence": 12,
"Healing Rate": 1,
"Critical Chance": 5,
"Better Criticals": 0,
"DT Normal": 0,
"DT Laser": 0,
"DT Fire": 0,
"DT Plasma": 0,
"DT Electrical": 0,
"DT EMP": 0,
"DT Explosive": 0,
"DR Normal": 0,
"DR Laser": 0,
"DR Fire": 0,
"DR Plasma": 0,
"DR Electrical": 0,
"DR EMP": 0,
"DR Explosive": 0,
"DR Radiation": 10,
"DR Poison": 25
},
"age": 25,
"gender": 0,
"bonusStats": {
"STR": 0,
"PER": 0,
"END": 0,
"CHR": 0,
"INT": 0,
"AGI": 0,
"LUK": 0,
"HP": 100,
"AP": 0,
"AC": 0,
"Unarmed": 0,
"Melee": 0,
"Carry": 0,
"Sequence": 0,
"Healing Rate": 0,
"Critical Chance": 0,
"Better Criticals": 0,
"DT Normal": 0,
"DT Laser": 0,
"DT Fire": 0,
"DT Plasma": 0,
"DT Electrical": 0,
"DT EMP": 0,
"DT Explosive": 0,
"DR Normal": 0,
"DR Laser": 0,
"DR Fire": 0,
"DR Plasma": 0,
"DR Electrical": 0,
"DR EMP": 500,
"DR Explosive": 0,
"DR Radiation": 0,
"DR Poison": 0
},
"bonusAge": 0,
"bonusGender": 0,
"skills": {
"Small Guns": 45,
"Big Guns": 0,
"Energy Weapons": 0,
"Unarmed": 0,
"Melee": 12,
"Throwing": 0,
"First Aid": 51,
"Doctor": 68,
"Sneak": 0,
"Lockpick": 0,
"Steal": 0,
"Traps": 0,
"Science": 0,
"Repair": 0,
"Speech": 0,
"Barter": 66,
"Gambling": 0,
"Outdoorsman": 0
},
"bodyType": 0,
"XPValue": 130,
"killType": 4,
"damageType": null
}
}
2 changes: 1 addition & 1 deletion proto_src/items/misc/00000047.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ soundId: '0'
miscData:
powerTypePid: -1
powerType: 0
charges: 8
charges: 5
4 changes: 2 additions & 2 deletions proto_src/items/misc/00000408.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ sid: -1
type: ITEM_TYPE_MISC
material: 1
size: 1
weight: 2
weight: 3
cost: 400
inventoryFid: 117440763
soundId: '0'
miscData:
powerTypePid: -1
powerType: 0
charges: 10
charges: 8
Binary file added root/data/proto/critters/00000107.pro
Binary file not shown.
Binary file modified root/data/proto/items/00000047.pro
Binary file not shown.
Binary file modified root/data/proto/items/00000408.pro
Binary file not shown.
2 changes: 1 addition & 1 deletion root/data/text/english/game/pbs_combat.msg
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@
{301}{}{ Restores %d HP.}

# skill booster kits
{310}{}{ It has supplies for %d more uses.}
{310}{}{ It has supplies for %d/%d uses.}
2 changes: 1 addition & 1 deletion root/data/text/russian/game/pbs_combat.msg
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@
{301}{}{ ��������������� %d ��.}

# skill booster kits
{310}{}{ ����� ���� ���� �����������(�) ��� %d ���.}
{310}{}{ ����� ���� ���� �����������(�) ��� %d/%d ���.}
36 changes: 24 additions & 12 deletions root/mods/ecco/misc.ini
Original file line number Diff line number Diff line change
Expand Up @@ -45,49 +45,61 @@ skill_max=150
skill_use_mod=1

; 1 to use charges instead of probability of removal. Max charges can be configured in item prototypes.
; This also circumvents daily limit when using skill boost items.
; Charges are consumed for every successful healing as well as when critical failure occurs (probability depends on game difficulty).
use_charges=1

; If use_charges is 0, determines probability (1 in X) of item removal, as in vanilla
kit_remove_freq=10

; Changes maximum number of successful skill uses per day from default 3. Range: [1; 10]
skill_uses_per_day=4
skill_uses_per_day=3

; Skill roll delta will be multiplied by this value to determine success crit chance. Default: 0.1 (1/10).
crit_success_chance_mult=0.4

; HP amount multiplier on critical success rolls
crit_success_mult=2.5

; Skill roll delta will be multiplied by (game_difficulty + 1) and this value to determine failure crit chance. Default: 0.1 (1/10).
crit_fail_chance_mult=0.15

; Max charges to consume on critical failures.
crit_fail_max_charges=3

; First Aid HP restore range. Default: 1,5
first_aid_hp=5,10

; Doctor/Repair skill HP restore range. Default: 4,10
doctor_hp=10,20

; Healer perk HP restore bonus range. Default: 4,10
healer_perk_hp=5,10
healer_perk_hp=7,14

; Base skill modifiers for healing
skill_bias_6=0
skill_bias_7=0
skill_bias_13=0
skill_bias_7=-10
skill_bias_13=-20

; You can configure skill boost items in a following format:
; skill_item_<PID>=<skill>,<bonus>,<message>
; skill_item_<PID>=<skill>,<skill_mod>,<crit_mod>,<message>
; - skill - skill ID (6, 7 or 13)
; - bonus - skill bonus for using the item (also modifies crit success chance by the same amount)
; - skill_mod - skill bonus for using the item
; - crit_mod - critical success chance bonus for using the item (only applies to HP restored)
; - message - ID of text in game/proto.msg to display when item is depleted, omit to make the item non-depletable

; Doctor's bag
skill_item_91=7,20,900
skill_item_91=7,10,20,900
; First Aid Kit
skill_item_47=6,20,901
skill_item_47=6,20,0,901
; Paramedic's bag
skill_item_409=7,40,910
skill_item_409=7,30,40,910
; Field Medic kit
skill_item_408=6,40,911
skill_item_408=6,30,20,911
; Multi Tool
skill_item_75=13,20
skill_item_75=13,20,20
; Super Tool kit
skill_item_308=13,40
skill_item_308=13,40,40


[HEALING_REST]
Expand Down
4 changes: 2 additions & 2 deletions scripts_src/_pbs_headers/traps.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ procedure create_trap_object(variable type, variable tile, variable elev, variab
end


procedure random_roll_ext(variable rollMod, variable critChance, variable successOffset, variable successMult, variable failMult) begin
procedure roll_check_ext(variable rollMod, variable critChance, variable successOffset, variable successMult, variable failMult) begin
variable
delta := rollMod - random(1, 100),
roll;
Expand All @@ -154,7 +154,7 @@ procedure roll_vs_traps_ext(variable critter, variable rollMod) begin
successMult := (5 - diffMult),
failMult := (0.2 + 0.1 * diffMult);

return random_roll_ext(skillValue + rollMod, critChance, -50, successMult, failMult);
return roll_check_ext(skillValue + rollMod, critChance, -50, successMult, failMult);
end

procedure roll_critical(variable critter, variable bodyPart) begin
Expand Down
Loading

0 comments on commit 5ef6e5f

Please sign in to comment.