Hey everyone:smile:,
I am trying to come up with a system for damageTypes which designers can easily extend.
I have 3 scripts:
DamageTypes.cs - Is currently just an Enum with the available damageTypes.
Projectile.cs - Designers should be able to select via dropdown menu which damageType this projectile has.
Health.cs - Designers should be able to fill in float values for each damageType.
Current workflow to add new DamageType:
DamageTypes.cs
Add Fire to enum
public enum damageTypes {
flesh,
armor,
fire // new option
}
Projectile.cs
Checks what options are in the DamageTypes.cs and shows it as public variable.
public damageTypes damageType;
Health.cs
Add float fireDamage
public float armorDamage;
public float fleshDamage;
public float fireDamage; // public float so designers can edit
Add if check with new damageType and adjust adj value with new fireDamage float
public void adjustHealth(float adj, damageTypes dmgType){
if(dmgType == damageTypes.armor){
adj *= armorDamage;
}
else if (dmgType == damageTypes.flesh){
adj *= fleshDamage;
}
else if (dmgType == damageTypes.fire){ // have to add if check for new damageType
adj *= fireDamage; // adjust adj value with new float fireDamage
}
}
So I want the stuff I have to add to the code now to be generated whenever a designer adds a damageType in an editor window or custom inspector.
Picture to clarify stuff:
Any ideas on this would be greatly appreciated.