Example #1
0
        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);
                }
            }
        }
Example #3
0
        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;
            }
        }
Example #4
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));
            }
        }
Example #5
0
        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);
            }
        }
Example #6
0
 public static bool IsEndPoint(PlayableCell cell)
 {
     return(cell.ClientID != "");
 }