private void Inject(MirrorHelper mirrorHelper, Settings settings, PlayerAvatarManager avatarManager, FloorController floorController)
 {
     _mirrorHelper    = mirrorHelper;
     _settings        = settings;
     _avatarManager   = avatarManager;
     _floorController = floorController;
 }
예제 #2
0
    // Start is called before the first frame update
    void Start()
    {
        player          = GameObject.Find("Player");
        floorController = FindObjectOfType <FloorController>();

        StartCoroutine(Cinematic());
    }
예제 #3
0
    /// <summary>
    /// 获取parentID
    /// </summary>
    /// <returns></returns>
    private int GetPID(GameObject dev)
    {
        FactoryDepManager dep        = FactoryDepManager.Instance;
        DepNode           currentDep = FactoryDepManager.currentDep;
        int devPid;

        if (currentDep == null)
        {
            return(dep.NodeID);
        }
        if (currentDep as FloorController)
        {
            FloorController floor      = currentDep as FloorController;
            Transform       lastParent = dev.transform.parent;
            dev.transform.parent = floor.RoomDevContainer.transform;
            devPid = floor.GetDevBoundId(dev.transform.localPosition);
            dev.transform.parent = lastParent;
        }
        else if (currentDep as DepController || currentDep as BuildingController)
        {
            //区域和大楼,默认算厂区设备
            return(dep.NodeID);
        }
        else
        {
            devPid = currentDep.NodeID;
        }
        return(devPid);
    }
    // Start is called before the first frame update
    void Start()
    {
        dictFloor = new Dictionary <uint, FloorController>(floorData.Count);

        foreach (KeyValuePair <uint, FloorData> item in floorData)
        {
            GameObject floor = Instantiate(pfFloor, layoutFloor.transform);
            floor.transform.SetAsFirstSibling(); // for the right visual order
            FloorController component = floor.GetComponent <FloorController>();
            if (component)
            {
                component.SetFloorData(item.Value);
                component.UpdateUI();
                component.SetCallElevatorRequestCallback(OnGetCallElevatorRequest);
                dictFloor.Add(item.Key, component);
            }
        }

        FloorController topFloorController = GetFloorController(GameConfig.GetTopFloor());

        if (topFloorController)
        {
            // Cannot use position of top floor because its correct position will be updated in next frame.
            elevatorController.SetAtDefaultAnchoredPositionY();
        }

        elevatorController.SetOnElevatorStatusUpdateCallback(OnGetElevatorStatusUpdateRequest);
        elevatorController.SetUpdateElevatorPositionCallback(OnGetUpdateElevatorPositionRequest);

        SendElevatorData();
        SendElevatorStatusResponseToAllFloor();
    }
 private void EndTransfer()
 {
     Whinch.SetSoundState(false);
     CachedAudioSource.PlayOneShot(ArrivalSound);
     CurrentFloor = TargetFloor;
     TryOpenDoors();
 }
예제 #6
0
    void Start()
    {
        mStats           = new Stats(1, 60, 12, 2, 0, new int[] { 20, 4, 2, 0 });
        mRigidBody       = GetComponent <Rigidbody> ();
        mAnimator        = GetComponent <Animator> ();
        mFacingDirection = Vector2.right;
        mDying           = false;

        mTarget = GameObject.Find("Player").transform;

        expGiven = 15;
        //expGiven = 15 - 2 * (GameObject.Find ("Player").GetComponent<Player> ().mStats.Level - mStats.Level);

        mFloorControllerRef      = FindObjectOfType <FloorController> ();
        mFloorBoundary           = new float[4];
        mSpriteRenderer          = gameObject.GetComponentInChildren <SpriteRenderer> ();
        mInitialOrderInLayer     = (int)(transform.position.y);
        floorBoundaryInitialized = false;

        AudioSource[] audioSources = GetComponents <AudioSource> ();
        normalHit = audioSources [0];
        strongHit = audioSources [1];
        knifeHit  = audioSources [2];

        uiCanvas = (UICanvas)GameObject.FindGameObjectWithTag("UICanvas").GetComponent <UICanvas> ();
    }
