Skip to content

Commit d2e444c

Browse files
committed
Misc: smaller enhancements
1 parent b4deb43 commit d2e444c

File tree

3 files changed

+77
-77
lines changed

3 files changed

+77
-77
lines changed

Client/Client.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
44
<PropertyGroup>
@@ -28,7 +28,7 @@
2828
<ErrorReport>prompt</ErrorReport>
2929
<WarningLevel>4</WarningLevel>
3030
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
31-
<LangVersion>7.3</LangVersion>
31+
<LangVersion>latest</LangVersion>
3232
</PropertyGroup>
3333
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3434
<PlatformTarget>AnyCPU</PlatformTarget>

Client/Game/ClientGame.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,11 +229,11 @@ public bool SetPossibleSpellTargets()
229229

230230
public PlayableCard GetCardByImageControlName(string imageControlName)
231231
{
232-
var cardPair = Player.GetCardByImageControlName(imageControlName);
233-
if (cardPair.Item1 != null)
234-
return cardPair.Item1;
232+
var (card, image) = Player.GetCardByImageControlName(imageControlName);
233+
if (card != null)
234+
return card;
235235

236-
return Opponent.GetCardByImageControlName(imageControlName).Item1;
236+
return Opponent.GetCardByImageControlName(imageControlName).card;
237237
}
238238

239239
private async Task UpdateAsync()

Client/Game/Player.cs

