Exemplo n.º 1
0
        private void UpdateShipHud(On.Hud.orig_UpdateShipHud orig, Hud self, Player player, float dt)
        {
            MoveableBaseRoot controlledMoveableBaseRoot = player.GetControlledShip() as MoveableBaseRoot;

            if (controlledMoveableBaseRoot)
            {
                Ship.Speed speedSetting = controlledMoveableBaseRoot.GetSpeedSetting();
                self.m_shipHudRoot.SetActive(value: true);
                self.m_rudderSlow.SetActive(speedSetting == Ship.Speed.Slow);
                self.m_rudderForward.SetActive(speedSetting == Ship.Speed.Half);
                self.m_rudderFastForward.SetActive(speedSetting == Ship.Speed.Full);
                self.m_rudderBackward.SetActive(speedSetting == Ship.Speed.Back);
                self.m_rudderLeft.SetActive(value: false);
                self.m_rudderRight.SetActive(value: false);
                self.m_fullSail.SetActive(false);
                self.m_halfSail.SetActive(false);
                self.m_shipWindIconRoot.gameObject.SetActive(false);
                self.m_shipWindIndicatorRoot.gameObject.SetActive(false);
                GameObject rudder2 = self.m_rudder;
                rudder2.SetActive(false);
                self.m_shipRudderIndicator.gameObject.SetActive(value: false);

                Camera mainCamera = Utils.GetMainCamera();
                if (!(mainCamera == null))
                {
                    self.m_shipControlsRoot.transform.position = mainCamera.WorldToScreenPoint(controlledMoveableBaseRoot.m_controlGuiPos.position);
                }
                return;
            }
            orig(self, player, dt);
        }
Exemplo n.º 2
0
        private static void Prefix(ref Ship __instance, ref List <Player> ___m_players, ref float ___m_backwardForce)
        {
            if (__instance.HaveControllingPlayer())
            {
                Ship.Speed speed = __instance.GetSpeedSetting();
                // only when padding backwards/forwards
                if (speed == Ship.Speed.Back || speed == Ship.Speed.Slow)
                {
                    int rowersCount = 0;

                    // we don't want to count controlling player
                    ZDOID controllingPlayer = (ZDOID)__instance.m_shipControlls.GetType().GetMethod("GetUser", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance.m_shipControlls, new object[] { });

                    foreach (Player player in ___m_players)
                    {
                        if (player.IsSitting() && !player.GetZDOID().Equals(controllingPlayer))
                        {
                            rowersCount++;
                        }
                    }
                    if (___m_backwardForce != 0.5f)  // we don't want to boost raft since it doesn't have any sitting spots
                    {
                        ___m_backwardForce = 0.2f + (rowersCount * 0.05f);
                    }
                }
            }
        }
Exemplo n.º 3
0
 private static void Postfix(ref Ship __instance)
 {
     if (IsPlayerControlling(__instance))
     {
         Ship.Speed shipSpeed = __instance.GetSpeedSetting();
         if (shipSpeed != Ship.Speed.Stop)
         {
             Player.m_localPlayer.RaiseSkill((Skills.SkillType)SKILL_TYPE, sailingConfig.SkillIncrease);
         }
     }
 }
Exemplo n.º 4
0
    // Token: 0x060004FE RID: 1278 RVA: 0x00029AD8 File Offset: 0x00027CD8
    private void UpdateShipHud(Player player, float dt)
    {
        Ship controlledShip = player.GetControlledShip();

        if (controlledShip == null)
        {
            this.m_shipHudRoot.gameObject.SetActive(false);
            return;
        }
        Ship.Speed speedSetting = controlledShip.GetSpeedSetting();
        float      rudder       = controlledShip.GetRudder();
        float      rudderValue  = controlledShip.GetRudderValue();

        this.m_shipHudRoot.SetActive(true);
        this.m_rudderSlow.SetActive(speedSetting == Ship.Speed.Slow);
        this.m_rudderForward.SetActive(speedSetting == Ship.Speed.Half);
        this.m_rudderFastForward.SetActive(speedSetting == Ship.Speed.Full);
        this.m_rudderBackward.SetActive(speedSetting == Ship.Speed.Back);
        this.m_rudderLeft.SetActive(false);
        this.m_rudderRight.SetActive(false);
        this.m_fullSail.SetActive(speedSetting == Ship.Speed.Full);
        this.m_halfSail.SetActive(speedSetting == Ship.Speed.Half);
        this.m_rudder.SetActive(speedSetting == Ship.Speed.Slow || speedSetting == Ship.Speed.Back || (speedSetting == Ship.Speed.Stop && Mathf.Abs(rudderValue) > 0.2f));
        if ((rudder > 0f && rudderValue < 1f) || (rudder < 0f && rudderValue > -1f))
        {
            this.m_shipRudderIcon.transform.Rotate(new Vector3(0f, 0f, 200f * -rudder * dt));
        }
        if (Mathf.Abs(rudderValue) < 0.02f)
        {
            this.m_shipRudderIndicator.gameObject.SetActive(false);
        }
        else
        {
            this.m_shipRudderIndicator.gameObject.SetActive(true);
            if (rudderValue > 0f)
            {
                this.m_shipRudderIndicator.fillClockwise = true;
                this.m_shipRudderIndicator.fillAmount    = rudderValue * 0.25f;
            }
            else
            {
                this.m_shipRudderIndicator.fillClockwise = false;
                this.m_shipRudderIndicator.fillAmount    = -rudderValue * 0.25f;
            }
        }
        float shipYawAngle = controlledShip.GetShipYawAngle();

        this.m_shipWindIndicatorRoot.localRotation = Quaternion.Euler(0f, 0f, shipYawAngle);
        float windAngle = controlledShip.GetWindAngle();

        this.m_shipWindIconRoot.localRotation = Quaternion.Euler(0f, 0f, windAngle);
        float windAngleFactor = controlledShip.GetWindAngleFactor();

        this.m_shipWindIcon.color = Color.Lerp(new Color(0.2f, 0.2f, 0.2f, 1f), Color.white, windAngleFactor);
        Camera mainCamera = Utils.GetMainCamera();

        if (mainCamera == null)
        {
            return;
        }
        this.m_shipControlsRoot.transform.position = mainCamera.WorldToScreenPoint(controlledShip.m_controlGuiPos.position);
    }