private void OnMissionCreated(Mission mission) { Missions.Add(mission); PlayableCell cell = _Grid.GetCell(mission.CellKey); cell.ClientID = mission.ClientID; cell.TargetID = mission.TargetID; Messenger <PlayableCell> .Broadcast(PlayableCell.EVENT_CELL_UPDATED, cell); }
private void OnCellUpdated(PlayableCell cell) { Transform cellTrans = transform.Find(string.Format(CELL_NAME_FORMAT, cell.Key.y, cell.Key.x)); if (cell != null) { CellController cellCtr = cellTrans.GetComponent <CellController>(); if (cellCtr != null) { cellCtr.UpdateCell(cell); } } }
public void UpdateCell(PlayableCell cell) { UpdateSprite(PipeSprite, PIPE_PREFIX, GetPipeString(cell.Pipe)); UpdateSprite(ClientSprite, CLIENT_PREFIX, cell.ClientID); ProgressSprite.fillAmount = cell.Progress; BountyLabel.text = cell.Bounty > 0 ? string.Format("{0}", cell.Bounty) : ""; if (cell.TargetID != "") { TargetSprite.color = ShanghaiConfig.Instance.MinistryColours[cell.TargetID]; TargetSprite.alpha = ShanghaiConfig.Instance.MissionTargetAlpha; } else { TargetSprite.alpha = 0; } }
private void OnSetPath(List <IntVect2> path) { if (_State == GameState.PLAY) { _Model.CanDraw = true; } Source source = _Model.Grid.GetSourceFromCell(path[0].x); PlayableCell cell = _Model.Grid.GetCell(path[path.Count - 1]); Mission mission = _Model.GetMissionFromCellKey(path[path.Count - 1]); if (source.TargetID != mission.TargetID) { _Model.Grid.ResetCellsInPath(path); _Model.Grid.ResetSourceCell(path[0].x); Client client = _Model.Clients[mission.ClientID]; client.DockReputation(); } else { _Model.ActiveMissions.Add(new ActiveMission(mission, path, source)); } }
public void TickMissions(float delta) { List <Mission> garbage = new List <Mission>(); foreach (Mission mission in _Model.Missions) { if (!mission.IsActive && mission.IsTTD(delta)) { garbage.Add(mission); PlayableCell cell = _Model.Grid.GetCell(mission.CellKey); cell.TargetID = ""; cell.ClientID = ""; Messenger <PlayableCell> .Broadcast(PlayableCell.EVENT_CELL_UPDATED, cell); } } /* Garbage collection */ foreach (Mission mission in garbage) { _Model.Missions.Remove(mission); } }
public static bool IsEndPoint(PlayableCell cell) { return(cell.ClientID != ""); }