You are right. It's going to be in battle.cpp
For AOE skills it first calls function
bool CCharacter::AoeSkill( CSkills* skill, CCharacter* Enemy ) but that's not the end of it.
next it scans through all enemies in range and individually calls function
void CCharacter::UseAtkSkill( CCharacter* Enemy, CSkills* skill, bool deBuff ) for each enemy.
It seems like for every revision of the source code something new gets broken in here.
Battle.cpp has always been the bane of my life.
All I can really suggest is that you set up a lot of debug code with plenty of logs to figure out exactly what is going on in there.
We need to know which monsters (if any) are being targeted and how much damage is being applied to each.
Need to lookup information on NARose items, skills, quests?
Now featuring a newly completed skill tree for all classesFormatting fixed for different resolutions"A Gazelle is nothing but a giraffe plotted logarithmicaly"