예고대로 하기 전에...일단 개념을 정리할 필요가 있으니까...
범위를 조금 넓혀보기 위한 사전 포석?

CvEventManager.py의 def onUnitKilled(self, argsList): 구문은, 유닛이 죽었을 경우를 처리해준다.
전에도 얘기했지만...죽임을 당하는 것과 희생되는 것은 처리 구문이 다르다.
희생할 수 있는 경우는 의외로 많기 때문에...확실히 구분해야 한다. 이 트리거를 발동시키지 않기 때문...

kill이 발생하는 경우는 다음과 같다.
①체력이 0으로 떨어지면(전사하든, 주문을 맞든)
②투기장에서 경험치가 오르지 않을 경우(백병/정찰 계열 및 노예)
③흡혈귀들의 먹이로 줄 때(블러드펫)
④늑대 무리를 구성할 때(늑대 두마리 다)
⑤납치에 실패했을 때 수도로 탈출하지 못한 경우(백병 계열)
⑥지옥의 마도서를 읽었을 경우 10%확률로
⑦도날 루를 제외한 유닛이 모병시(위대한 지휘관)
⑧환영 유닛들이 폭로 주문을 맞았을 때
⑨장비를 강탈당했을 때
⑩소용돌이Maelstrom를 빠져나가지 못하면

물론 유닛이 죽는다는 것은...어지간한 경우 당연히 손해가 나는 일이지.
따라서 이걸 전략적으로 이용하기 위해서는...당해서, 피동적으로 죽는 것이 아니라(①⑤⑧⑨⑩) 내가 죽는 위치를 조절할 수 있어야 한다.
죽는 유닛이 내게 도움이 되는 경우는 그럼 또 언제인가...
자 이제부터 구문에서 처리하는, 유닛이 죽었을 때 어떻게 되는가를 한번 보자.
def onUnitKilled(self, argsList):
'Unit Killed'
unit, iAttacker = argsList
iPlayer = unit.getOwner()
player = PyPlayer(iPlayer)
attacker = PyPlayer(iAttacker)
pPlayer = gc.getPlayer(iPlayer)

if (unit.isAlive() and unit.isImmortal() == False):
......

if unit.getUnitType() == gc.getInfoTypeForString('UNIT_ACHERON'):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), False)

if CyGame().getWBMapScript():
sf.onUnitKilled(unit, iAttacker)

if (not self.__LOG_UNITKILLED):
return
CvUtil.pyPrint('Player %d Civilization %s Unit %s was killed by Player %d' 
%(player.getID(), player.getCivilizationName(), PyInfo.UnitInfo(unit.getUnitType()).getDescription(), attacker.getID()))

너무 길어서 중간에 말줄임표를...
 말줄임표가 들어있는 구문에 들어가는 조건은 죽은 유닛이 살아있는 유닛이었고 불멸 유닛(불멸 승급이 붙었거나, 이모탈급 유닛이거나)이 아니어야 한다.
  이후는 내일 다루고...
 두번째 구문은 죽은 유닛이 적룡 아케론일 경우, 아케론에게서 고정된Held 상태를 제거해 준다. 괴수 지배 같은걸로 데려갈 수 있잖아.
 세번째 구문은 시나리오용으로, 처리를 ScenarioFunctions.py에게 넘긴다. 승리 조건이나 기타 등등 처리를 위한 거니 커스텀 게임에서는 신경쓸 일이 아니고...
 네번째 구문은 하는 일이 없고...
 다섯번째 구문은 네번째 구문에서 엔터키 없이 한줄로 붙은 것인데, 누가 누구에게 죽었어요~ 하는 메시지 출력이다.

희생되는 경우? 유닛을 소모해서 무언가를 하는 경우를 말하는데...
 희생 주문이야 뭐 당연히 해당되고(악마의 제단이든 천사든)
 유닛이 전환될 때도 대부분 죽는게 아니다.(예로, 전사급 유닛을 물에 빠뜨려서 익사자 만들 때 말이야...처절한 비명이 들리기는 하는데, 죽는 건 아니고 희생으로 처리되거든)
 늑대 무리를 구성할 때와 다르게 이미 구성된 늑대 무리에 늑대를 흡수시킨다거나 하는 것도 마찬가지지.(흡수라는 차원에서 플레시 골렘에 먹히는 애들도...)
아이고 설명하기 귀찮군. 야튼 위에 적혔던 10대 이유로 죽는게 아니면 해당 구문은 발동이 안돼.


음 해석만 했군...하지만 사전 작업이라 안해 둘 수도 없으니...
 
죠니 사사키가 작성한 글입니다.
,