Try / OpenGothic

Reimplementation of Gothic 2 Notr
MIT License
1.17k stars 85 forks source link

Fix some Gothic 1 magic bugs #682

Closed thokkat closed 2 months ago

thokkat commented 2 months ago

This PR fixes issues 1. and 2. from https://github.com/Try/OpenGothic/issues/661 and 18.1 and 18.2 from G1 bug discussion.

(1) Broken firerain effect is fixed by adding it's Target_collect_algo attribute to Item::isSpellShoot. I proposed this change some time ago but withdrew because it would break Stormfist. Found out now that projectile property is hardcoded (source) and used that for Stormfist.

(2) Added a missing perc trigger on collision to make icewave freezing work.

(18.1/2.) Spell targets can be restricted based on attribute Target_collect_type, meaning orc priest just cannot be targeted. For TARGET_TYPE_UNDEAD I took C_NpcIsUndead script function from G2 as reference since it doesn't exist in G1. Target type is not always correctly set in vanilla. For example icewave can target items.

While at it also limited focus search for interactives in combat to only bow and crossbow as magic can't target those.

Try commented 2 months ago

not about red ci: microsoft decided that they want to rename some stuff in dx. should be fixed by: ~1af5396e084b6bf6a4b69f6a71f90aeb790bb21a~ c56eb994

thokkat commented 2 months ago

(18.1/2.) Spell targets can be restricted ...

This part seem to be a reference?

Meant issues 18.1 and 18.2 in bug discussion

18.1 Destroy Undead instantly kills Grash-Varrag-Arushat (5th undead priest), long before player has Uriziel savegame: save_slot_7.sav.tar.gz no ticket created screenshot: n/a

18.2 Destroy Undead kills all undead and regular orcs and minecrawler warriors and Demons. Is that base game behaviour? savegame: save_slot_4.sav.tar.gz no ticket created screenshot: n/a

Try commented 2 months ago

Merged, thanks!

Abendlied commented 2 months ago

Not sure if it is correct to comment after succesful merge.

This PR fixes issues 1. and 2. from https://github.com/Try/OpenGothic/issues/661 and 18.1 and 18.2 from G1 bug https://github.com/Try/OpenGothic/discussions/622.

18.1 Destroy Undead instantly kills Grash-Varrag-Arushat (5th undead priest), long before player has Uriziel savegame: save_slot_7.sav.tar.gz no ticket created screenshot: n/a

18.2 Destroy Undead kills all undead and regular orcs and minecrawler warriors and Demons. Is that base game behaviour? savegame: save_slot_4.sav.tar.gz no ticket created screenshot: n/a

what I understood you have fixed here is that destroy undead cannot focus on enemies. While it appears to fix the problem, the player can still kill Grash-Varrag-Arushat as well as MC warriors etc. with that spell by aiming free (without focusing). Standing directly infront of G-V-A and charging the spell still kills him even if not focused.

Abendlied commented 2 months ago

BIG thank you for this PR @thokkat! fire rain and ice wave work flawlessly now thanks to your work.