Initial reformation of item abilities

- Merge most of the spell usable abilities into a single "cast spell" ability which can take any spell as an additional parameter
- Merge the affect status usable abilities into a single "affect status" ability which can take any status as an additional parameter
- Merge acidic and poisoned weapon into a single "status weapon" ability which can take any status as an additional parameter (though the handling for other statuses isn't yet implemented)
- Fix mass charm spell getting worse as you intelligence bonus increases
- Mass charm item spell is now easier to resist (an unintended side-effect)
- PC versions of Wrack and Unholy Ravaging implemented (for use as item spells)
This commit is contained in:
2015-01-12 21:17:44 -05:00
parent 3a285f47da
commit 25ef2ed713
15 changed files with 778 additions and 368 deletions

View File

@@ -222,7 +222,7 @@ short get_prot_level(short pc_num,eItemAbil abil) {
for(i = 0; i < 24; i++)
if(univ.party[pc_num].items[i].variety != eItemType::NO_ITEM && (univ.party[pc_num].items[i].ability == abil)
&& (univ.party[pc_num].equip[i]))
return univ.party[pc_num].items[i].ability_strength;
return univ.party[pc_num].items[i].abil_data[0];
return -1;
}
@@ -441,15 +441,16 @@ void enchant_weapon(short pc_num,short item_hit,short enchant_type,short new_val
break;
case 3:
store_name += " (F)";
univ.party[pc_num].items[item_hit].ability = eItemAbil::FLAME;
univ.party[pc_num].items[item_hit].ability_strength = 5;
univ.party[pc_num].items[item_hit].ability = eItemAbil::CAST_SPELL;
univ.party[pc_num].items[item_hit].abil_data[0] = 5;
univ.party[pc_num].items[item_hit].abil_data[1] = int(eSpell::FLAME);
univ.party[pc_num].items[item_hit].charges = 8;
break;
case 4:
store_name += " (F!)";
univ.party[pc_num].items[item_hit].value = new_val;
univ.party[pc_num].items[item_hit].ability = eItemAbil::FLAMING_WEAPON;
univ.party[pc_num].items[item_hit].ability_strength = 5;
univ.party[pc_num].items[item_hit].abil_data[0] = 5;
break;
case 5:
store_name += " (+5)";
@@ -459,8 +460,9 @@ void enchant_weapon(short pc_num,short item_hit,short enchant_type,short new_val
case 6:
store_name += " (B)";
univ.party[pc_num].items[item_hit].bonus++;
univ.party[pc_num].items[item_hit].ability = eItemAbil::BLESS_CURSE;
univ.party[pc_num].items[item_hit].ability_strength = 5;
univ.party[pc_num].items[item_hit].ability = eItemAbil::AFFECT_STATUS;
univ.party[pc_num].items[item_hit].abil_data[0] = 5;
univ.party[pc_num].items[item_hit].abil_data[1] = int(eStatus::BLESS_CURSE);
univ.party[pc_num].items[item_hit].magic_use_type = 0;
univ.party[pc_num].items[item_hit].charges = 8;
break;