Exemplo n.º 1
0
        void SpawnUnit(EngineerId id)
        {
            var instance = ObjectPool.Spawn(EngineerPrefab, SpawnPoint.position);

            instance.Init(this, id);
            _units.Add(id, instance);
        }
Exemplo n.º 2
0
 public Engineer(EngineerId id, float fixTime, Money price, Money salary, string level, bool hired)
 {
     Id      = id;
     FixTime = fixTime;
     Price   = price;
     Salary  = salary;
     Level   = level;
     Hired   = hired;
 }
Exemplo n.º 3
0
        public void Hire(EngineerId id)
        {
            var unit = Get(id);

            if (CanHire(unit))
            {
                _finance.Spend(unit.Price);
                unit.Hire();
                _event.Fire(new Engineer_Hired(unit.Id));
            }
        }
Exemplo n.º 4
0
        public void Init(Engineer engineer, bool canHire, Action <EngineerId> hireCallback)
        {
            Id              = engineer.Id;
            NameText.text   = Id.Name;
            PriceText.text  = engineer.Price.ToString();
            SalaryText.text = $"{engineer.Salary}/h";
            LevelText.text  = engineer.Level;

            HireButton.onClick.RemoveAllListeners();
            HireButton.onClick.AddListener(() => hireCallback(Id));

            UpdateCanHire(canHire);
        }
Exemplo n.º 5
0
        EngineerId GenerateId()
        {
            _availableNames.Clear();
            _availableNames.AddRange(_settings.EngineerNames);
            foreach (var id in _usedIds)
            {
                _availableNames.Remove(id.Name);
            }
            if (_availableNames.Count == 0)
            {
                return(EngineerId.Empty);
            }
            var newId = new EngineerId(RandomUtils.GetItem(_availableNames));

            _usedIds.Add(newId);
            return(newId);
        }
Exemplo n.º 6
0
 public void DoneFixServer(EngineerId id, ServerView server)
 {
     _break.FixServer(server.Id);
     _inProgressServers.Remove(server.Id);
 }
Exemplo n.º 7
0
 public float GetFixTime(EngineerId id)
 {
     return(_engineer.Get(id).FixTime);
 }
Exemplo n.º 8
0
        public bool CanHire(EngineerId id)
        {
            var unit = Get(id);

            return(CanHire(unit));
        }
Exemplo n.º 9
0
 public Engineer Get(EngineerId id) => DictUtils.GetOrDefault(_units, id);
Exemplo n.º 10
0
 public Engineer_New(EngineerId id)
 {
     Id = id;
 }
Exemplo n.º 11
0
 public Engineer_Hired(EngineerId id)
 {
     Id = id;
 }
Exemplo n.º 12
0
 void OnHire(EngineerId id)
 {
     _engineer.Hire(id);
 }
Exemplo n.º 13
0
 public void Init(EngineerManager manager, EngineerId id)
 {
     _manager = manager;
     Id       = id;
 }