Esempio n. 1
0
    public override void Activate()
    {
        Manager_Main.Tool current_tool = Manager_Main.Instance.GetCurrentTool();
        int cost = (workshop_type == current_tool.type) ? workshop_tool_upgrade_cost : workshop_tool_change_cost;

        if (Manager_Main.Instance.GetGemQuantities()[current_tool.tier] >= cost && (current_tool.tier < Manager_Main.Instance.GetGemColors().Length - 1 || workshop_type != current_tool.type))
        {
            // Take payment
            Manager_Main.Instance.ChangeGemQuantity(current_tool.tier, -cost);

            int new_tier = (workshop_type == current_tool.type) ? current_tool.tier + 1 : current_tool.tier;
            // Create new tool
            Manager_Main.Tool new_tool = new Manager_Main.Tool(workshop_tool_sprite, workshop_type, new_tier);
            Manager_Main.Instance.SetCurrentTool(new_tool);

            UpdateText(); // In case mouse is still over

            // Play effects
            Manager_Sounds.Instance.PlayPurchase();
        }
        else
        {
            // Play effects
            Manager_Sounds.Instance.PlayDenied();
        }
    }
Esempio n. 2
0
    protected override void UpdateText()
    {
        Manager_Main.Tool current_tool = Manager_Main.Instance.GetCurrentTool();

        int[] helper_gems = new int[Manager_Main.Instance.GetGemColors().Length];
        if (current_tool.type == workshop_type)                                      // Upgrade tool
        {
            if (current_tool.tier < Manager_Main.Instance.GetGemColors().Length - 1) // Can still upgrade
            {
                Manager_Main.Instance.SetUIHelperText(tool_name + " || Upgrade cost:");
                helper_gems[current_tool.tier] = workshop_tool_upgrade_cost;
                Manager_Main.Instance.SetUIHelperGems(helper_gems);
            }
            else // No more upgrades
            {
                Manager_Main.Instance.SetUIHelperText(tool_name + " || No more upgrades");
                Manager_Main.Instance.SetUIHelperGems(helper_gems);
            }
        }
        else // Change tool
        {
            Manager_Main.Instance.SetUIHelperText(tool_name + " || Change cost:");
            helper_gems[current_tool.tier] = workshop_tool_change_cost;
            Manager_Main.Instance.SetUIHelperGems(helper_gems);
        }
    }
Esempio n. 3
0
 public void SetTool(Manager_Main.Tool new_tool)
 {
     tool                           = new_tool;
     move_speed                     = Parameters_Interactables.Instance.worker_move_speeds[tool.tier];
     activate_delay_seconds         = Parameters_Interactables.Instance.worker_activate_delay_seconds[tool.tier];
     ref_self_sprite_renderer.color = Manager_Main.Instance.GetGemColors()[tool.tier];
 }
Esempio n. 4
0
    protected override void UpdateText()
    {
        Manager_Main.Slot existing_tool_slot = FindExistingSlot();

        int[] helper_gems = new int[Manager_Main.Instance.GetGemColors().Length];
        if (existing_tool_slot != null) // Upgrade tool
        {
            Manager_Main.Tool current_tool = existing_tool_slot.GetTool();
            if (current_tool.tier < Manager_Main.Instance.GetGemColors().Length - 1) // Can still upgrade
            {
                Manager_Main.Instance.SetUIHelperText(Manager_Main.Instance.GetToolName(workshop_type) + " (" + Manager_Main.Instance.GetToolDescription(workshop_type) + ") " + " Workshop " + workshop_text + "\nNext upgrade cost:");
                helper_gems[current_tool.tier] = Parameters_Interactables.Instance.workbench_upgrade_costs[current_tool.tier];
                Manager_Main.Instance.SetUIHelperGems(true, helper_gems);
            }
            else // No more upgrades
            {
                Manager_Main.Instance.SetUIHelperText(Manager_Main.Instance.GetToolName(workshop_type) + " (" + Manager_Main.Instance.GetToolDescription(workshop_type) + ") " + " Workshop " + workshop_text + "\nNo more upgrades");
                Manager_Main.Instance.SetUIHelperGems(false, helper_gems);
            }
        }
        else // Change tool
        {
            if (FindFreeSlot() != null)
            {
                Manager_Main.Instance.SetUIHelperText(Manager_Main.Instance.GetToolName(workshop_type) + " (" + Manager_Main.Instance.GetToolDescription(workshop_type) + ") " + " Workshop " + workshop_text + "\nTool cost:");
                helper_gems[initial_cost.gem_tier] = initial_cost.gem_amount;
                Manager_Main.Instance.SetUIHelperGems(true, helper_gems);
            }
            else
            {
                Manager_Main.Instance.SetUIHelperText(Manager_Main.Instance.GetToolName(workshop_type) + " (" + Manager_Main.Instance.GetToolDescription(workshop_type) + ") " + " Workshop " + workshop_text + "\nNo more slot space");
                Manager_Main.Instance.SetUIHelperGems(false, helper_gems);
            }
        }
    }
    private void TradeWorker()
    {
        Manager_Main.Tool temp = Manager_Main.Instance.slot_tool.GetTool();
        Manager_Main.Instance.slot_tool.SetTool(script_worker.GetTool());
        script_worker.SetTool(temp);

        // Play effects
        script_effect_grow.Grow();
        Manager_Sounds.Instance.PlayWorkerToolSwap(true);
    }
