static void Postfix(RequestStartOfficerOrderPacket currentRequestPacket) { if (officerOrderDelegate == null) { return; } officerOrderDelegate(true, currentRequestPacket); }
static void Postfix(ActiveOfficerOrderInfo orderToRemove) { if (officerOrderDelegate == null) { return; } RequestStartOfficerOrderPacket packet = new RequestStartOfficerOrderPacket(); packet.officerNetworkPlayer = orderToRemove.officerPlayer.NetworkPlayer; packet.officerOrderType = orderToRemove.officerOrderType; packet.orderPosition = orderToRemove.spawnedPosition; packet.orderRotationY = orderToRemove.spawnedRotationY; officerOrderDelegate(false, packet); }
private static void Framework_officerOrderDelegate(bool isStart, RequestStartOfficerOrderPacket currentRequestPacket) { if (!isStart) { return; } int officerId = currentRequestPacket.officerNetworkPlayer.id; logger.Log(currentRequestPacket.officerOrderType.ToString()); playerToBot[officerId].ForEach((int id) => { switch (currentRequestPacket.officerOrderType) { case OfficerOrderType.FormLine: Vector3 target = new Vector3(); target.x = 0; target.z = 0; target.y = currentRequestPacket.orderRotationY - 180; if (rotationCache.ContainsKey(id)) { rotationCache[id] = target; } else { rotationCache.Add(id, target); } Framework.getCarbonPlayer(id).activeAction(PlayerActions.None, target, MeleeStrikeType.None); break; case OfficerOrderType.MakeReady: Framework.getCarbonPlayer(id).activeAction(PlayerActions.StartAimingFirearm, rotationCache[id], MeleeStrikeType.None); break; case OfficerOrderType.Fire: Framework.getCarbonPlayer(id).activeAction(PlayerActions.FireFirearm, rotationCache[id], MeleeStrikeType.None); break; } }); }