flareteam / flare-engine

Free/Libre Action Roleplaying Engine (engine only)
http://flarerpg.org/
GNU General Public License v3.0
1.1k stars 186 forks source link

A problem about making elemental damage weapons. #1867

Open CaptainFluffy1903 opened 1 year ago

CaptainFluffy1903 commented 1 year ago

We cannot use bonus= to add elemental damage to a item so we have to use replace_power. Lets say power id 1 is our normal swing and power id 2 is fire swing. We tryna make a fire longsword so there will be replace_power=1,2 But here problem starts. At my mod actionbar left mouse is locked, it changes by other weapons etc. For an example when you equip a ranged weapon swing power replaces with shoot power. But in this case there is a special weapon. If we use fire longsword at set 1 and use any other weapon at set 2, in this case its iron shortsword. Iron Shortsword will deal fire damage too. Or if its a bow. There wouldnt be shoot power. There must be a property like bonus=fire_dmg_min,10 to make elemental weapons useable.

Ekran görüntüsü 2023-08-10 222746 Ekran görüntüsü 2023-08-10 222636
CaptainFluffy1903 commented 1 year ago

That will also allow modders to add a infuse system etc.

CaptainFluffy1903 commented 1 year ago

https://github.com/flareteam/flare-engine/issues/1596 there is already an issue about this.

dorkster commented 1 year ago

Agreed. It's the logical compliment to having elemental resistances and would provide more variation for item bonuses.

Putting it on the 1.15 list because I think this is long overdue.

dorkster commented 1 year ago

Further musings:

CaptainFluffy1903 commented 1 year ago
  • The concepts of "damage types" and "elements" should be merged together. In addition to damage stats for the various elements, we'd also get resistance stats for "non-elemental" damage types such as melee and ranged.

I think we make different absorbition stats for different damage types. For an example it will be defined like this :

[damage_type]
id=melee
name=Melee Damage
description=Increases the damage done with swords and other melee weapons.
name_min=Melee Damage Min
name_max=Melee Damage Max
min=dmg_melee_min
max=dmg_melee_max
absorbition=abs_physical

There will be a new file at engine/ named as absorb.txt Absorb.txt=

[absorb_type]
Name=Physical Defense
id=abs_physical
descripton=Increases defense againts physical attacks.
name_min=Physical Defense Min
name_max=Physical Defense Max
min=abs_physical_min
max=abs_physical_min
percent_based=false

For elemental damages :

[damage_type]
id=melee
name=Fire Damage
description=Burn your enemies with power of the fire.
name_min=Fire Damage Min
name_max=Fire Damage Max
min=dmg_fire_min
max=dmg_fire_max
absorbition=abs_fire
[absorb_type]
Name=Fire Defense
id=abs_fire
descripton=Increases defense againts fire attacks.
name_min=Fire Defense Min
name_max=Fire Defense Max
min=abs_fire_min
max=abs_fire_min
percent_based=true

What we will add is an absorbition defining system like damage types. There will be a property about making it percentage based, like the ones we already have. And an id. It will also allow us to make slash-pierce-blunt damages. For an example making skeletons weak againts hammers etc. We can integrate it to Empyrean Campaign easily.

I know thats not adding elemental damages as stat at all but, this one looks logical.