special: implements raise from dead/dust/stone...

This commit is contained in:
Laurent Alonso(fr)
2020-06-04 14:20:10 +02:00
committed by Celtic Minstrel
parent 28c75935fd
commit edf03d31f8

View File

@@ -2656,8 +2656,10 @@ void affect_spec(const runtime_state& ctx) {
// (Actually, I think the only compatibility thing is that it's <= instead of ==) // (Actually, I think the only compatibility thing is that it's <= instead of ==)
if(spec.ex2a <= 0) { if(spec.ex2a <= 0) {
int i; int i;
if(spec.ex1a == 2) if(spec.ex1a == 2) {
i = -1; // CHECKME
ctx.cur_target = &univ.party; ctx.cur_target = &univ.party;
}
else if(spec.ex1a == 1) { else if(spec.ex1a == 1) {
i = select_pc(0); i = select_pc(0);
if(i != 6) if(i != 6)
@@ -2821,7 +2823,13 @@ void affect_spec(const runtime_state& ctx) {
for(short i = 0; i < 6; i++) for(short i = 0; i < 6; i++)
if(pc_num == 6 || pc_num == i) { if(pc_num == 6 || pc_num == i) {
if(spec.ex1b == 0) { if(spec.ex1b == 0) {
if(spec.ex1a == 3 && is_combat() && which_combat_type == 0 && univ.party[i].main_status == eMainStatus::FLED) if(spec.ex1a == 0 && univ.party[i].main_status == eMainStatus::DEAD)
univ.party[i].main_status = eMainStatus::ALIVE;
else if(spec.ex1a == 1 && univ.party[i].main_status == eMainStatus::DUST)
univ.party[i].main_status = eMainStatus::ALIVE;
else if(spec.ex1a == 2 && univ.party[i].main_status == eMainStatus::STONE)
univ.party[i].main_status = eMainStatus::ALIVE;
else if(spec.ex1a == 3 && is_combat() && which_combat_type == 0 && univ.party[i].main_status == eMainStatus::FLED)
univ.party[i].main_status = eMainStatus::ALIVE; univ.party[i].main_status = eMainStatus::ALIVE;
else if(spec.ex1a == 4) else if(spec.ex1a == 4)
univ.party[i].main_status -= eMainStatus::SPLIT; univ.party[i].main_status -= eMainStatus::SPLIT;