Exemplo n.º 1
0
    private void updateBtnList()
    {
        // Remove buttons for Workers that no longer exist.
        for (int i = this.workerButtons.Count - 1; i >= 0; i--)
        {
            WorkerListButton btn = this.workerButtons[i];
            if (btn.worker == null)  // || btn.worker.isDead) {
            // Worker is either gone or dead
            {
                this.workerButtons.RemoveAt(i);
                GameObject.Destroy(btn.gameObject);
            }
        }

        // Create buttons for Worker's not in the list.
        foreach (EntityBase e in this.world.entities.list)
        {
            if (e is EntityWorker)
            {
                EntityWorker worker = (EntityWorker)e;

                if (!this.workerButtons.Any(btn => btn.worker == worker))
                {
                    WorkerListButton newButton = GameObject.Instantiate(this.btnPrefab, this.btnArea).GetComponent <WorkerListButton>();
                    newButton.setWorker(worker);
                    this.workerButtons.Add(newButton);
                }
            }
        }
    }
Exemplo n.º 2
0
    public override void onTaskStop()
    {
        base.onTaskStop();

        this.navPath     = null;
        this.target      = null;
        this.attackTimer = 0;
    }
Exemplo n.º 3
0
    private void Start()
    {
        EntityWorker worker = this.GetComponentInParent <EntityWorker>();

        int style = worker.info.hairStyle;

        this.GetComponent <DirectionalSpriteSwapper>().sprites =
            Main.instance.workerFactory.getHairSpritesFromId(style);
    }
Exemplo n.º 4
0
    private void Start()
    {
        EntityWorker worker = this.GetComponentInParent <EntityWorker>();

        int skinTone = worker.info.skinTone;

        this.GetComponent <SpriteRenderer>().color =
            Main.instance.workerFactory.getSkinColorFromTone(skinTone);
    }
Exemplo n.º 5
0
    public void setWorker(EntityWorker worker)
    {
        this.worker = worker;

        this.textName.text = worker.info.fullName;

        if (this.preview != null)
        {
            this.preview.setTarget(worker);
        }
    }
Exemplo n.º 6
0
    public void setWorker(EntityWorker worker)
    {
        this.worker = worker;

        WorkerInfo info = this.worker.info;

        this._headerText.text = info.lastName.ToLower();

        this.infoText.text = string.Format(this.infoTextTemplate,
                                           this.worker.info.fullName,     // Name
                                           this.worker.type.typeName,     // Job
                                           info.pay,                      // Pay
                                           info.personality.displayName); // Personality

        this.preview.setTarget(this.worker);
    }
