From 0eff236512f8549a5ed50b3be2f61f1d99dd6487 Mon Sep 17 00:00:00 2001 From: gsemaj Date: Sat, 19 Aug 2023 15:26:56 -0700 Subject: [PATCH] Fix corruption reflection --- src/Abilities.cpp | 2 ++ src/MobAI.cpp | 22 ++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Abilities.cpp b/src/Abilities.cpp index d2769e3..bed931b 100644 --- a/src/Abilities.cpp +++ b/src/Abilities.cpp @@ -218,6 +218,8 @@ static std::vector handleSkill(SkillData* skill, int power, ICombat case SkillType::CORRUPTIONATTACK: case SkillType::CORRUPTIONATTACKLOSE: case SkillType::CORRUPTIONATTACKWIN: + // skillHandler = handleSkillCorruptionReflect; + // break; case SkillType::DAMAGE: skillHandler = handleSkillDamage; break; diff --git a/src/MobAI.cpp b/src/MobAI.cpp index e65c0eb..ae29a20 100644 --- a/src/MobAI.cpp +++ b/src/MobAI.cpp @@ -295,12 +295,22 @@ static void dealCorruption(Mob *mob, std::vector targetData, int skillID, i if (plr->Nanos[plr->activeNano].iStamina > 150) respdata[i].iNanoStamina = plr->Nanos[plr->activeNano].iStamina = 150; // fire damage power disguised as a corruption attack back at the enemy - SkillData skill = Abilities::SkillTable[skillID]; - skill.durationTime[0] = 0; - skill.values[0][0] = 200; // have to set - skill.values[0][1] = 200; // all of these - skill.values[0][2] = 200; // because the player might - skill.values[0][3] = 200; // have a boost + SkillData skill = { + SkillType::DAMAGE, // skillType + SkillEffectTarget::POINT, // effectTarget + 1, // effectType + SkillTargetType::MOBS, // targetType + SkillDrainType::ACTIVE, // drainType + 0, // effectArea + {0, 0, 0, 0}, // batteryUse + {0, 0, 0, 0}, // durationTime + {0, 0, 0}, // valueTypes (unused) + { + {200, 200, 200, 200}, + {200, 200, 200, 200}, + {200, 200, 200, 200}, + } + }; Abilities::useNanoSkill(sock, &skill, *plr->getActiveNano(), { mob }); } else { respdata[i].iHitFlag = HF_BIT_STYLE_LOSE;