Esempio n. 1
0
 private void SwitchToAppearanceByDistance(NameplateNode nameplate)
 {
     if (nameplate.nameplatePosition.sqrDistance < nameplate.nameplateOpacity.sqrConcealmentDistance)
     {
         nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateAppearanceState>();
     }
 }
Esempio n. 2
0
        public void UpdateNameplateTransform(UpdateEvent e, NameplateNode nameplate, [JoinByTank] WeaponRendererNode weapon, [JoinByTank] TankNode remoteTank, [JoinAll] SingleNode <HUDWorldSpaceCanvas> worldSpaceHUD)
        {
            NameplateComponent nameplateComponent = nameplate.nameplate;
            Transform          nameplateTransform = nameplateComponent.transform;
            Camera             cachedCamera       = nameplateComponent.CachedCamera;
            Vector3            position           = weapon.weaponVisualRoot.transform.position;

            this.PositionAboveTank(position, nameplateTransform, nameplateComponent);
            this.AlignToCamera(nameplate, nameplateTransform, cachedCamera);
            WorldSpaceHUDUtil.ScaleToRealSize(worldSpaceHUD.component.canvas.transform, nameplateTransform, nameplateComponent.CachedCamera);
            nameplate.nameplatePosition.sqrDistance = (cachedCamera.transform.position - nameplateTransform.position).sqrMagnitude;
        }
        public void ColorizeTeamNameplate(NodeAddedEvent e, [Combine] NameplateNode nameplate, [Context, JoinByUser] TeamUserNode teamUser, [Context, JoinByTeam] TeamColorNode teamColor, SingleNode <NameplateTeamColorComponent> nameplateTeamColor)
        {
            TeamColor color = teamColor.colorInBattle.TeamColor;

            if (color == TeamColor.BLUE)
            {
                nameplate.nameplate.Color         = nameplateTeamColor.component.blueTeamColor;
                nameplate.nameplate.alwaysVisible = true;
                nameplate.nameplate.AddBlueHealthBar(nameplate.Entity);
            }
            else if (color == TeamColor.RED)
            {
                nameplate.nameplate.Color         = nameplateTeamColor.component.redTeamColor;
                nameplate.nameplate.alwaysVisible = false;
                nameplate.nameplate.AddRedHealthBar(nameplate.Entity);
            }
        }
Esempio n. 4
0
        private void AlignToCamera(NameplateNode nameplate, Transform nameplateTransform, Camera camera)
        {
            Vector3 inCamPos         = camera.WorldToScreenPoint(nameplateTransform.position);
            Vector3 previousPosition = nameplate.nameplatePosition.previousPosition;
            float   x = Mathf.Round(inCamPos.x);
            float   y = Mathf.Round(inCamPos.y);
            float   z = inCamPos.z;

            if (this.NearlyEqual(inCamPos, previousPosition))
            {
                inCamPos.x = Mathf.Round(previousPosition.x);
                inCamPos.y = Mathf.Round(previousPosition.y);
            }
            else
            {
                inCamPos.x = Mathf.Round(inCamPos.x);
                inCamPos.y = Mathf.Round(inCamPos.y);
            }
            nameplate.nameplatePosition.previousPosition = inCamPos;
            Vector3 position = new Vector3(x, y, z);

            nameplateTransform.position = camera.ScreenToWorldPoint(position);
            nameplateTransform.rotation = camera.transform.rotation;
        }
Esempio n. 5
0
 public void ToAppearanceState(NodeAddedEvent e, NameplateNode nameplate, [Context, JoinByTank] TankInvisibilityEffectDeactivationStateNode tank)
 {
     nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateAppearanceState>();
 }
Esempio n. 6
0
 public void ToAppearanceState(NodeAddedEvent e, NameplateNode nameplate)
 {
     nameplate.nameplate.Alpha = 0f;
     nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateAppearanceState>();
 }
