コード例 #1
0
    protected override void OnDieUnit(Unit deadUnit)
    {
        int dropGold = 0, dropPoint = 0;

        //if (deadUnit.UnitType != UnitType.Prop && deadUnit.UnitType != UnitType.Boss)
        //{
        if (deadUnit is Npc || deadUnit is Prop)
        {
            for (int i = 0; i < SpawnUnitList.Count; i++)
            {
                if (SpawnUnitList[i] != deadUnit)
                {
                    continue;
                }

                uint lowDataId = SpawnUnitList[i] is Npc ? (SpawnUnitList[i] as Npc).NpcLowID : (SpawnUnitList[i] as Prop).PropLowID;
                for (int j = 0; j < MonDataList.Count; j++)    //리젠 카운트
                {
                    if (MonDataList[j].IsDieMob || !MonDataList[j].MonsterId.Equals(lowDataId))
                    {
                        continue;
                    }

                    MonDataList[j].IsDieMob = true;
                    MonDataList[j].RunTime  = 0;

                    dropGold  = MonDataList[j].DropGold;
                    dropPoint = MonDataList[j].DropPoint;
                    break;
                }

                SpawnUnitList.RemoveAt(i);
                break;
            }
        }
        else if (deadUnit is Pc)
        {
            base.OnDieUnit(deadUnit);
            return;
        }

        //    return;
        //}

        AddGold(deadUnit, dropGold);//일단 골드만
        //AddGold(deadUnit, dropPoint);//다른 방식으로 HUD페널에 전달해야할듯

        //HudPanel.COIN_LOOTING((float)data.CurValue);

        if (HudPanel != null)//이거 죽여야하나???
        {
            HudPanel.SpecialKillCount(0);
        }

        //if (DropRewardDic.ContainsKey(deadNpc.SpwanUnitId))
        //    DropRewardDic.Remove(deadNpc.SpwanUnitId);

        /*
         * if (SpawnPropList.Contains(deadNpc))
         *  SpawnPropList.Remove(deadNpc);
         *
         * if (0 < SpawnPropList.Count)
         *  return;
         *
         * SpawnPropList.Clear();
         * PrepareEndGame(true);
         * EndGame(true);
         */
    }