public void end(BasePlayer winner = null) { #if DEBUG PluginInstance.PrintToChat($"ending hunt {hunterName} -> {bounty.targetName}, winner: {winner?.displayName ?? "null"}"); #endif if (huntTimer != null) { huntTimer.Destroy(); } if (ticker != null) { ticker.Destroy(); } PluginInstance.rename(hunter, hunterName); if (winner == hunter) { Interface.Oxide.CallHook("OnBountyCompleted", winner, target); //msg PluginInstance.huntSuccessfullMsg(this); //payout hunter.GiveItem(bounty.reward); } else if (winner == target) { //msg PluginInstance.huntFailedMsg(this); //payout target.GiveItem(bounty.reward); } else { //msg PluginInstance.huntExpiredMsg(this); bounty.noteUid = bounty.giveNote(hunter); BountyData.AddBounty(bounty); } PluginInstance.closeIndicators(target); PluginInstance.closeIndicators(hunter); bounty.hunt = null; HuntData.removeHunt(this); CooldownData.addCooldown(target); }