示例#1
0
 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;
     }
 }