Finish support of generalized status effects (probably)

- Negative dumbfounding increases effective magic skills; works on monsters too (though it already did)
- Martyr's Shield no longer permanent on monsters
- Invisible status effect works on monsters (same as permanent invisibility)
- Poisoned weapon status effect works on monsters (adds poison to their first melee attack)
- Restore Mind spell no longer removes negative dumbfounding
- Invulnerability status effect works on monsters (same as permanent invulnerability, and stacks with it)
- Magic resistance status effect works on monsters (halves fire/cold damage)
- Negative magic resistance doubles magic/cold damage (both on PCs and monsters)
This commit is contained in:
2015-01-27 14:55:51 -05:00
parent ed84ccef19
commit 2933f1e2e7
5 changed files with 61 additions and 15 deletions

View File

@@ -503,6 +503,11 @@ void display_party() {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Magic Resistant",eTextMode::WRAP,style);
cur_rect++;
}
if(univ.party[i].status[eStatus::MAGIC_RESISTANCE] < 0)
if(cur_rect <= 9) {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Magic Vulnerable",eTextMode::WRAP,style);
cur_rect++;
}
if(univ.party[i].status[eStatus::WEBS] > 0)
if(cur_rect <= 9) {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Webbed",eTextMode::WRAP,style);
@@ -523,6 +528,11 @@ void display_party() {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Dumbfounded",eTextMode::WRAP,style);
cur_rect++;
}
if(univ.party[i].status[eStatus::DUMB] < 0)
if(cur_rect <= 9) {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Enlightened",eTextMode::WRAP,style);
cur_rect++;
}
if(univ.party[i].status[eStatus::MARTYRS_SHIELD] > 0)
if(cur_rect <= 9) {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Martyr's Shield",eTextMode::WRAP,style);
@@ -533,6 +543,11 @@ void display_party() {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Asleep",eTextMode::WRAP,style);
cur_rect++;
}
if(univ.party[i].status[eStatus::ASLEEP] < 0)
if(cur_rect <= 9) {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Hyperactive",eTextMode::WRAP,style);
cur_rect++;
}
if(univ.party[i].status[eStatus::PARALYZED] > 0)
if(cur_rect <= 9) {
win_draw_string(mainPtr,pc_status_rect[cur_rect],"Paralyzed",eTextMode::WRAP,style);