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(); } }
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); } }
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]; }
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); }
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; } }
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; } }