public override void Setup(object data = null) { base.Setup(data); StoryCollectionData storyCollectionData = data as StoryCollectionData; cachedData = storyCollectionData; if (storyCollectionData == null) { throw new ArgumentException($"{GetType().Name}: must have setup argument {typeof(StoryCollectionData).Name}"); } for (int i = 0; i < storyCollectableViews.Length; i++) { if (i < storyCollectionData.collectables.Count) { StoryCollectableData collectableData = resourceService.GetStoryCollectable(storyCollectionData.collectables[i]); storyCollectableViews[i].Setup(collectableData); } } StoryChargerData storyChargerData = resourceService.GetStoryCharger(storyCollectionData.chargerId); chargerView.Setup(storyChargerData); SetupChargeButton(storyCollectionData); SetupCollectionIcon(storyCollectionData); closeBigButton.SetListener(() => Close(), engine.GetService <IAudioService>()); buyChargerView.Setup(storyCollectionData); }
private void SetupChargeButton(StoryCollectionData storyCollectionData) { int playerCollectionCount = playerService.GetItemCount(storyCollectionData); if (playerCollectionCount > 0) { chargeButton.DeactivateSelf(); } else { chargeButton.ActivateSelf(); if (ravenhillGameModeService.IsStoryCollectionReadyToCharge(storyCollectionData)) { chargeButton.interactable = true; chargeButton.SetListener(() => { engine.GetService <IVideoService>().PlayVideo(storyCollectionData.videoId, () => { ravenhillGameModeService.ChargeStoryCollection(storyCollectionData); }); }, engine.GetService <IAudioService>()); } else { chargeButton.interactable = false; } } }
public bool IsStoryCollectionReadyToCharge(StoryCollectionData collection) { bool hasCollectables = true; RavenhillResourceService resourceService = engine.GetService <IResourceService>().Cast <RavenhillResourceService>(); PlayerService playerService = engine.GetService <IPlayerService>().Cast <PlayerService>(); foreach (string collectableId in collection.collectables) { StoryCollectableData collectableData = resourceService.GetStoryCollectable(collectableId); int playerCount = playerService.GetItemCount(collectableData); if (playerCount <= 0) { hasCollectables = false; break; } } bool hasCharger = true; StoryChargerData chargerData = resourceService.GetStoryCharger(collection.chargerId); int playerChargerCount = playerService.GetItemCount(chargerData); if (playerChargerCount <= 0) { hasCharger = false; } return(hasCollectables && hasCharger); }
private void OnTriggerClick(StoryCollectionData data) { if (Application.isMobilePlatform) { Handheld.PlayFullScreenMovie(data.id, Color.black, FullScreenMovieControlMode.CancelOnInput); } else { } }
public void ChargeStoryCollection(StoryCollectionData collectionData) { PlayerService playerService = engine.GetService <IPlayerService>().Cast <PlayerService>(); RavenhillResourceService resourceService = engine.GetService <IResourceService>().Cast <RavenhillResourceService>(); StoryChargerData chargerData = resourceService.GetStoryCharger(collectionData.chargerId); if (playerService.GetItemCount(chargerData) > 0) { playerService.RemoveItem(InventoryItemType.StoryCharger, chargerData.id, 1); playerService.AddItem(new InventoryItem(collectionData, 1)); RavenhillEvents.OnStoryCollectionCharged(collectionData); } }
private void SetupCollectionIcon(StoryCollectionData storyCollectionData) { storyCollectionChargeBackground.overrideSprite = resourceService.GetSprite(storyCollectionData.chargeBackImageId, storyCollectionData.chargeBackImagePath); int playerCount = playerService.GetItemCount(storyCollectionData); if (playerCount > 0) { Sprite sprite = resourceService.GetSprite(storyCollectionData.chargeColorImageId, storyCollectionData.chargeColorImagePath); SetStoryCollectionIconSprite(sprite); } else { Sprite sprite = resourceService.GetSprite(storyCollectionData.chargeGrayImageId, storyCollectionData.chargeGrayImagePath); SetStoryCollectionIconSprite(sprite); } }
public void Setup(StoryCollectionData data) { StoryChargerData chargerData = resourceService.GetStoryCharger(data.chargerId); StoreItemData storeItemData = resourceService.GetStoreItem(chargerData.storeItemId); if (storeItemData == null) { Debug.Log($"storeItemData null for charger {chargerData.id}:{chargerData.storeItemId}"); return; } priceImage.overrideSprite = resourceService.GetPriceSprite(storeItemData.price); priceText.text = storeItemData.price.price.ToString(); buyButton.SetListener(() => { playerService.Buy(storeItemData); }, engine.GetService <IAudioService>()); askButton.SetListener(() => { netService.Ask(chargerData); }, engine.GetService <IAudioService>()); }
public static void OnStoryCollectionCharged(StoryCollectionData storyCollectionData) { StoryCollectionCharged?.Invoke(storyCollectionData); }
private void OnStoryCollectionCharged(StoryCollectionData data) { Setup(); }