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); }
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); }
public void Setup(StoryChargerData data) { int playerCount = playerService.GetItemCount(data); iconImage.color = (playerCount > 0) ? Color.white : emptyColor; iconImage.overrideSprite = resourceService.GetSprite(data); nameText.text = resourceService.GetString(data.nameId); }
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); } }
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>()); }