Esempio n. 6
0
    public override void Activate()
    {
        activate_tool = Manager_Main.Instance.GetCurrentTool();

        mining = false;
        float base_mining_power = Time.deltaTime * Manager_Main.Instance.GetMiningLevel() * Manager_Main.Instance.GetToolSpeedup();

        switch (activate_tool.type)
        {
        case Manager_Main.Tool_Type.Gloves:
            mining_multiplier = gloves_mining_multplier;
            mining            = true;
            break;

        case Manager_Main.Tool_Type.Pickaxe:
            mining_multiplier = pickaxe_mining_multplier;
            mining            = true;
            break;

        case Manager_Main.Tool_Type.Hammer:
            mining_multiplier = hammer_mining_multplier;
            ref_parent_spawner.DecreaseDurability(base_mining_power * mining_multiplier);
            Manager_Sounds.Instance.PlayHammerHit();
            break;

        case Manager_Main.Tool_Type.Bomb:
            mining_multiplier = bomb_mining_multplier;
            Collider2D[] nearby_objs_colli = Physics2D.OverlapCircleAll(transform.position, bomb_radius + Manager_Main.Instance.GetMiningLevel() * bomb_mine_level_scale);
            foreach (Collider2D colli in nearby_objs_colli)
            {
                if (colli.tag == "Node")
                {
                    colli.GetComponent <Behavior_Node>().GetSpawner().DecreaseDurability(base_mining_power * mining_multiplier);
                }
            }
            Manager_Sounds.Instance.PlayBombHit();
            break;

        case Manager_Main.Tool_Type.Staff:
            mining_multiplier = staff_mining_multplier;
            mining            = true;
            Manager_Sounds.Instance.PlayStaffHit();
            break;
        }
    }
Esempio n. 7
0
    public override void Activate(Behavior_Seeker activator)
    {
        activate_tool = activator.GetTool();

        mining = false;
        float base_mining_power = Time.deltaTime * Manager_Main.Instance.GetMiningLevel() * Manager_Main.Instance.GetToolSpeedup(activate_tool);

        switch (activate_tool.type)
        {
        case Manager_Main.Tool_Type.Gloves:
            mining_multiplier = Parameters_Mining.Instance.gloves_mining_multiplier;
            mining            = true;
            Manager_Sounds.Instance.PlayBasicHit(ref_self_sprite_renderer.isVisible);
            break;

        case Manager_Main.Tool_Type.Pickaxe:
            mining_multiplier = Parameters_Mining.Instance.pickaxe_mining_multiplier;
            mining            = true;
            Manager_Sounds.Instance.PlayBasicHit(ref_self_sprite_renderer.isVisible);
            break;

        case Manager_Main.Tool_Type.Hammer:
            mining_multiplier = Parameters_Mining.Instance.hammer_mining_multiplier;
            script_parent_spawner.DecreaseDurability(base_mining_power * mining_multiplier);
            Grow(Parameters_Mining.Instance.hammer_grow_mult);
            Shake(Parameters_Mining.Instance.hammer_shake_mult);
            Manager_Sounds.Instance.PlayHammerHit(ref_self_sprite_renderer.isVisible);
            break;

        case Manager_Main.Tool_Type.Bomb:
            mining_multiplier = Parameters_Mining.Instance.bomb_mining_multiplier;
            float        explosion_radius  = Parameters_Mining.Instance.bomb_radius + Manager_Main.Instance.GetMiningLevel() * Parameters_Mining.Instance.bomb_mine_level_scale;
            Collider2D[] nearby_objs_colli = Physics2D.OverlapCircleAll(transform.position, explosion_radius);
            foreach (Collider2D colli in nearby_objs_colli)
            {
                if (colli.tag == "Node")
                {
                    Behavior_Node script_node = colli.GetComponent <Behavior_Node>();
                    script_node.GetSpawner().DecreaseDurability(base_mining_power * mining_multiplier);
                    script_node.Grow();
                }
            }
            script_parent_spawner.PlayEffectExplosion(explosion_radius, Manager_Main.Instance.GetGemColors()[activate_tool.tier]);
            Manager_Sounds.Instance.PlayBombHit(ref_self_sprite_renderer.isVisible);
            break;

        case Manager_Main.Tool_Type.Staff:
            mining_multiplier = Parameters_Mining.Instance.staff_mining_multiplier;
            mining            = true;
            Manager_Sounds.Instance.PlayStaffHit(ref_self_sprite_renderer.isVisible);
            break;

        case Manager_Main.Tool_Type.Torch:
            mining_multiplier = Parameters_Mining.Instance.torch_mining_multiplier;
            mining_auto_off   = Parameters_Mining.Instance.torch_burn_duration_seconds + Manager_Main.Instance.GetMiningLevel() * Parameters_Mining.Instance.torch_duration_level_scale;
            mining_start_time = Time.time;
            mining            = true;
            Manager_Sounds.Instance.PlayTorchHit(ref_self_sprite_renderer.isVisible);
            break;
        }
    }