public override void Activate(Behavior_Seeker activator) { if (!activated) { ActivateWorker(); } else { TradeWorker(); } }
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); } }
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); } }
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); } }
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; } }
//[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);