public override void OnKill(PlayerControl target) { // キルクールダウン設定 if (PlayerControl.LocalPlayer.isRole(RoleType.Trapper)) { if (Trap.isTrapped(target) && !isTrapKill) // トラップにかかっている対象をキルした場合のボーナス { Helpers.log("トラップにかかっている対象をキルした場合のボーナス"); player.killTimer = PlayerControl.GameOptions.KillCooldown - bonusTime; trapperSetTrapButton.Timer = cooldown - bonusTime; } else if (Trap.isTrapped(target) && isTrapKill) // トラップキルした場合のペナルティ { Helpers.log("トラップキルした場合のクールダウン"); player.killTimer = PlayerControl.GameOptions.KillCooldown; trapperSetTrapButton.Timer = cooldown; } else // トラップにかかっていない対象を通常キルした場合はペナルティーを受ける { Helpers.log("通常キル時のペナルティ"); player.killTimer = PlayerControl.GameOptions.KillCooldown + penaltyTime; trapperSetTrapButton.Timer = cooldown + penaltyTime; } if (!isTrapKill) { MessageWriter writer; writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ClearTrap, Hazel.SendOption.Reliable, -1); AmongUsClient.Instance.FinishRpcImmediately(writer); RPCProcedure.clearTrap(); } isTrapKill = false; } }