public void UpdateCountOfClick(GameData data, GameParameter parameter) => // TODO クリックして得られるクッキーの数を更新する CountOfClick = ItemsExtension.GetEnumerable() .Select(i => new { Type = i, Count = data.GetItemCount(i) }) .Join(parameter.GetParameters(), v => v.Type, p => p.Type, (v, p) => v.Count * p.CountOfClick) .Append(1M) .Sum();
public void UpdatePrice(GameData data, GameParameter parameter) { // TODO アイテムの価格を決定する var query = StoreItems .Join(parameter.GetParameters(), i => i.Type, p => p.Type, (i, p) => new { Store = i, Param = p }) .Select(v => new { Store = v.Store, Param = v.Param, Count = data.GetItemCount(v.Store.Type) }) .Select(v => new { Store = v.Store, Price = v.Param.SellPriceBase * (v.Count + 1) }); foreach (var q in query) { q.Store.Price = q.Price; } }
public void UpdateCountOfAutomatic(GameData data, GameParameter parameter) => // 自動で取得できるクッキーの数を更新する CountOfAutomatic = ItemsExtension.GetEnumerable() .Select(i => new { Type = i, Count = data.GetItemCount(i) }) .Join(parameter.GetParameters(), v => v.Type, p => p.Type, (v, p) => v.Count * p.CountOfAutomatic) .Sum();