예제 #7
0
    private Vector2 CalculateFloorStart(ExitProperties exitProperties, Vector2 position)
    {
        FloorController tmp          = floorPrefab.GetComponent <FloorController>();
        SpriteRenderer  _floorSprite = tmp.floortile.GetComponent <SpriteRenderer>();
        float           _incrementX  = _floorSprite.bounds.size.x;
        float           _incrementY  = _floorSprite.bounds.size.x;

        if (exitProperties.direction == ExitProperties.Dir.LEFT)
        {
            floorPrefab.GetComponent <FloorController>()._entry     = position - new Vector2(_incrementX, 0);
            floorPrefab.GetComponent <FloorController>()._rightExit = false;
            return(position - new Vector2(tmp.sizeX * _incrementX, _incrementY));
        }
        if (exitProperties.direction == ExitProperties.Dir.RIGHT)
        {
            floorPrefab.GetComponent <FloorController>()._entry    = position + new Vector2(_incrementX, 0);
            floorPrefab.GetComponent <FloorController>()._leftExit = false;
            return(position + new Vector2(_incrementX, -_incrementY));
        }
        if (exitProperties.direction == ExitProperties.Dir.UP)
        {
            floorPrefab.GetComponent <FloorController>()._entry    = position + new Vector2(0, _incrementY);
            floorPrefab.GetComponent <FloorController>()._downExit = false;
            return(position - new Vector2(_incrementX, -_incrementY));
        }
        if (exitProperties.direction == ExitProperties.Dir.DOWN)
        {
            floorPrefab.GetComponent <FloorController>()._entry  = position - new Vector2(0, _incrementY);
            floorPrefab.GetComponent <FloorController>()._upExit = false;
            return(position - new Vector2(_incrementX, _incrementY * tmp.sizeY));
        }
        return(new Vector2(0, 0));
    }
    // Health Bar Variables - End

    void Start()
    {
        mAnimator        = GetComponent <Animator>();
        mRigidBody       = GetComponent <Rigidbody>();
        mFacingDirection = Vector2.right;
        mJumping         = false;
        mGetHit          = false;
        mSliding         = false;
        mDashing         = false;
        mNormalAttack    = 0;
        mStrongAttack    = 0;

        mMoveSpeed = 5.0f;
        mJumpForce = 2.0f;

        // Init Floor stuff
        mFloorControllerRef      = FindObjectOfType <FloorController>();
        mFloorBoundary           = new float[4];
        mSpriteRenderer          = gameObject.GetComponentInChildren <SpriteRenderer>();
        mInitialOrderInLayer     = (int)(transform.position.y);
        floorBoundaryInitialized = false;

        // Init HealthBar Stuff
        mHealthBarRef = FindObjectOfType <HealthBar>();
    }
예제 #9
0
 /// <summary>
 /// 检测是否关闭建筑
 /// </summary>
 private void CloseBuildingCheck()
 {
     if (!IsBuildingOpen)
     {
         return;
     }
     if (BuildingController.isTweening || IsClickUGUIorNGUI.Instance.isOverUI)
     {
         return;
     }
     if (Input.GetMouseButtonDown(0))
     {
         Ray          ray     = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit[] hitInfo = Physics.RaycastAll(ray, float.MaxValue);
         bool         value   = false;
         for (int i = 0; i < hitInfo.Length; i++)
         {
             FloorController floor    = hitInfo[i].transform.GetComponent <FloorController>();
             BuildingFloor   topFloor = hitInfo[i].transform.GetComponent <BuildingFloor>();
             if (floor != null || topFloor != null)
             {
                 value = true;
                 break;
             }
         }
         if (!value)
         {
             if (FactoryDepManager.currentDep is BuildingController)
             {
                 BuildingController controller = FactoryDepManager.currentDep as BuildingController;
                 controller.CloseFloor();
             }
         }
     }
 }