Esempio n. 7
0
 public void ToInvisibilityEffectState(NodeAddedEvent e, TeamBattleNode teamBattle, [Context, JoinByBattle] SelfBattleUserInTeamModeNode selfBattleUser, [Context, JoinByTeam] TeamNode selfTeam, [Combine] NameplateNode nameplate, [Context, JoinByTank, Combine] TankInTeamInvisibilityEffectWorkingStateNode tank, [Context, JoinByTeam, Combine] TeamNode tankTeam)
 {
     if (!selfTeam.Entity.Equals(tankTeam.Entity))
     {
         nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateInvisibilityEffectState>();
     }
 }
Esempio n. 8
0
 public void ToInvisibilityEffectState(NodeAddedEvent e, DMBattleNode dm, [Context, JoinByBattle] SelfBattleUserNode selfBattleUser, [Combine] NameplateNode nameplate, [Context, JoinByTank, Combine] TankInvisibilityEffectWorkingStateNode tank)
 {
     nameplate.nameplateEsm.esm.ChangeState <NameplateStates.NameplateInvisibilityEffectState>();
 }
 public void DeleteNameplate(NodeRemoveEvent e, TankReadyForNameplateNode tank, [JoinByTank, Combine] NameplateNode nameplate)
 {
     nameplate.nameplateESM.Esm.ChangeState <NameplateStates.NameplateDeletionState>();
 }
 public void ColorizeDMNameplate(NodeAddedEvent e, [Combine] NameplateNode nameplate, [Context, JoinByUser] UserNode user, [JoinByUser] SingleNode <BattleUserComponent> battleUser, [JoinByBattle] SingleNode <DMComponent> battle, SingleNode <NameplateTeamColorComponent> nameplateTeamColor)
 {
     nameplate.nameplate.Color         = !battleUser.Entity.HasComponent <SelfBattleUserComponent>() ? nameplateTeamColor.component.redTeamColor : nameplateTeamColor.component.blueTeamColor;
     nameplate.nameplate.alwaysVisible = false;
     nameplate.nameplate.AddRedHealthBar(nameplate.Entity);
 }
Esempio n. 11
0
 public void EnableHealthBarForEnemies(NodeAddedEvent e, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate, [Context] SelfTankNode selfTank, [Context, JoinByTank] SonarEffectNode sonarEffect)
 {
     if (!remoteTank.Entity.IsSameGroup <TeamGroupComponent>(selfTank.Entity))
     {
         nameplate.nameplate.Alpha         = 1f;
         nameplate.nameplate.alwaysVisible = true;
         nameplate.healthBar.ShowHealthBar();
     }
 }
Esempio n. 12
0
 public void DisableHealthBarsForSpectator(NodeAddedEvent e, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate, [Context] SelfSpectatorNode spectator)
 {
     if (!spectator.Entity.HasComponent <UserAdminComponent>() && !spectator.Entity.HasComponent <UserTesterComponent>())
     {
         nameplate.healthBar.HideHealthBar();
     }
     nameplate.nameplate.Alpha         = 1f;
     nameplate.nameplate.alwaysVisible = true;
 }
Esempio n. 13
0
 public void DisableHealthBarOnSpawn(NodeAddedEvent e, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate, [Context] SelfTankNode selfTank, [JoinByTank] Optional <SonarEffectNode> sonarEffect)
 {
     if (!sonarEffect.IsPresent() && !remoteTank.Entity.IsSameGroup <TeamGroupComponent>(selfTank.Entity))
     {
         nameplate.healthBar.HideHealthBar();
     }
 }
Esempio n. 14
0
 public void DisableHealthBarForEnemies(NodeRemoveEvent e, SonarEffectNode sonarEffect, [Context, JoinByTank] SelfTankNode selfTank, [Context, Combine] RemoteTankNode remoteTank, [Context, JoinByTank] NameplateNode nameplate)
 {
     if (!remoteTank.Entity.IsSameGroup <TeamGroupComponent>(selfTank.Entity))
     {
         nameplate.nameplate.alwaysVisible = false;
         nameplate.healthBar.HideHealthBar();
     }
 }