/// <summary> /// 획득 UI 활성화 /// </summary> /// <param name="value"></param> public void ActivatedInfoUI(int value, Actor target, AcquireType acquireType) { // 획득 UI 노출 AcquireUI acquireUI = Generate(target.transform.position, acquireType); if (acquireUI != null) { acquireUI.SetInfo(value, target.transform); } }
/// <summary> /// 획득 UI 초기화 /// </summary> /// <param name="position">표시될 지점</param> /// <param name="acquireType">표시될 획득 정보 타입</param> /// <returns></returns> public AcquireUI Generate(Vector3 position, AcquireType acquireType) { // 인덱스를 범어났을 시 초기화 if (acquireUiOrderIndex >= acquireUIs.Length) { acquireUiOrderIndex = 0; } AcquireUI acquireUI = acquireUIs[acquireUiOrderIndex]; // 위치, 인덱스, 스프라이트 셋팅 acquireUI.transform.position = position; acquireUI.UiIndex = acquireUiOrderIndex; acquireUI.Icon = GameManager.Instance.SpriteSetManager.GetSprite(acquireType.ToString()); // 획득 UI 화면에 표시 acquireUI.gameObject.SetActive(true); // 인덱스 증가 acquireUiOrderIndex++; return(acquireUI); }
/// <summary> /// Set current acquire type of the oscilloscope. /// </summary> public void SetAcquireType(AcquireType memoryDepth) { Write(":ACQ:TYPE " + memoryDepth.SetterDescription()); }
/// <summary> /// 아이템 획득 처리 /// </summary> /// <param name="acquireType">획득할 아이템 타입</param> /// <param name="gainer">아이템 획득자</param> public void TakeItem(AcquireType acquireType, Player gainer) { int value = 0; // 아이템 타입에 따라 획득량 증가 switch (acquireType) { case AcquireType.BULLET_ITEM: // 주무기가 없는 경우 리턴 if (gainer.MainGun == null) { return; } // 불렛 타입에 따른 총알 수 증가량 변경 switch (gainer.MainGun.BulletType) { case Gun.BulletStyle.RIFLE: value = RIFLE_GET_VALUE; break; case Gun.BulletStyle.SNIPE: value = SNIPE_GET_VALUE; break; case Gun.BulletStyle.SHOTGUN: value = SHOTGUN_GET_VALUE; break; case Gun.BulletStyle.STRAY: value = STRAY_GET_VALUE; break; } gainer.MainGun.ReloadableBulletCount += value; break; // 힐 아이템 case AcquireType.HEAL_ITEM: value = HEAL_PACK_VALUE; gainer.OnTakeHeal(value); break; // 수류탄 case AcquireType.GRENADE_ITEM: value = THROW_ITEM_GET_VALUE; gainer.GrenadeCount += value; break; // TnT case AcquireType.TNT_ITEM: value = TNT_ITEM_GET_VALUE; gainer.TntCount += value; break; // 골드 case AcquireType.GOLD_ITEM: int ran = Random.Range(GOLD_GET_MIN_VALUE, GOLD_GET_MAX_VALUE + 1); value = ran; GameAccumulator ga = GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().GameAccumulator; ga.Gold += value; break; } // 획득 UI 노출 GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().AcquireUIManager.ActivatedInfoUI(value, gainer, acquireType); }