private static void HandleRegionSkills(GameSession session, PacketReader packet) { long skillSN = packet.ReadLong(); byte mode = packet.ReadByte(); int unknown = packet.ReadInt(); int unknown2 = packet.ReadInt(); CoordF position = packet.Read <CoordF>(); CoordF rotation = packet.Read <CoordF>(); // TODO: Verify rest of skills to proc correctly. // Send status correctly when Region attacks are proc. SkillCast parentSkill = SkillUsePacket.SkillCastMap[skillSN]; if (parentSkill.GetConditionSkill() == null) { return; } foreach (SkillCondition conditionSkill in parentSkill.GetConditionSkill()) { if (!conditionSkill.Splash) { continue; } SkillCast skillCast = new SkillCast(conditionSkill.Id, conditionSkill.Level, GuidGenerator.Long(), session.ServerTick, parentSkill); RegionSkillHandler.Handle(session, GuidGenerator.Int(), session.FieldPlayer.Coord, skillCast); } }