라오에서 효과 서로 주고받고 버그나는 거 보니까
전투원, 장비, 적들 간 영향 관계를 네트워크처럼 만들고
네트워크의 관계 링크를 따라가면서 수치를 계산해서 업데이트 하는 것 같음

가령 닥터->테티스->티아맷 등으로 공버프 링크가 이어져있는데 닥터가 대기하면
다음 라운드에 닥터 공버프가 켜지고 테티스가 공버프 받고 티아맷에게 공버프를 준다던지,
누군가 스킬을 쓰면 링크로 연결되어있는 전투원, 적들의 수치를 변경한다던지

애초에 효과 수치 계산하려면 어찌됐든 순서는 정하면서도 같은 결과가 나와야 할텐데
스마조는 획득순서 혹은 자리배치 등으로 정했을 뿐임
내 생각에는 이런 고정 순서로 해놓는 게 디버그할 때 편해서 그렇게 해놓은 것 같음

단지 지금 이게 문제가 되는 이유는 2가지임

1.
예전에는 자신의 공격력만큼 절대수치로 합산시켜주는 전투원이 없었기 때문에
버프를 계산하는 순서가 딱히 상관이 없었음
영향을 주는 같은 종류의 버프들은
라운드 개시 시 마다, 혹은 스킬을 쓸 때마다 같은 종류의 버프끼리 덧셈만 해놓고
데미지 계산할 때에만 가져와서 곱셈 계산하면 되었기 때문임

즉 같은 종류의 버프 계산 시 최종 %수치들을 곱셈할 뿐이니까
전투원 순서 상 A->B->드리아드->테티스 == A->B->테티스->드리아드 였음

그런데 이제는 절대수치만큼 공격력을 올려주는 스킬이 생겼기 때문에

전투 개시 시 혹은 라운드 개시 시에
버프 계산 시 최종 %수치들을 곱셈 + 절대수치 덧셈이 공존하게 되어서
전투원 순서 상 A->B->드리아드->테티스 != 전투원 A->B->테티스->드리아드 가 되어버린 거임

2.
테티스 스킬은 자신이 공버프 받은 공격력의 일부만큼 공버프를 주변에 뿌리는 거니까
전투원 A,B,C로 인한 공버프 관계가 모두 계산된 후에
테티스로 인한 버프 관계가 계산되는 것이 맞음 (A->B->드리아드->테티스)

그런데 테티스의 버프 관계 계산을 마지막에 안하고 중간에 먼저 하려는데,
드리아드로 인한 버프 관계 계산이 빠진 채로 테티스의 절대수치 덧셈이 계산되어서 손실이 나버리고,
드리아드로 인한 공버프 계산 시에 테티스 절대수치 계산을 안 하고 넘어가버리는 거임  (A->B->테티스->드리아드)

이거 해결하려면 그냥 모든 캐릭터마다 버프 계산 시에,
버프 영향 받는 전투원에게 이런 비슷한 절대수치 버프 스킬이 있으면
해당 캐릭터의 절대수치 버프를 다시 계산하게 만들면 될 것 같음 (A->B->테티스->드리아드(+테티스))
물론 한 번 더 계산하느라 CPU는 더 쓰겠지

문제는 절대수치 버프를 주는 사이클이 존재하는 경우인데
그냥 곱셈 버프만 고려하는 거면 모를까, 덧셈까지 있으면 여기까지 신경쓰고 싶지는 않네

내 분야에서만 일어날 것 같았던 현상을 라오에서 다시 보게 될 줄은 꿈에도 몰랐음

3줄 요약
1. 예전에 문제가 안 되었던 게 절대수치 버프로 인해 새롭게 문제가 되어버린 걸지도 모름
2. 의외로 문제 해결은 쉽게 할 수 있을지도 모름
3. 뇌피셜임