예제 #1
0
    public static int AttackDistance(UnitBase from, UnitBase to)    //计算攻击需要的距离
    {
        if (from == null || to == null)
        {
            return(-1);
        }
        int cnt   = 0;
        int fromY = from.GetPosition().Position.y;
        int toY   = to.GetPosition().Position.y;

        if (fromY > toY)
        {
            TheGameCommon.Common.Swap(ref fromY, ref toY);
        }
        //foreach (var i in GameGlobal.Getinstance().GameMain.GridSystem.RowCounter)
        //   Debug.Log(i);
        for (int i = fromY; i <= toY; i++)
        {
            if (GameGlobal.Get().GameMain.GridSystem.RowCounter[i] > 0)
            {
                cnt++;
            }
        }
        return(cnt);
    }
예제 #2
0
 void OnBorn()
 {
     //行计数器加1
     GameGlobal.Get().GameMain.GridSystem.RowCounter[GetPosition().Position.y]++;
     //添加事件
     EventAdd();
     EventManager.Get().EventTrigger(EventTypes.Unit_OnBorn, gameObject);
     //向回合系统列表添加单位
     RoundSystem.Get().AddUnit(this);
 }
예제 #3
0
    void AddHolyWaterPerRound(object info)
    {
        AddHolyWater(3);
        int cnt = 0;

        foreach (var i in GameGlobal.Get().GameMain.GridSystem.CubeCells)
        {
            if (i.CurrentUnit != null)
            {
                cnt++;
            }
        }
        if (cnt == 0)
        {
            AddHolyWater(1);
        }
    }
예제 #4
0
 void OnDeath()
 {
     //播放死亡音效
     AudioManager.Get().PlaySound(SoundsList.Unit_OnDeath, 0.2f);
     //广播死亡消息
     UIManager.Get().MsgOnScreen(UnitName + "已死亡!");
     //行计数器扣除
     GameGlobal.Get().GameMain.GridSystem.RowCounter[GetPosition().Position.y]--;
     //触发单位死亡事件(Unit_OnUnitDeath)
     EventManager.Get().EventTrigger(EventTypes.Unit_OnDeath, gameObject);
     //事件移除
     EventRemove();
     //解引用
     GetPosition().CurrentUnit = null;
     //移除回合系统列表
     RoundSystem.Get().RemoveUnit(this);
 }
예제 #5
0
 public GameMain()
 {
     GameGlobal.Get().SetGameMain(this);
 }