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); }
void OnBorn() { //行计数器加1 GameGlobal.Get().GameMain.GridSystem.RowCounter[GetPosition().Position.y]++; //添加事件 EventAdd(); EventManager.Get().EventTrigger(EventTypes.Unit_OnBorn, gameObject); //向回合系统列表添加单位 RoundSystem.Get().AddUnit(this); }
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); } }
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); }
public GameMain() { GameGlobal.Get().SetGameMain(this); }