// Move the arrow left and right for UI feedback to the user protected void tweenArrow(float amount, MainMenuController.MenuState state) { if (state == MainMenuController.MenuState.Store && !isAnimating) { isAnimating = true; iTween.MoveTo(gameObject, iTween.Hash( "x", transform.localPosition.x + amount, "time", 0.2f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo ) ); iTween.MoveTo(gameObject, iTween.Hash( "x", transform.localPosition.x, "time", 0.2f, "islocal", true, "delay", 0.2f, "oncompletetarget", gameObject, "oncomplete", "resetState", "easetype", iTween.EaseType.easeInExpo ) ); } }
// Announces selected GunUIObject's compatibleAmmo[] to Store for UI Updating void forwardAmmoToStore(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit) { if (clicked.itemLocale == SuppliesUIObject._ItemLocale.StashBottom) { if (grids[0].isActive) { int index; switch (clicked.name) { case "Ammo Type 1": index = 0; break; case "Ammo Type 2": index = 1; break; case "Ammo Type 3": index = 2; break; default: index = 0; break; } onStashSelection((GunUIObject)grids[0].itemArray[grids[0].curPos], index); } } }
protected override void setActiveGrid(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit) { if (clicked != null) { // Temporary bypass to prevent user from purchasing bullets if (clicked.supplyType == SuppliesUIObject._SupplyType.Ammo) { //clicked.mWidget.alpha = 0.5f; return; } if (clicked.supplyType == SuppliesUIObject._SupplyType.Gun || clicked.supplyType == SuppliesUIObject._SupplyType.Health || clicked.supplyType == SuppliesUIObject._SupplyType.Ammo) { int j = 0; for (int i = 0; i < grids.Length; i++) { if (grids[i].itemArray[0].supplyType == clicked.supplyType) { grids[i].isActive = true; j = i; } else { grids[i].isActive = false; } } StartCoroutine(setCenterToCurPos(j)); } } }
protected override void onSelection(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit) { if (clicked != null) { if (clicked.gameObject == gameObject) { moveStoreLeft(state); tweenArrow(-20f, state); } } }
protected void gridCantMove(float tweenX, MainMenuController.MenuState state) { MainMenuController.instance.menuIsInTransition(); lastState = state; SupplyGrid active = getActiveGrid(); active.moveDirection = SupplyGrid._moveDirection.None; //Debug.Log(MainMenuController.instance.menuState); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x, "to", windowPanel.clipRange.x + tweenX, "time", 0.2f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x, "to", windowPanel.transform.localPosition.x - tweenX, "time", 0.2f, "onupdatetarget", gameObject, "onupdate", "movePosition", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x + tweenX, "to", windowPanel.clipRange.x, "time", 0.2f, "delay", 0.2f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeInExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x - tweenX, "to", windowPanel.transform.localPosition.x, "time", 0.2f, "delay", 0.2f, "onupdatetarget", gameObject, "onupdate", "movePosition", "oncompletetarget", gameObject, "oncomplete", "updateCurPos", "oncompleteparams", active, "easetype", iTween.EaseType.easeInExpo ) ); }
void onSelection(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit) { if (clicked != null) { // Temporary bypass to prevent user from purchasing bullets if (clicked.supplyType == SuppliesUIObject._SupplyType.Ammo) { GameObject bullet; bullet = GameObject.Find("Top Ammo"); return; } if (state != MainMenuController.MenuState.InTransition && clicked.itemLocale == SuppliesUIObject._ItemLocale.StoreTop) { MainMenuController.instance.menuState = MainMenuController.MenuState.InTransition; iTween.MoveTo(gameObject, iTween.Hash( "x", clicked.transform.localPosition.x, "time", 0.4f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ScaleTo(clicked.gameObject, iTween.Hash( "x", clicked.transform.localScale.x * 1.5f, "y", clicked.transform.localScale.y * 1.5f, "time", 0.2f, "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ScaleTo(clicked.gameObject, iTween.Hash( "x", clicked.transform.localScale.x, "y", clicked.transform.localScale.y, "time", 0.2f, "delay", 0.2f, "oncompletetarget", gameObject, "oncomplete", "stopAnimating", "oncompleteparams", state, "easetype", iTween.EaseType.easeInExpo ) ); } } }
protected override void setSprite(PlayerSavedPrefs._OptionsType type, bool isOn, MainMenuController.MenuState state, PlayerSavedPrefs._ControlScheme scheme) { if (type == thisType) { // Not sure why this check has to be here for iTweens if (this != null && state != MainMenuController.MenuState.InTransition) { MainMenuController.instance.menuIsInTransition(); iTween.ShakePosition(gameObject, iTween.Hash( "amount", new Vector3(20f, 20f, 0), "time", 0.4f, "islocal", true, "oncompletetarget", gameObject, "oncomplete", "resetState", "oncompleteparams", state ) ); } } }
protected override void setSprite(PlayerSavedPrefs._OptionsType type, bool isOn, MainMenuController.MenuState state, PlayerSavedPrefs._ControlScheme scheme) { if (thisType == PlayerSavedPrefs._OptionsType.Sounds && type == PlayerSavedPrefs._OptionsType.Sounds) { if (isOnSwitch) { thisSprite.spriteName = (isOn) ? "On_Checked" : "On_Unchecked"; } else { thisSprite.spriteName = (isOn) ? "Off_UnChecked" : "Off_Checked"; } return; } if (thisType == PlayerSavedPrefs._OptionsType.Music && type == PlayerSavedPrefs._OptionsType.Music) { if (isOnSwitch) { thisSprite.spriteName = (isOn) ? "On_Checked" : "On_Unchecked"; } else { thisSprite.spriteName = (isOn) ? "Off_UnChecked" : "Off_Checked"; } return; } if (thisType == PlayerSavedPrefs._OptionsType.Controls && type == PlayerSavedPrefs._OptionsType.Controls) { if (isOnSwitch) { thisSprite.spriteName = (thisControlScheme == scheme) ? "A_Checked" : "A_Unchecked"; } else { thisSprite.spriteName = (thisControlScheme == scheme) ? "B_Checked" : "B_Unchecked"; } } }
protected void moveGridTo(int index, MainMenuController.MenuState state) { SupplyGrid active = getActiveGrid(); active.moveDirection = SupplyGrid._moveDirection.Left; if (MainMenuController.instance.menuState == MainMenuController.MenuState.Store) { MainMenuController.instance.menuIsInTransition(); lastState = state; //Debug.Log(MainMenuController.instance.menuState); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x, "to", active.itemArray[index].transform.localPosition.x, "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x, "to", panelPosCache.x - (active.cellWidth * (float)index), "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "movePosition", "oncompletetarget", gameObject, "oncomplete", "updateCurPosMoveTo", "oncompleteparams", index, "easetype", iTween.EaseType.easeOutExpo ) ); } else if (MainMenuController.instance.menuState == MainMenuController.MenuState.Store) { gridCantMove(-20f, state); } }
protected void moveGridRight(MainMenuController.MenuState state) { SupplyGrid active = getActiveGrid(); active.moveDirection = SupplyGrid._moveDirection.Right; if (active.curPos + 1 <= active.itemArray.Count - 1 && MainMenuController.instance.menuState == MainMenuController.MenuState.Store) { MainMenuController.instance.menuIsInTransition(); lastState = state; //Debug.Log(MainMenuController.instance.menuState); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x, "to", active.itemArray[active.curPos + 1].transform.localPosition.x, "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x, "to", windowPanel.transform.localPosition.x - active.cellWidth, "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "movePosition", "oncompletetarget", gameObject, "oncomplete", "updateCurPos", "oncompleteparams", active, "easetype", iTween.EaseType.easeOutExpo ) ); } else if (MainMenuController.instance.menuState == MainMenuController.MenuState.Store) { gridCantMove(20f, state); } }
void onSelection(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit) { if (clicked != null) { if (state == MainMenuController.MenuState.Store && clicked.itemLocale == SuppliesUIObject._ItemLocale.StashTop) { MainMenuController.instance.menuState = MainMenuController.MenuState.InTransition; iTween.MoveTo(gameObject, iTween.Hash( "x", clicked.transform.localPosition.x, "time", 0.4f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ScaleTo(clicked.gameObject, iTween.Hash( "x", clicked.transform.localScale.x * 1.5f, "y", clicked.transform.localScale.y * 1.5f, "time", 0.2f, "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ScaleTo(clicked.gameObject, iTween.Hash( "x", clicked.transform.localScale.x, "y", clicked.transform.localScale.y, "time", 0.2f, "delay", 0.2f, "oncompletetarget", gameObject, "oncomplete", "stopAnimating", "oncompleteparams", state, "easetype", iTween.EaseType.easeInExpo ) ); } } }
/// <summary> /// Sets the active grid in instance of SupplyWindow /// </summary> /// <param name='clicked'> /// Clicked. /// </param> /// <param name='state'> /// State. /// </param> /// <param name='hit'> /// Hit. /// </param> protected override void setActiveGrid(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit) { if (clicked != null) { if (clicked.supplyType == SuppliesUIObject._SupplyType.Gun || clicked.supplyType == SuppliesUIObject._SupplyType.Health) { int j = 0; for (int i = 0; i < grids.Length; i++) { if (grids[i].itemArray[0].supplyType == clicked.supplyType) { grids[i].isActive = true; j = i; } else { grids[i].isActive = false; } } StartCoroutine(setCenterToCurPos(j)); } } }
protected void moveGridRight(MainMenuController.MenuState state) { SupplyGrid active = getActiveGrid(); active.moveDirection = SupplyGrid._moveDirection.Right; if (active.curPos + 1 <= active.itemArray.Count - 1 && MainMenuController.instance.menuState == MainMenuController.MenuState.Store) { MainMenuController.instance.menuIsInTransition(); lastState = state; //Debug.Log(MainMenuController.instance.menuState); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x, "to", active.itemArray[active.curPos + 1].transform.localPosition.x, "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x, "to", windowPanel.transform.localPosition.x - active.cellWidth, "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "movePosition", "oncompletetarget", gameObject, "oncomplete", "updateCurPos", "oncompleteparams", active, "easetype", iTween.EaseType.easeOutExpo ) ); } else if (MainMenuController.instance.menuState == MainMenuController.MenuState.Store) gridCantMove(20f, state); }
void stopAnimating(MainMenuController.MenuState lastState) { MainMenuController.instance.menuState = lastState; }
protected void gridCantMove(float tweenX, MainMenuController.MenuState state) { MainMenuController.instance.menuIsInTransition(); lastState = state; SupplyGrid active = getActiveGrid(); active.moveDirection = SupplyGrid._moveDirection.None; //Debug.Log(MainMenuController.instance.menuState); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x, "to", windowPanel.clipRange.x + tweenX, "time", 0.2f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x, "to", windowPanel.transform.localPosition.x - tweenX, "time", 0.2f, "onupdatetarget", gameObject, "onupdate", "movePosition", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x + tweenX, "to", windowPanel.clipRange.x, "time", 0.2f, "delay", 0.2f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeInExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x - tweenX, "to", windowPanel.transform.localPosition.x, "time", 0.2f, "delay", 0.2f, "onupdatetarget", gameObject, "onupdate", "movePosition", "oncompletetarget", gameObject, "oncomplete", "updateCurPos", "oncompleteparams", active, "easetype", iTween.EaseType.easeInExpo ) ); }
/* Used to call abstractly declared delegates to signal StashController * to move the grid and update information accordingly. */ protected abstract void onSelection(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit);
protected abstract void setActiveGrid(SuppliesUIObject clicked, MainMenuController.MenuState state, GameObject hit);
protected abstract void setSprite(PlayerSavedPrefs._OptionsType type, bool isOn, MainMenuController.MenuState state, PlayerSavedPrefs._ControlScheme scheme);
protected void moveGridTo( int index, MainMenuController.MenuState state ) { SupplyGrid active = getActiveGrid(); active.moveDirection = SupplyGrid._moveDirection.Left; if (MainMenuController.instance.menuState == MainMenuController.MenuState.Store) { MainMenuController.instance.menuIsInTransition(); lastState = state; //Debug.Log(MainMenuController.instance.menuState); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.clipRange.x, "to", active.itemArray[index].transform.localPosition.x, "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "moveCenter", "easetype", iTween.EaseType.easeOutExpo ) ); iTween.ValueTo(windowPanel.gameObject, iTween.Hash( "from", windowPanel.transform.localPosition.x, "to", panelPosCache.x - ( active.cellWidth * (float)index ), "time", 0.4f, "onupdatetarget", gameObject, "onupdate", "movePosition", "oncompletetarget", gameObject, "oncomplete", "updateCurPosMoveTo", "oncompleteparams", index, "easetype", iTween.EaseType.easeOutExpo ) ); } else if (MainMenuController.instance.menuState == MainMenuController.MenuState.Store) gridCantMove(-20f, state); }
void resetState(MainMenuController.MenuState state) { transform.localPosition = Vector3.zero; MainMenuController.instance.menuState = state; }