public override void Activate(Behavior_Seeker activator)
 {
     if (!activated)
     {
         ActivateWorker();
     }
     else
     {
         TradeWorker();
     }
 }
Exemplo n.º 2
0
    public override void Activate(Behavior_Seeker activator)
    {
        if (Manager_Main.Instance.GetGemQuantities()[cost.gem_tier] >= cost.gem_amount)
        {
            // Convert gems
            Manager_Main.Instance.ChangeGemQuantity(cost.gem_tier, -cost.gem_amount);
            Manager_Main.Instance.ChangeGemQuantity(cost.gem_tier + 1, Mathf.FloorToInt(cost.gem_amount * gain_ratio));

            // Play effects
            script_effect_shake.Shake();
            Manager_Sounds.Instance.PlayUpverter(true);
        }
        else
        {
            // Play effects
            Manager_Sounds.Instance.PlayDenied(true);
        }
    }
Exemplo n.º 3
0
    public override void Activate(Behavior_Seeker activator)
    {
        if (unlockable && Manager_Main.Instance.GetGemQuantities()[cost_tier] >= cost_amount)
        {
            Manager_Main.Instance.ChangeGemQuantity(cost_tier, -cost_amount);
            script_unlock_room.gameObject.SetActive(true);
            script_opposite_gate.gameObject.SetActive(false);
            gameObject.SetActive(false);

            // Play effects
            Manager_Sounds.Instance.PlayPurchase(true);
        }
        else
        {
            // Play effects
            Manager_Sounds.Instance.PlayDenied(true);
        }
    }
Exemplo n.º 4
0
    public override void Activate(Behavior_Seeker activator)
    {
        bool upgrade;

        Manager_Main.Slot free_slot = new Manager_Main.Slot();

        Manager_Main.Slot     existing_tool_slot = FindExistingSlot();
        Manager_Main.Gem_Cost cost = new Manager_Main.Gem_Cost();
        if (existing_tool_slot != null) // Upgrade
        {
            if (existing_tool_slot.GetTool().tier >= Manager_Main.Instance.GetGemColors().Length - 1)
            {
                // Play effects
                Manager_Sounds.Instance.PlayDenied(true);
                return;
            }

            upgrade = true;

            cost.gem_tier   = existing_tool_slot.GetTool().tier;
            cost.gem_amount = Parameters_Interactables.Instance.workbench_upgrade_costs[cost.gem_tier];
        }
        else // Add tool
        {
            upgrade   = false;
            free_slot = FindFreeSlot();
            if (free_slot == null)
            {
                // Play effects
                Manager_Sounds.Instance.PlayDenied(true);
                return;
            }

            // There are free slots
            cost = initial_cost;
        }

        if (Manager_Main.Instance.GetGemQuantities()[cost.gem_tier] >= cost.gem_amount)
        {
            // Take payment
            Manager_Main.Instance.ChangeGemQuantity(cost.gem_tier, -cost.gem_amount);

            if (upgrade)
            {
                existing_tool_slot.SetTool(new Manager_Main.Tool(workshop_type, cost.gem_tier + 1));
            }
            else // Add
            {
                free_slot.SetTool(new Manager_Main.Tool(workshop_type, 0));
            }

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

            // Play effects
            script_effect_shake.Shake();
            Manager_Sounds.Instance.PlayPurchase(true);
        }
        else // Not enough gems
        {
            // Play effects
            Manager_Sounds.Instance.PlayDenied(true);
        }
    }
Exemplo n.º 5
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;
        }
    }
Exemplo n.º 6
0
    //[SerializeField] private string tag_ui_helper = "";

    //private GameObject ui_helper_base = null;
    //private Text ui_helper_text = null;

    public abstract void Activate(Behavior_Seeker activator);