Lines changed: 71 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Client.Game
1111
public class Player
1212
{
1313
private readonly ClientGame game;
14-
private readonly ValueTuple<PlayableCard, Image>[] cardDeck;
14+
private readonly (PlayableCard card, Image image)[] cardDeck;
1515
private Dictionary<UInt64, PlayableCard> cards;
1616

1717
public UInt32 Id { get; set; }
@@ -22,9 +22,9 @@ public class Player
2222

2323
public int ActiveCardPosition { get; private set; }
2424

25-
public PlayableCard ActiveCard => cardDeck[ActiveCardPosition].Item1;
25+
public PlayableCard ActiveCard => cardDeck[ActiveCardPosition].card;
2626

27-
public IEnumerable<PlayableCard> CardDeck => cardDeck.Select(x => x.Item1);
27+
public IEnumerable<PlayableCard> CardDeck => cardDeck.Select(x => x.card);
2828

2929
public Player(ClientGame clientGame, params Image[] imageLocations)
3030
{
@@ -55,8 +55,8 @@ public void PutCardsOnDeck(UInt64[] cardGuids)
5555
{
5656
Invoke(() =>
5757
{
58-
cardDeck[i].Item1 = card;
59-
cardDeck[i].Item2.Source = card.Image;
58+
cardDeck[i].card = card;
59+
cardDeck[i].image.Source = card.Image;
6060
});
6161
}
6262
}
@@ -66,8 +66,8 @@ public void PutCardsOnDeck(UInt64[] cardGuids)
6666
{
6767
Invoke(() =>
6868
{
69-
cardDeck[i].Item1 = null;
70-
cardDeck[i].Item2.Source = new BitmapImage(new Uri(i < availableCardsCount ? "Assets/CardBack.png" : "Assets/CardBackGrayscale.png", UriKind.Relative));
69+
cardDeck[i].card = null;
70+
cardDeck[i].image.Source = new BitmapImage(new Uri(i < availableCardsCount ? "Assets/CardBack.png" : "Assets/CardBackGrayscale.png", UriKind.Relative));
7171
});
7272
}
7373
}
@@ -85,22 +85,22 @@ public void SetPossibleTargets(IEnumerable<UInt64> targetableCards)
8585
public void DeselectSpellFriendlyTargets()
8686
{
8787
var activeCardDeck = cardDeck[ActiveCardPosition];
88-
if (activeCardDeck.Item1.SelectionType != SelectionType.Selected)
88+
if (activeCardDeck.card.SelectionType != SelectionType.Selected)
8989
{
9090
Invoke(() =>
9191
{
92-
activeCardDeck.Item1.SelectionType = SelectionType.Selected;
93-
activeCardDeck.Item2.Source = activeCardDeck.Item1.Image;
92+
activeCardDeck.card.SelectionType = SelectionType.Selected;
93+
activeCardDeck.image.Source = activeCardDeck.card.Image;
9494
});
9595

96-
foreach(var card in cardDeck.Where(x => x.Item1 != null))
96+
foreach(var card in cardDeck.Where(x => x.card != null))
9797
{
98-
if (card.Item1.SelectionType == SelectionType.SpellUsable)
98+
if (card.card.SelectionType == SelectionType.SpellUsable)
9999
{
100100
Invoke(() =>
101101
{
102-
card.Item1.SelectionType = SelectionType.None;
103-
card.Item2.Source = card.Item1.Image;
102+
card.card.SelectionType = SelectionType.None;
103+
card.image.Source = card.card.Image;
104104
});
105105
}
106106
}
@@ -110,25 +110,25 @@ public void DeselectSpellFriendlyTargets()
110110
// Remove selection
111111
public void RemoveSelectionFromCards()
112112
{
113-
foreach (var card in cardDeck.Where(x => x.Item1 != null && x.Item1.SelectionType != SelectionType.None))
113+
foreach (var card in cardDeck.Where(x => x.card != null && x.card.SelectionType != SelectionType.None))
114114
{
115115
Invoke(() =>
116116
{
117-
card.Item1.SelectionType = SelectionType.None;
118-
card.Item2.Source = card.Item1.Image;
117+
card.card.SelectionType = SelectionType.None;
118+
card.image.Source = card.card.Image;
119119
});
120120
}
121121
}
122122

123123
// Selects possible targets
124124
public void SelectPossibleTargets(IEnumerable<UInt64> targetableCards, SelectionType selection)
125125
{
126-
foreach (var card in cardDeck.Where(x => x.Item1 != null && targetableCards.Contains(x.Item1.Guid)))
126+
foreach (var card in cardDeck.Where(x => x.card != null && targetableCards.Contains(x.card.Guid)))
127127
{
128128
Invoke(() =>
129129
{
130-
card.Item1.SelectionType = selection;
131-
card.Item2.Source = card.Item1.Image;
130+
card.card.SelectionType = selection;
131+
card.image.Source = card.card.Image;
132132
});
133133
}
134134
}
@@ -139,23 +139,23 @@ public void SetActiveState(UInt64 cardGuid)
139139
IsActive = true;
140140
for(var i = 0; i < cardDeck.Length; i++)
141141
{
142-
var c = cardDeck[i];
143-
if (c.Item1 == null)
142+
var (card, image) = cardDeck[i];
143+
if (card == null)
144144
continue;
145145

146146
var select = SelectionType.None;
147-
if (c.Item1.Guid == cardGuid)
147+
if (card.Guid == cardGuid)
148148
{
149149
ActiveCardPosition = i;
150150
select = SelectionType.Selected;
151151
}
152152

153-
if (c.Item1.SelectionType != select)
153+
if (card.SelectionType != select)
154154
{
155155
Invoke(() =>
156156
{
157-
c.Item1.SelectionType = select;
158-
c.Item2.Source = c.Item1.Image;
157+
card.SelectionType = select;
158+
image.Source = card.Image;
159159
});
160160
}
161161
}
@@ -169,27 +169,27 @@ public void SetWaitingState()
169169
}
170170

171171
// Gets card by control name
172-
public (PlayableCard, Image) GetCardByImageControlName(string name)
172+
public (PlayableCard card, Image image) GetCardByImageControlName(string name)
173173
{
174-
return cardDeck.FirstOrDefault(x => x.Item2.Name == name);
174+
return cardDeck.FirstOrDefault(x => x.image.Name == name);
175175
}
176176

177177
// Attacks card
178178
public void AttackCard(UInt64 guid, byte damage, CombatLogTypes combatLogType, bool isPeriodicDamage)
179179
{
180-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == guid);
181-
if (cardPair.Item1 == null)
180+
var (card, image) = cardDeck.FirstOrDefault(x => x.card?.Guid == guid);
181+
if (card == null)
182182
return;
183183

184184
if (isPeriodicDamage)
185-
game.Chat.LogPeriodicDamage(cardPair.Item1, damage, true);
185+
game.Chat.LogPeriodicDamage(card, damage, true);
186186
else
187-
game.Chat.LogDamage(combatLogType, game.GetOpponent(Id).ActiveCard, cardPair.Item1, damage, true);
187+
game.Chat.LogDamage(combatLogType, game.GetOpponent(Id).ActiveCard, card, damage, true);
188188

189189
Invoke(() =>
190190
{
191-
cardPair.Item1.Hp -= damage;
192-
cardPair.Item2.Source = cardPair.Item1.Image;
191+
card.Hp -= damage;
192+
image.Source = card.Image;
193193
});
194194
}
195195