예제 #10
0
    void Start()
    {
        int x = (int)transform.position.x / 10;
        int y = (int)transform.position.y / 10;

        floorController = MazeBuilder.ground[x][y].GetComponent <FloorController>();
    }
    void HandleUpdateElevatorPositionRequest(UpdateElevatorPositionRequest request)
    {
        uint nextFloor = elevatorData.curFloorLevel;

        if (elevatorData.status == ElevatorStatus.MovingDown)
        {
            nextFloor = elevatorData.curFloorLevel - 1;
            FloorController floorController = GetFloorController(nextFloor);
            if (floorController)
            {
                if (request.positionY <= floorController.GetFittedElevatorAnchoredPositionY())
                {
                    elevatorData.curFloorLevel = nextFloor;
                    // Update elevator status
                    SendElevatorStatusResponseToAllFloor();
                }
            }
        }
        else if (elevatorData.status == ElevatorStatus.MovingUp)
        {
            nextFloor = elevatorData.curFloorLevel + 1;
            FloorController floorController = GetFloorController(nextFloor);
            if (floorController)
            {
                if (request.positionY >= floorController.GetFittedElevatorAnchoredPositionY())
                {
                    elevatorData.curFloorLevel = nextFloor;
                    // Update elevator status
                    SendElevatorStatusResponseToAllFloor();
                }
            }
        }

        // Elevator arrived
        if (elevatorData.curFloorLevel == curDestFloor)
        {
            // Remove cur floor from list requesting
            listFloorsRequesting.Remove(curDestFloor);

            // Update floor status using elevator status
            if (elevatorData.status == ElevatorStatus.MovingDown || elevatorData.status == ElevatorStatus.MovingUp)
            {
                FloorData floorData = GetFloorData(elevatorData.curFloorLevel);
                floorData.OnElevatorArrived(curElevatorDirection);

                ElevatorArrivedResponse elevatorArrivedResponse = new ElevatorArrivedResponse(floorData);
                SendElevatorArrivedResponse(elevatorArrivedResponse);
            }

            elevatorData.status = ElevatorStatus.Arrived;
            UpdateElevatorResponse response = new UpdateElevatorResponse(elevatorData, 0);
            SendUpdateElevatorResponse(response);
        }
        else
        {
            UpdateElevatorPositionResponse response = new UpdateElevatorPositionResponse(ResultCode.Succeeded, elevatorData.curFloorLevel);
            SendUpdateElevatorPositionResponse(response);
        }
    }