Exemplo n.º 7
0
        public (bool, int) Commit()
        {
            bool res = false;
            int  num = 0;

            try
            {
                using (var con = _conFactory.CreateCon())
                {
                    con.Open();
                    IDbTransaction trans = con.BeginTransaction();
                    try
                    {
                        if (this.Workers.Count > 0)
                        {
                            while (Workers.Count > 0)
                            {
                                EntityWorker worker = Workers.Dequeue();
                                con.Execute(worker.SqlBuilder.Invoke(worker.Data), worker.Data, trans);
                                num++;
                            }
                            trans.Commit();
                            this.Workers.Clear();
                        }
                        res = true;
                    }
                    catch (Exception ex)
                    {
                        trans.Rollback();
                        num = 0;
                    }
                    finally
                    {
                        if (con.State != ConnectionState.Closed)
                        {
                            con.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

            return(res, num);
        }
Exemplo n.º 8
0
    public EntityWorker spawnWorker(World world, Position pos, WorkerInfo info, WorkerType type)
    {
        EntityBase e = world.entities.spawn(
            pos,
            this._workerEntityId);

        if (e is EntityWorker)
        {
            EntityWorker worker = (EntityWorker)e;
            worker.info = info;
            worker.setType(type);

            return(worker);
        }
        else
        {
            return(null);
        }
    }
Exemplo n.º 9
0
    private void updateTopText()
    {
        // Update Text
        int workerCount = 0;
        int totalCost   = 0;

        foreach (EntityBase e in this.world.entities.list)
        {
            if (e is EntityWorker)
            {
                EntityWorker worker = (EntityWorker)e;
                if (!worker.isDead)
                {
                    workerCount++;
                    totalCost += worker.info.pay;
                }
            }
        }

        this.textWorkerCount.text = "Workers: " + workerCount;
        this.textWorkerCost.text  = "Cost Per Day: $" + totalCost;
    }
Exemplo n.º 10
0
    private void Update()
    {
        if (!Pause.isPaused())
        {
            if (this._world.time.time > this.lastPayTime + _payRate)
            {
                // Pay Workers.

                if (!CameraController.instance.inCreativeMode)
                {
                    IntVariable money = this._world.money;

                    foreach (EntityBase e in this._world.entities.list)
                    {
                        if (e is EntityWorker)
                        {
                            EntityWorker worker = (EntityWorker)e;
                            if (!worker.isDead)
                            {
                                if (money.value < worker.info.pay)
                                {
                                    money.value = 0;
                                    // Play unhappy effect.
                                    worker.emote.startEmote(new Emote("angry", 2f).setTooltip("Didn't get paid"));
                                }
                                else
                                {
                                    money.value -= worker.info.pay;
                                }
                            }
                        }
                    }
                }

                this.lastPayTime = this._world.time.time;
            }
        }
    }
Exemplo n.º 11
0
    public override bool shouldExecute()
    {
        foreach (EntityBase e in this.owner.world.entities.list)
        {
            if (e is EntityWorker)
            {
                if (e.depth == this.owner.depth && Vector2.Distance(e.worldPos, this.owner.worldPos) < this._workerSpotRange)
                {
                    NavPath p = this.agent.calculatePath(e.position);
                    if (p != null)
                    {
                        this.navPath = p;
                        this.agent.setPath(p);
                        this.target = (EntityWorker)e;

                        return(true);
                    }
                }
            }
        }

        return(false);
    }
Exemplo n.º 12
0
    /// <summary>
    /// Initialized a new World.
    /// </summary>
    public void initialize(string saveName, NewWorldSettings settings)
    {
        this.saveName = saveName;
        this.seed     = settings.getSeed();


        this.preInitialization();


        // Create land plots
        this.plotManager.initializeFirstTime(this.seed);


        // Generate the map.
        for (int depth = 0; depth < this.storage.layerCount; depth++)
        {
            this.mapGenerator.generateLayer(this, depth);
        }


        // Unlock the plot that contains the Dumptruck and set the
        // Worker spawn point.
        List <CellBehaviorMasterDepositPoint> masters = this.getAllBehaviors <CellBehaviorMasterDepositPoint>();

        if (masters.Count > 0)
        {
            CellBehaviorMasterDepositPoint m = masters[0];
            this.plotManager.getPlot(m.pos.x, m.pos.y).isOwned = true;
            this.storage.workerSpawnPoint = m.pos.add(-1, -1);
        }
        else
        {
            Debug.LogWarning("No MasterDepositPoint could be found when generating a new map, there must always be at least one!");
        }


        // Set starting money.
        this.money.value = this.mapGenerator.startingMoney;


        // Setup the new Player.
        CameraController.instance.initNewPlayer(settings);


        // Spawn the starting Workers.
        WorkerFactory factory = Main.instance.workerFactory;

        foreach (WorkerType workerType in this.mapGenerator.startingWorkers)
        {
            if (workerType != null)
            {
                int          xShift = UnityEngine.Random.Range(-1, 2);
                int          yShift = UnityEngine.Random.Range(0, 2);
                EntityWorker worker = factory.spawnWorker(
                    this,
                    this.storage.workerSpawnPoint.add(xShift, -yShift),
                    factory.generateWorkerInfo(workerType, Main.instance.personalityRegistry.getDefaultPersonality()),
                    workerType);
            }
        }


        this.postInitialization();


        CameraController.instance.changeLayer(this.mapGenerator.playerStartLayer);
    }
Exemplo n.º 13
0
 public void setOccupant(EntityWorker worker)
 {
     this.occupant = worker;
 }
Exemplo n.º 14
0
 public EntityManager(string connectionString, bool isCodeFirst)
 {
     this.connectionString = connectionString;
     this.isCodeFirst      = isCodeFirst;
     this.entityWorker     = new EntityWorker(connectionString, isCodeFirst);
 }
Exemplo n.º 15
0
 public void setTarget(EntityWorker worker)
 {
     this.setTarget(worker.info, worker.type);
 }
Exemplo n.º 16
0
 public WaitForPathToFinish(EntityWorker worker)
 {
     this.worker = worker;
     this.path   = this.worker.moveHelper.path;
 }