Пример #1
0
    public override void Attack(GuardAbs guardObj)
    {
        GoldCarrier gc = guardObj.gameObject.GetComponent <GoldCarrier>();

        if (gc == null || gos.Contains(gc.gameObject))
        {
            return;
        }

        gos.Add(gc.gameObject);
        UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip_1));
        if (guardObj.getGuardLevel() <= getAttackLevel())
        {
            //等级相同,摧毁对方(只有超载矿车)
            if (guardObj.DestrotyGameObj(this))
            {    //成功摧毁对方
                TryDestroy(this);
            }
        }
        else
        {
            //等级高于检查站,则扣钱
            int gold = gc.popGold();
            gc.setGoldAmounts(Mathf.FloorToInt(gold * tax));
        }
    }
Пример #2
0
 public override void OnSelfUnitCollisionStart(Collider selfUnit)
 {
     base.OnSelfUnitCollisionStart(selfUnit);
     if (selfUnit.gameObject.GetComponent <DestoryMe>() != null)
     {
         if (!selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory)
         {
             selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory = true;
         }
         else
         {
             GoldCarrier goldCarrier = selfUnit.GetComponent <GoldCarrier>();
             if (goldCarrier != null)
             {
                 MineMountain mineMountain = this.GetComponent <MineMountain>();
                 mineMountain.getMineFromCar(goldCarrier.popGold());
             }
             selfUnit.gameObject.SendMessage(GameobjBase.TryDestroyFUNC, SendMessageOptions.DontRequireReceiver);
             //Destroy(selfUnit.gameObject);
         }
     }
     else
     {
         selfUnit.gameObject.AddComponent <DestoryMe>();
         selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory = true;
     }
 }
Пример #3
0
 /// <summary>
 /// 平分双方金钱
 /// </summary>
 /// <param name="enemyGold"></param>
 /// <param name="myGold"></param>
 void divideGoldEqually(GoldCarrier enemyGold, GoldCarrier myGold)
 {
     totalPirateGold += enemyGold.popGold();
     totalPirateGold += myGold.popGold();
     enemyGold.addGold(totalPirateGold / 2);
     myGold.addGold(totalPirateGold / 2);
     totalPirateGold = 0;
 }
Пример #4
0
    void OnTriggerEnter(Collider other)
    {
        //这里要处理所有玩家的单位,所以不去继承之前写的那个基类
        GameobjBase gBase   = other.GetComponent <GameobjBase>();
        GoldCarrier carrier = other.GetComponent <GoldCarrier>();

        if (gBase == null || carrier == null)
        {
            return;
        }
        UnityEventCenter.SendMessage <ScoreAddEvent>(new ScoreAddEvent(gameObject, gBase.getOwner(), carrier.popGold()));//发送分数增加事件
        other.gameObject.SendMessage(GameobjBase.TryDestroyFUNC);
        //Destroy(other.gameObject);
    }
Пример #5
0
    private int totalPirateGold = 0;//当双方都是劫掠者时使用

    public override void OnEnemyCollisionStart(Collider enemy)
    {
        base.OnEnemyCollisionStart(enemy);
        enemyGoldCarrier = enemy.gameObject.GetComponent <GoldCarrier>();
        if (enemyGoldCarrier)
        {
            isMarauder = enemy.gameObject.GetComponent <MarauderTramcarGuard>();
            if (isMarauder)//如果是劫掠者,执行这一段
            {
                divideGoldEqually(enemyGoldCarrier, myGoldCarrier);
            }
            else//如果是普通小车,执行这一段
            {
                getEnemyGold(enemyGoldCarrier);
            }
        }
    }
Пример #6
0
    public override void OnEnemyCollisionStart(Collider enemy)
    {
        MineMountain       mineMountain       = this.GetComponent <MineMountain>();
        ExplorationTramcar explorationTramcar = enemy.GetComponent <ExplorationTramcar>();

        base.OnEnemyCollisionStart(enemy);
        if (!(mineMountain.isSmallMine && explorationTramcar))
        {
            GoldCarrier goldCarrier = enemy.GetComponent <GoldCarrier>();
            if (goldCarrier != null)
            {
                mineMountain.getMineFromCar(goldCarrier.popGold());
            }
            enemy.gameObject.SendMessage(GameobjBase.TryDestroyFUNC);
            //Destroy(enemy.gameObject);
        }
    }
Пример #7
0
 void Awake()
 {
     myGoldCarrier = this.GetComponent <GoldCarrier>();
 }
Пример #8
0
 /// <summary>
 /// 直接抢走别人的钱
 /// </summary>
 /// <param name="goldCarrier"></param>
 void getEnemyGold(GoldCarrier goldCarrier)
 {
     myGoldCarrier.addGold(goldCarrier.popGold());
 }