@@ -210,15 +210,15 @@ public void DestroyCard(UInt64 guid, byte damage, CombatLogTypes combatLogType,
210210
// Modifies card stat
211211
public void ModifyCardStat(UInt64 cardGuid, CardStats cardStat, sbyte value)
212212
{
213-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
214-
if (cardPair.Item1 == null)
213+
var (card, image) = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
214+
if (card == null)
215215
return;
216216

217-
game.Chat.LogStatChange(cardStat, cardPair.Item1, value);
217+
game.Chat.LogStatChange(cardStat, card, value);
218218
Invoke(() =>
219219
{
220-
cardPair.Item1.ApplyModifier(cardStat, value);
221-
cardPair.Item2.Source = cardPair.Item1.Image;
220+
card.ApplyModifier(cardStat, value);
221+
image.Source = card.Image;
222222
});
223223
}
224224

@@ -231,27 +231,27 @@ public bool CanCastSpell()
231231
// Adds aura to creature
232232
public void ApplyAura(UInt64 cardGuid, UInt32 spellId)
233233
{
234-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
235-
if (cardPair.Item1 == null)
234+
var (card, image) = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
235+
if (card == null)
236236
return;
237237

238238
var spellData = DataHolder.GetSpellData(spellId);
239-
game.Chat.LogApplyAura(cardPair.Item1, spellData);
239+
game.Chat.LogApplyAura(card, spellData);
240240

241241
/// TODO: add some graphics effect
242242
}
243243

244244
// Removes aura from creature
245245
public void ExpireAuras(UInt64 cardGuid, UInt32[] spellIds)
246246
{
247-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
248-
if (cardPair.Item1 == null)
247+
var (card, image) = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
248+
if (card == null)
249249
return;
250250

251251
foreach(var spellId in spellIds)
252252
{
253253
var spellData = DataHolder.GetSpellData(spellId);
254-
game.Chat.LogExpireAura(cardPair.Item1, spellData);
254+
game.Chat.LogExpireAura(card, spellData);
255255

256256
/// TODO: add some graphics effect
257257
}
@@ -260,36 +260,36 @@ public void ExpireAuras(UInt64 cardGuid, UInt32[] spellIds)
260260
// Heals card
261261
public void HealCard(UInt64 cardGuid, byte health, byte amount)
262262
{
263-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
264-
if (cardPair.Item1 == null)
263+
var (card, image) = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
264+
if (card == null)
265265
return;
266266

267-
game.Chat.LogHeal(cardPair.Item1, amount);
267+
game.Chat.LogHeal(card, amount);
268268
Invoke(() =>
269269
{
270-
cardPair.Item1.Hp = health;
271-
cardPair.Item2.Source = cardPair.Item1.Image;
270+
card.Hp = health;
271+
image.Source = card.Image;
272272
});
273273
}
274274

275275
// Consumes mana from card and logs it into comba log
276276
public void HandleSuccessfulSpellCast(UInt64 cardGuid, UInt32 spellId, byte mana, byte manaCost)
277277
{
278-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
279-
if (cardPair.Item1 == null)
278+
var cardPair = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
279+
if (cardPair.card == null)
280280
return;
281281

282282
var spellData = DataHolder.GetSpellData(spellId);
283-
game.Chat.LogManaConsume(cardPair.Item1, spellData, manaCost);
283+
game.Chat.LogManaConsume(cardPair.card, spellData, manaCost);
284284

285285
SetCardMana(cardPair, mana);
286286
}
287287

288288
// Sets cards mana
289289
public void SetCardMana(UInt64 cardGuid, byte mana)
290290
{
291-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
292-
if (cardPair.Item1 == null)
291+
var cardPair = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
292+
if (cardPair.card == null)
293293
return;
294294

295295
SetCardMana(cardPair, mana);
@@ -298,33 +298,33 @@ public void SetCardMana(UInt64 cardGuid, byte mana)
298298
// Morphs card
299299
public void MorphCard(UInt64 cardGuid, Card cardTemplate, byte mana, bool isMorph)
300300
{
301-
var cardPair = cardDeck.FirstOrDefault(x => x.Item1?.Guid == cardGuid);
302-
if (cardPair.Item1 == null)
301+
var (card, image) = cardDeck.FirstOrDefault(x => x.card?.Guid == cardGuid);
302+
if (card == null)
303303
return;
304304

305-
game.Chat.LogMorph(cardPair.Item1, cardTemplate, isMorph);
305+
game.Chat.LogMorph(card, cardTemplate, isMorph);
306306
Invoke(() =>
307307
{
308-
cardPair.Item1.UnloadImages();
309-
cardPair.Item1.Id = cardTemplate.Id;
310-
cardPair.Item1.ImageUri = cardTemplate.ImageUri;
311-
cardPair.Item1.Type = cardTemplate.Type;
312-
cardPair.Item1.Spell = cardTemplate.Spell;
313-
cardPair.Item1.Name = cardTemplate.Name;
314-
cardPair.Item1.Damage = cardTemplate.Damage;
315-
cardPair.Item1.Defense = cardTemplate.Defense;
316-
cardPair.Item1.Mana = mana;
317-
cardPair.Item2.Source = cardPair.Item1.Image;
308+
card.UnloadImages();
309+
card.Id = cardTemplate.Id;
310+
card.ImageUri = cardTemplate.ImageUri;
311+
card.Type = cardTemplate.Type;
312+
card.Spell = cardTemplate.Spell;
313+
card.Name = cardTemplate.Name;
314+
card.Damage = cardTemplate.Damage;
315+
card.Defense = cardTemplate.Defense;
316+
card.Mana = mana;
317+
image.Source = card.Image;
318318
});
319319
}
320320

321321
// Sets card mana
322-
private void SetCardMana((PlayableCard, Image) cardPair, byte mana)
322+
private void SetCardMana((PlayableCard card, Image image) cardPair, byte mana)
323323
{
324324
Invoke(() =>
325325
{
326-
cardPair.Item1.Mana = mana;
327-
cardPair.Item2.Source = cardPair.Item1.Image;
326+
cardPair.card.Mana = mana;
327+
cardPair.image.Source = cardPair.card.Image;
328328
});
329329
}
330330
}

0 commit comments

Comments
 (0)