protected override void ExecWhenObserving(PlayerEntity player, IUserCmd cmd) { int observedObjId = player.gamePlay.CameraEntityId; var observedPlayer = _playerContext.GetEntityWithEntityKey(new EntityKey(observedObjId, (short)EEntityType.Player)); if (observedPlayer != null) { UpdateCollisionLayerMask(observedPlayer); var punchRotation = new Vector3(2 * observedPlayer.orientation.PunchPitch, observedPlayer.orientation.PunchYaw, observedPlayer.orientation.FireRoll); UpdateCollisions(observedPlayer.cameraStateOutputNew, player.cameraFinalOutputNew, punchRotation, observedPlayer, true, cmd.ClientTime); } else { var observedFreeMove = _freeMoveContext.GetEntityWithEntityKey(new EntityKey(observedObjId, (short)EEntityType.FreeMove)); if (observedFreeMove != null) { CalcuWhenObserveFreeMove(player, observedFreeMove); } } }
protected override void DoSetData(PointerData data) { var player = _playerContext.flagSelfEntity; if (null == player) { Logger.Error("player self entity is null "); } var freeMoveEntity = _freeMoveContext.GetEntityWithEntityKey(new EntityKey(FreeObjectCastData.EntityId(data.IdList), (short)EEntityType.FreeMove)); if (null == freeMoveEntity) { Logger.Error("free move entity is null !"); return; } if (IsUntouchableOffGround(player, freeMoveEntity.position.Value, freeMoveEntity.unityGameObject.UnityObject)) { Tip = ""; return; } switch (freeMoveEntity.freeData.Cat) { case FreeEntityConstant.DeadBoxGroup: if (freeMoveEntity.hasFreeData) { var freeDataValue = freeMoveEntity.freeData.Value; if (StringUtil.IsNullOrEmpty(freeDataValue)) { Logger.Error("dead box free data value is missing."); } else { Tip = string.Format(ScriptLocalization.client_actiontip.deadbox, freeDataValue); } } else { Logger.Error("no free data attached to free move entity "); } break; case FreeEntityConstant.DropBoxGroup: Tip = ScriptLocalization.client_actiontip.dropbox; break; default: Tip = ""; Logger.ErrorFormat("illegal category {0}", freeMoveEntity.freeData.Cat); break; } }
private void CalcuWhenObserving(PlayerEntity playerEntity) { int observedObjId = playerEntity.gamePlay.CameraEntityId; var observedPlayer = _playerContext.GetEntityWithEntityKey(new EntityKey(observedObjId, (short)EEntityType.Player)); if (observedPlayer != null) { CalcuWhenObservePlayer(playerEntity, observedPlayer); return; } var observedFreeMove = _freeMoveContext.GetEntityWithEntityKey(new EntityKey(observedObjId, (short)EEntityType.FreeMove)); if (observedFreeMove != null) { CalcuWhenObserveFreeMove(playerEntity, observedFreeMove); } }
protected override void ExecWhenObserving(PlayerEntity player, IUserCmd cmd) { int observedObjId = player.gamePlay.CameraEntityId; var observedPlayer = _playerContext.GetEntityWithEntityKey(new EntityKey(observedObjId, (short)EEntityType.Player)); if (observedPlayer != null) { CalcuWhenObservePlayer(player, observedPlayer); } else { var observedFreeMove = _freeMoveContext.GetEntityWithEntityKey(new EntityKey(observedObjId, (short)EEntityType.FreeMove)); if (observedFreeMove != null) { CalcuWhenObserveFreeMove(player, observedFreeMove); } } }