예제 #12
0
    /// <summary>
    /// 检查是否属于同一楼层
    /// </summary>
    public bool CheckFloorDepNode(DepNode depNodeT)
    {
        if (depNode == null)
        {
            depNode = RoomFactory.Instance.GetDepNodeByTopo(info);
        }

        //if(depNodeT==null || depNodeT.TopoNode.Type== Types.楼层|| depNodeT.TopoNode.Type == Types.r)

        if (depNodeT == depNode)
        {
            return(true);
        }
        else
        {
            if (depNodeT == null)
            {
                return(false);
            }
            if (depNodeT.depType == DepType.Factory && depNode == null)
            {
                return(true);
            }
            else
            {
                if (depNode == null)
                {
                    return(false);
                }
            }
        }



        if (depNodeT.NodeObject != null && depNode.NodeObject != null)
        {
            FloorController floorcontroller1 = depNodeT.NodeObject.GetComponentInParent <FloorController>();
            FloorController floorcontroller2 = depNode.NodeObject.GetComponentInParent <FloorController>();
            if (floorcontroller1 == floorcontroller2)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else
        {
            if (depNodeT.NodeObject != depNode.NodeObject)
            {
                return(false);
            }
            else//两个都为空的情况
            {
                return(true);
            }
        }
    }
    void SendElevatorArrivedResponse(ElevatorArrivedResponse response)
    {
        FloorController floorController = GetFloorController(response.floorData.level);

        floorController?.OnGetElevatorArrivedResponse(response);

        elevatorInterfaceController?.OnGetElevatorArrivedResponse(response);
    }
 internal CustomAvatarManager(PacketManager packetManager, FloorController floorController, PlayerAvatarManager avatarManager, IMultiplayerSessionManager sessionManager, IAvatarProvider <LoadedAvatar> avatarProvider)
 {
     _packetManager   = packetManager;
     _avatarManager   = avatarManager;
     _sessionManager  = sessionManager;
     _avatarProvider  = avatarProvider;
     _floorController = floorController;
 }
예제 #15
0
 public void DeleteFloor(Transform target)
 {
     if (target != null)
     {
         FloorController targetController = target.GetComponent <FloorController>();
         floorParts.Remove(targetController);
         targetController.GetRidOfMe();
     }
 }
 /// <summary>
 /// 机房返回大楼
 /// </summary>
 public void BackToBuilding()
 {
     if (currentRoom)
     {
         currentRoom.HideDep();
     }
     RoomFactory.Instance.FocusNode(this);
     currentRoom = null;
 }
    /// <summary>
    /// 加载机房
    /// </summary>
    /// <param name="depNode"></param>
    /// <param name="isFocusRoom"></param>
    /// <param name="OnComplete"></param>
    private void RoomCreate(DepNode depNode, bool isFocusRoom, Action <FloorController> OnComplete = null)
    {
        int roomId = depNode.NodeID;

        Log.Info(string.Format("RoomCreate2 DepNode:{0},{1}", depNode, depNode.TopoNode != null));
        GameObject roomObject = GetRoomObject(roomId);

        FloorController controller = roomObject.GetComponent <FloorController>();

        controller.RecordPosInBuilding(depNode);  //记录在大楼中的位置信息
        controller.SetColliderState(false);

        DisplayFloor(controller);//单独展示楼层

        controller.ShowFloorDev();
        if (controller.TopoNode == null)
        {
            controller.SetTopoNode(depNode.TopoNode);                               //设置TopoNode
        }
        currentRoom = controller;
        if (!isFocusRoom)
        {
            SceneEvents.OnDepNodeChanged(currentRoom);
            if (!LocationManager.Instance.IsFocus)
            {
                //摄像头对焦完成后,开始加载设备
                FocusCamera(roomObject, () =>
                {
                    controller.CreateFloorDev(() =>
                    {
                        if (OnComplete != null)
                        {
                            OnComplete(currentRoom);
                        }
                    });
                });
            }
            else
            {
                controller.CreateFloorDev(() =>
                {
                    if (OnComplete != null)
                    {
                        OnComplete(currentRoom);
                    }
                });
            }
        }
        else
        {
            if (OnComplete != null)
            {
                OnComplete(currentRoom);
            }
        }
    }
    void SendCallElevatorResponse(CallElevatorResponse response)
    {
        FloorController component = GetFloorController(response.floorData.level);

        if (component)
        {
            component.OnGetCallElevatorResponse(response);
        }
        Logger.Log(logTagRes, "SendCallElevatorResponse " + JsonUtility.ToJson(response));
    }
예제 #19
0
    /// <summary>
    /// 设置设备的控制脚本
    /// </summary>
    /// <param name="Info"></param>
    private DevNode SetDevController(DevInfo Info, GameObject copyModel)
    {
        FactoryDepManager depManager = FactoryDepManager.Instance;

        if (depManager)
        {
            copyModel.AddCollider();
            if (Info.ParentId == depManager.NodeID)
            {
                copyModel.transform.parent = depManager.FactoryDevContainer.transform;
                return(DevControllerAdd(Info, copyModel, depManager));
            }
            else
            {
                FloorController floor = FactoryDepManager.currentDep as FloorController;
                if (floor && Info.ParentId == floor.NodeID)
                {
                    if (floor.RoomDevContainer != null)
                    {
                        return(InitRoomDevParent(copyModel, floor, floor.RoomDevContainer, Info));
                    }
                }
                else
                {
                    if (floor != null)
                    {
                        DepNode room = floor.ChildNodes.Find(item => item.NodeID == Info.ParentId);
                        if (room != null && room as RoomController)
                        {
                            RoomController controller = room as RoomController;
                            return(InitRoomDevParent(copyModel, controller, controller.RoomDevContainer, Info));
                        }
                        else
                        {
                            if (floor.RoomDevContainer != null)
                            {
                                return(InitRoomDevParent(copyModel, floor, floor.RoomDevContainer, Info));
                            }
                        }
                    }
                    else
                    {
                        RoomController roomController = FactoryDepManager.currentDep as RoomController;
                        if (roomController)
                        {
                            return(InitRoomDevParent(copyModel, roomController, roomController.RoomDevContainer, Info));
                        }
                    }
                    //Todo:保存到机柜
                    //Debug.Log("Check Dev PID:"+Info.ParentId);
                }
            }
        }
        return(null);
    }
예제 #20
0
        public void TestInitializer()
        {
            _unitOfWork = new MockUnitOfWork();

            _floorController = new FloorController(ModelMapper.Create(), _unitOfWork);
            _floorController.ControllerContext = Substitute.For <HttpControllerContext>();
            _floorController.Request           = new HttpRequestMessage();
            _floorController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
            _floorController.Request.SetConfiguration(new HttpConfiguration());
            _floorController.RequestContext.Principal = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.NameIdentifier, "1") }));
        }
