Beispiel #1
0
        public int Remove(IUnit removeUnit)
        {
            var ind = ArmyList.IndexOf(removeUnit);

            ArmyList.Remove(removeUnit);
            return(ind);
        }
Beispiel #2
0
 public void RemoveArmy(Army army)
 {
     if (ArmyList.Contains(army))
     {
         ArmyList.Remove(army);
         manager.RemoveArmy(army);
     }
     else
     {
         throw new System.ArgumentException("Attempt to remove army not owned by player");
     }
 }
    /// <summary>
    /// 检查单位是否死亡
    /// </summary>
    /// <returns></returns>
    private void checkArmyDead()
    {
        int  index  = 0;
        bool isdead = false;

        foreach (var item in OtherArmyCtrlList)
        {
            if (item.armyState.Hp <= 0)
            {
                Dispatch(AreoCode.UI, UIEvent.PROMPT_PANEL_EVENTCODE, "敌方单位死亡");
                if (item.armyState.MoveType == ArmyMoveType.SKY)
                {
                    //如果是飞行单位
                    ArmyList.Remove(item.OtherMapPintctrl.SkyArmy);
                    Destroy(item.OtherMapPintctrl.SkyArmy);
                    item.OtherMapPintctrl.RemoveSkyArmy();
                }
                else if (item.armyState.MoveType == ArmyMoveType.LAND)
                {
                    //如果是陆地单位
                    ArmyList.Remove(item.OtherMapPintctrl.LandArmy);
                    Destroy(item.OtherMapPintctrl.LandArmy);
                    item.OtherMapPintctrl.RemoveLandArmy();
                }

                isdead = true;
                break;
            }
            index++;
        }
        if (isdead)
        {
            OtherArmyCtrlList.RemoveAt(index);
        }
        isdead = false;
    }