예제 #21
0
    private void AssignPowerupToTile(string name)
    {
        floorTilePowerup               = GameObject.Find(name);
        floorTileController            = floorTilePowerup.GetComponent <FloorController>();
        floorTileController.hasPowerUp = true;
        PowerUp power = powerupGenerator.generateRandomPowerUp();

        AssignPowerupToSummaryTile(name, power);
        setPowerupColorOfTile(power.color);
        floorTileController.powerUp = power;
    }
    /// <summary>
    /// Update elevator status to all floor
    /// </summary>
    void SendElevatorStatusResponseToAllFloor()
    {
        // All of floor share the same msg for now.
        ElevatorStatusResponse response = new ElevatorStatusResponse(elevatorData.curFloorLevel, curElevatorDirection);

        for (uint i = GameConfig.GetBottomFloor(); i <= GameConfig.GetTopFloor(); i++)
        {
            FloorController floorController = GetFloorController(i);
            floorController?.OnGetElevatorStatusResponse(response);
        }
        Logger.Log(logTagRes, "SendElevatorStatusResponseToAllFloor" + JsonUtility.ToJson(response));
    }
 void InitScene()
 {
     _popup.HideView();
     _inputManager.Paused = false;
     switch (_currentGameState)
     {
     case GameState.NAVIGATION:
         _floor = new FloorController();
         _floor.ShowView();
         _pawn = new PawnController();
         _pawn.ShowView();
         break;
     }
 }
예제 #24
0
 public void IncreaseFloor()
 {
     foreach (var visualizer in spawnedRumah.Values)
     {
         if (visualizer.activeSelf)
         {
             FloorController fc = visualizer.GetComponent <FloorController>();
             if (fc != null)
             {
                 fc.IncreaseFloor();
             }
         }
     }
 }
 public void RecoverFloorsTransform()
 {
     if (ShowUnderFloors)
     {
         foreach (var item in ChildNodes)
         {
             FloorController floor = item as FloorController;
             if (floor)
             {
                 floor.RecoverPosInBuilding();
             }
         }
     }
 }
예제 #26
0
    private void OnDepCreate(DepNode dep)
    {
        if (CreateDeps.Contains(dep))
        {
            return;
        }
        CreateDeps.Add(dep);
        GameObject roomDevContainer = null;

        if (dep as RoomController)
        {
            RoomController room = dep as RoomController;
            roomDevContainer = room.RoomDevContainer;
            List <PhysicalTopology> blocks = TryGetRoomBlocks(room);
            //if (blocks != null)
            //{
            //    Debug.Log("Blcok Count:" + blocks);
            //    StartCoroutine(CreateBlocks(blocks, roomDevContainer));
            //}

            CommunicationObject.Instance.GetPointsByPid(room.NodeID, (points) =>
            {
                if (points != null)
                {
                    Debug.Log("Blcok Count:" + points);
                    StartCoroutine(CreateBlocks(points, roomDevContainer));
                }
            });
        }
        else if (dep as FloorController)
        {
            FloorController floor = dep as FloorController;
            roomDevContainer = floor.RoomDevContainer;
            //List<PhysicalTopology> blocks = TryGetRoomBlocks(floor);
            //if (blocks != null)
            //{
            //    Debug.Log("Blcok Count:" + blocks);
            //    StartCoroutine(CreateBlocks(blocks,roomDevContainer));
            //}
            CommunicationObject.Instance.GetPointsByPid(floor.NodeID, (points) =>
            {
                if (points != null)
                {
                    Debug.Log("Blcok Count:" + points);
                    StartCoroutine(CreateBlocks(points, roomDevContainer));
                }
            });
        }
    }
    /// <summary>
    /// 获取楼层对焦信息
    /// </summary>
    /// <param name="room"></param>
    /// <returns></returns>
    private AlignTarget GetFloorTargetInfo(GameObject room)
    {
        FloorController floor = room.GetComponent <FloorController>();

        if (floor != null)
        {
            return(floor.GetTargetInfo(room));
        }
        else
        {
            AlignTarget alignTargetTemp = new AlignTarget(room.transform, new Vector2(50, 0),
                                                          30, angleRange, new Range(2, 40));
            return(alignTargetTemp);
        }
    }
 private void HandleOnFloorRequested(FloorController floor)
 {
     if (floor == CurrentFloor)
     {
         TryOpenDoors();
     }
     else
     {
         RequestedFloors.Enqueue(floor);
         if (BusyDoorsCount == 0 && CurrentFloor != null)
         {
             HandleOldestRequest();
         }
     }
 }
    void Start()
    {
        //Setting = SystemSettingHelper.assetLoadSetting;
        ShowVertexs();

        buildingBox = GameObject.FindObjectsOfType <BuildingBox>();

        if (J1 == null)
        {
            J1 = buildingBox.ToList().Find(i => i.SceneName == "J1");//J1特殊处理
        }
        if (J1)
        {
            var building = J1.GetComponent <BuildingController>();
            J1_F2 = building.ChildNodes[1] as FloorController;
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (floorController != null)
        {
            transform.position = floorController.GetPositionOnFloor(positionLerpValue) + floorController.Normal * floorOffset;

            if (Vector2.Dot(floorController.RightDirection, Vector2.right) <= dotThresholdBreak)
            {
                floorController = null;

                if (BreakEvent != null)
                {
                    BreakEvent();
                }
            }
        }
    }
예제 #31
0
    void Start()
    {
        mStats = new Stats (1, 60, 12, 2, 0, new int[] { 20, 4, 2, 0 });
        mRigidBody = GetComponent<Rigidbody> ();
        mAnimator = GetComponent<Animator> ();
        mFacingDirection = Vector2.right;
        mDying = false;

        mTarget = GameObject.Find ("Player").transform;

        expGiven = 15;
        //expGiven = 15 - 2 * (GameObject.Find ("Player").GetComponent<Player> ().mStats.Level - mStats.Level);

        mFloorControllerRef = FindObjectOfType<FloorController> ();
        mFloorBoundary = new float[4];
        mSpriteRenderer = gameObject.GetComponentInChildren<SpriteRenderer> ();
        mInitialOrderInLayer = (int)(transform.position.y);
        floorBoundaryInitialized = false;

        AudioSource[] audioSources = GetComponents<AudioSource> ();
        normalHit = audioSources [0];
        strongHit = audioSources [1];
        knifeHit = audioSources [2];

        uiCanvas = (UICanvas)GameObject.FindGameObjectWithTag ("UICanvas").GetComponent<UICanvas> ();
    }
예제 #32
0
    // Health Bar Variables - End
    void Start()
    {
        mAnimator = GetComponent<Animator>();
        mRigidBody = GetComponent<Rigidbody>();
        mFacingDirection = Vector2.right;
        mJumping = false;
        mGetHit = false;
        mSliding = false;
        mDashing = false;
        mNormalAttack = 0;
        mStrongAttack = 0;

        mMoveSpeed = 5.0f;
        mJumpForce = 2.0f;

        // Init Floor stuff
        mFloorControllerRef = FindObjectOfType<FloorController>();
        mFloorBoundary = new float[4];
        mSpriteRenderer = gameObject.GetComponentInChildren<SpriteRenderer>();
        mInitialOrderInLayer = (int)(transform.position.y);
        floorBoundaryInitialized = false;

        // Init HealthBar Stuff
        mHealthBarRef = FindObjectOfType<HealthBar>();
    }
예제 #33
0
    void Start()
    {
        mAnimator = GetComponent<Animator> ();
        mRigidBody = GetComponent<Rigidbody> ();
        InitStats (1, 100, 15, 5, 5);
        mFacingDirection = Vector2.right;
        mJumping = false;
        mSliding = false;
        mDashing = false;
        mNormalAttack = -1;
        mStrongAttack = 0;
        mGroundY = transform.position.y;

        mMoveSpeedX = 4.0f;
        mMoveSpeedY = 2.5f;
        mJumpForce = 6.5f;
        mGravityScale = 0.8f;
        hitTimer = hitWait;

        // Init Floor stuff
        mFloorControllerRef = FindObjectOfType<FloorController> ();
        mFloorBoundary = new float[4];
        mSpriteRenderer = gameObject.GetComponentInChildren<SpriteRenderer> ();
        mInitialOrderInLayer = (int)(transform.position.y);
        floorBoundaryInitialized = false;

        // before using the healthbar, check if stats need to be set:
        if (GameObject.FindGameObjectWithTag ("GameController") != null && PlayerPrefs.GetInt ("set_player_stats") == 1) {
            GameObject.FindGameObjectWithTag ("GameController").SendMessage ("SetStats", mStats);
        }

        // Init HealthBar Stuff
        mHealthBarRef = GameObject.FindGameObjectWithTag ("PlayerHealth").GetComponent<HealthBar> ();
        mHealthBarRef.SetMaxHealth (mStats.MaxHp);
        mHealthBarRef.SetHealth (mStats.Hp);

        //AudioSource[] audioSources = GetComponents<AudioSource> ();
        uiCanvas = (UICanvas)GameObject.FindGameObjectWithTag ("UICanvas").GetComponent<UICanvas> ();

        // get the shadow. it's the last element in the childern.
        SpriteRenderer[] childSpriteRenderers = gameObject.GetComponentsInChildren<SpriteRenderer> ();
        mShadow = childSpriteRenderers [childSpriteRenderers.Length - 1].gameObject;

        //Audio init
        AudioSource[] audioSources = GetComponents<AudioSource> ();
        deflating = audioSources [0];
        running = audioSources [1];
        health = audioSources [2];

        timerForSlide = 0;

        if (GameObject.Find ("LevelText") != null) {
            levelText = GameObject.Find ("LevelText").GetComponent<Text> ();
            if (mStats.Level <= 1) {
                levelText.text = "F";
                levelText.color = new Color (1, 0, 0);
            } else {
                SetLevelLabel ();
            }
        }
    }
예제 #34
0
    void Start()
    {
        mAnimator = GetComponent<Animator> ();
        rb = GetComponent<Rigidbody> ();
        mTarget = GameObject.Find ("Player").transform;

        // Init Floor stuff
        mFloorControllerRef = FindObjectOfType<FloorController> ();
        mFloorBoundary = new float[4];
        mSpriteRenderer = gameObject.GetComponentInChildren<SpriteRenderer> ();
        floorBoundaryInitialized = false;

        AudioSource[] audioSources = GetComponents<AudioSource> ();
        pop = audioSources [0];
        normalHit = audioSources [1];
        strongHit = audioSources [2];
    }
예제 #35
0
    void Start()
    {
        mAnimator = GetComponent<Animator> ();
        sr = transform.GetChild (0).GetComponent<SpriteRenderer> ();
        title = new GameObject[6];
        player = GameObject.Find ("Player").transform;

        // Init Floor stuff
        mFloorControllerRef = FindObjectOfType<FloorController> ();
        mFloorBoundary = new float[4];
        mSpriteRenderer = gameObject.GetComponentInChildren<SpriteRenderer> ();
        floorBoundaryInitialized = false;

        mHealthBarRef = GameObject.FindGameObjectWithTag ("BossHealth").GetComponent<HealthBar> ();
        mHealthBarRef.transform.position += new Vector3 (0f, 0f, -30f);
        storyScript = GameObject.Find ("BossScript").GetComponent<DigDugStory> ();

        healthDivider = mHealthBarRef.GetMaxHealth () / 4;

        AudioSource[] audioSources = GetComponents<AudioSource> ();
        pumping = audioSources [0];
    }