mirror of
https://github.com/alexandria121/new.git
synced 2026-07-01 09:24:24 -04:00
Refactor generated files and update assembly information
- Removed unnecessary auto-generated code from GeneratedInternalTypeHelper.g.cs. - Updated MainWindow.g.cs checksum to reflect changes in MainWindow.xaml. - Changed AssemblyInformationalVersion in NewGame.UI.AssemblyInfo.cs. - Updated sourcelink JSON to point to the new commit hash. - Modified DeckBuilderView and GameView generated files to reflect changes in their respective XAML files. - Added new BAML files for various views and controls. - Updated references and binary files in the Debug directory.
This commit is contained in:
+68
-64
@@ -1,137 +1,141 @@
|
||||
{
|
||||
"metadata": {
|
||||
"generated_at": "2026-04-06T19:09:01.072523+00:00",
|
||||
"generated_at": "2026-04-12T02:16:19.750425+00:00",
|
||||
"commit_hash": "",
|
||||
"repo_name": "new",
|
||||
"depth_level": 1,
|
||||
"file_coverage_summary": {
|
||||
"total_files": 41,
|
||||
"total_files": 55,
|
||||
"analyzed": 0,
|
||||
"not_analyzed": 41,
|
||||
"not_analyzed": 55,
|
||||
"not_analyzed_by_reason": {
|
||||
"other": 41
|
||||
"other": 55
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Magical Deckbuilder is organized as a decoupled MVVM application where the WPF Presentation Layer communicates with an Application Controller (MVVM) that orchestrates interactions with core shared game logic. The primary flow is: user actions in the UI are handled via ViewModels in the Application Controller, which then update or query core systems — Game Mechanics Core for turn and character logic, Card & Deck System for creating/managing cards and decks, the Card Crafting Engine for combining cards, and the AI Strategy Module for opponent decisions — with updated state propagated back to the UI via data binding.",
|
||||
"description": "This architecture represents a Digital Collectible Card Game (DCCG) built on the MVVM pattern. The main flow is driven by user interactions in the Presentation & Interaction Layer, which translates UI actions into commands that either affect the Game Simulation Engine for live matches or interact with the Asset & Deck Management system for deck customization. The Game Simulation Engine enforces rules and AI decision-making using Core Domain Models, while Persistence & Infrastructure handles serialization and storage of deck data separately from core logic.",
|
||||
"files": {},
|
||||
"methods_index": {},
|
||||
"components": [
|
||||
{
|
||||
"name": "Presentation Layer",
|
||||
"description": "Handles the visual rendering of the game and user interactions via WPF Views and custom Controls.",
|
||||
"name": "Presentation & Interaction Layer",
|
||||
"description": "The WPF-based MVVM layer that manages user input, screen navigation, and UI state. It coordinates between the user and the underlying game systems.",
|
||||
"key_entities": [],
|
||||
"source_cluster_ids": [],
|
||||
"source_cluster_ids": [
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13
|
||||
],
|
||||
"file_methods": [],
|
||||
"component_id": "1",
|
||||
"can_expand": false
|
||||
},
|
||||
{
|
||||
"name": "Application Controller (MVVM)",
|
||||
"description": "The central hub of the UI application, managing state, commands, and data flow between the UI and core logic.",
|
||||
"name": "Game Simulation Engine",
|
||||
"description": "The central logic hub responsible for enforcing game rules, processing turns, and executing AI opponent logic.",
|
||||
"key_entities": [],
|
||||
"source_cluster_ids": [],
|
||||
"source_cluster_ids": [
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
9
|
||||
],
|
||||
"file_methods": [],
|
||||
"component_id": "2",
|
||||
"can_expand": false
|
||||
},
|
||||
{
|
||||
"name": "Game Mechanics Core",
|
||||
"description": "Defines the fundamental rules and entities of the game, including characters, health, and turn-based logic.",
|
||||
"name": "Asset & Deck Management",
|
||||
"description": "Handles the lifecycle of game assets, including the instantiation of cards from templates and the logical validation of player decks.",
|
||||
"key_entities": [],
|
||||
"source_cluster_ids": [],
|
||||
"source_cluster_ids": [
|
||||
8,
|
||||
14
|
||||
],
|
||||
"file_methods": [],
|
||||
"component_id": "3",
|
||||
"can_expand": false
|
||||
},
|
||||
{
|
||||
"name": "Card & Deck System",
|
||||
"description": "Manages the lifecycle of cards and decks, including creation, shuffling, and drawing mechanics.",
|
||||
"name": "Core Domain Models",
|
||||
"description": "Passive data structures representing the fundamental entities of the game, such as Cards and Decks.",
|
||||
"key_entities": [],
|
||||
"source_cluster_ids": [],
|
||||
"source_cluster_ids": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
15
|
||||
],
|
||||
"file_methods": [],
|
||||
"component_id": "4",
|
||||
"can_expand": false
|
||||
},
|
||||
{
|
||||
"name": "Card Crafting Engine",
|
||||
"description": "Specialized logic for the card combination system, allowing players to merge cards into new variants.",
|
||||
"name": "Persistence & Infrastructure",
|
||||
"description": "Manages external system interactions, primarily file I/O for saving and loading player decks and global error logging.",
|
||||
"key_entities": [],
|
||||
"source_cluster_ids": [],
|
||||
"source_cluster_ids": [
|
||||
6,
|
||||
7,
|
||||
16
|
||||
],
|
||||
"file_methods": [],
|
||||
"component_id": "5",
|
||||
"can_expand": false
|
||||
},
|
||||
{
|
||||
"name": "AI Strategy Module",
|
||||
"description": "Provides automated decision-making for the opponent, including move selection and difficulty-based deck building.",
|
||||
"key_entities": [],
|
||||
"source_cluster_ids": [],
|
||||
"file_methods": [],
|
||||
"component_id": "6",
|
||||
"can_expand": false
|
||||
}
|
||||
],
|
||||
"components_relations": [
|
||||
{
|
||||
"relation": "Binds UI elements to ViewModel properties and executes user commands.",
|
||||
"src_name": "Presentation Layer",
|
||||
"dst_name": "Application Controller (MVVM)",
|
||||
"relation": "Dispatches gameplay commands (e.g., PlayCard, EndTurn) to update game state",
|
||||
"src_name": "Presentation & Interaction Layer",
|
||||
"dst_name": "Game Simulation Engine",
|
||||
"src_id": "1",
|
||||
"dst_id": "2",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Updates character health/mana and manages turn transitions.",
|
||||
"src_name": "Application Controller (MVVM)",
|
||||
"dst_name": "Game Mechanics Core",
|
||||
"src_id": "2",
|
||||
"relation": "Requests card creation and deck validation during the deck-building process",
|
||||
"src_name": "Presentation & Interaction Layer",
|
||||
"dst_name": "Asset & Deck Management",
|
||||
"src_id": "1",
|
||||
"dst_id": "3",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Manages player hand state and deck initialization via the CardFactory.",
|
||||
"src_name": "Application Controller (MVVM)",
|
||||
"dst_name": "Card & Deck System",
|
||||
"relation": "Triggers save and load operations for user-created decks",
|
||||
"src_name": "Presentation & Interaction Layer",
|
||||
"dst_name": "Persistence & Infrastructure",
|
||||
"src_id": "1",
|
||||
"dst_id": "5",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Modifies and queries the state of card and deck entities during rule execution",
|
||||
"src_name": "Game Simulation Engine",
|
||||
"dst_name": "Core Domain Models",
|
||||
"src_id": "2",
|
||||
"dst_id": "4",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Triggers the combination of selected cards into new custom cards.",
|
||||
"src_name": "Application Controller (MVVM)",
|
||||
"dst_name": "Card Crafting Engine",
|
||||
"src_id": "2",
|
||||
"dst_id": "5",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Requests opponent move calculations and difficulty-based deck generation.",
|
||||
"src_name": "Application Controller (MVVM)",
|
||||
"dst_name": "AI Strategy Module",
|
||||
"src_id": "2",
|
||||
"dst_id": "6",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Utilizes DeckManagers to track character resources and in-play cards.",
|
||||
"src_name": "Game Mechanics Core",
|
||||
"dst_name": "Card & Deck System",
|
||||
"relation": "Instantiates card objects and organizes them into deck structures",
|
||||
"src_name": "Asset & Deck Management",
|
||||
"dst_name": "Core Domain Models",
|
||||
"src_id": "3",
|
||||
"dst_id": "4",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
},
|
||||
{
|
||||
"relation": "Evaluates card values for move selection and populates opponent decks.",
|
||||
"src_name": "AI Strategy Module",
|
||||
"dst_name": "Card & Deck System",
|
||||
"src_id": "6",
|
||||
"relation": "Serializes and deserializes deck data for long-term storage",
|
||||
"src_name": "Persistence & Infrastructure",
|
||||
"dst_name": "Core Domain Models",
|
||||
"src_id": "5",
|
||||
"dst_id": "4",
|
||||
"edge_count": 0,
|
||||
"is_static": false
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": 2,
|
||||
"repo_state_hash": "62b7b73_2280d592",
|
||||
"base_commit": "62b7b73a17773fe904c6dcf67941295783386c2e",
|
||||
"repo_state_hash": "3105cd9_2ba49900",
|
||||
"base_commit": "3105cd92f05a4d4cdc94569f6b2773f383760a27",
|
||||
"file_to_component": {},
|
||||
"expanded_components": []
|
||||
}
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"commit_hash": "e36147670d0b5d9de9af88c354d731309a75bbcb",
|
||||
"commit_hash": "3105cd92f05a4d4cdc94569f6b2773f383760a27",
|
||||
"code_boarding_version": "0.2.0"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 1,
|
||||
"generated_at": "2026-04-06T19:09:01.072523+00:00",
|
||||
"generated_at": "2026-04-12T02:16:19.751423+00:00",
|
||||
"analyzed_files": [],
|
||||
"not_analyzed_files": [
|
||||
{
|
||||
@@ -15,6 +15,10 @@
|
||||
"path": "MagicalDeckbuilder.Shared\\Combining\\CardCombiner.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "MagicalDeckbuilder.Shared\\Combining\\CombinationLookup.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "MagicalDeckbuilder.Shared\\Decks\\DeckManager.cs",
|
||||
"reason": "other"
|
||||
@@ -39,6 +43,18 @@
|
||||
"path": "MagicalDeckbuilder.Shared\\MagicalDeckbuilder.Shared.csproj",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "MagicalDeckbuilder.Shared\\Storage\\DeckSerialization.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "MagicalDeckbuilder.Shared\\Storage\\DeckStorageService.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "MagicalDeckbuilder.Shared\\Storage\\SavedDeck.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "new.sln",
|
||||
"reason": "other"
|
||||
@@ -55,14 +71,6 @@
|
||||
"path": "NewGame.UI\\AssemblyInfo.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Controls\\CardControl.xaml",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Controls\\CardControl.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Controls\\CardZoomOverlay.xaml",
|
||||
"reason": "other"
|
||||
@@ -103,6 +111,10 @@
|
||||
"path": "NewGame.UI\\ViewModels\\RelayCommand.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\ViewModels\\SavedDeckViewModel.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\ViewModels\\ViewModelBase.cs",
|
||||
"reason": "other"
|
||||
@@ -131,6 +143,22 @@
|
||||
"path": "NewGame.UI\\Views\\DeckBuilderView.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\DeckNameDialog.xaml",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\DeckNameDialog.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\DeckSelectionView.xaml",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\DeckSelectionView.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\ErrorWindow.xaml",
|
||||
"reason": "other"
|
||||
@@ -147,6 +175,14 @@
|
||||
"path": "NewGame.UI\\Views\\GalleryView.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\GameEndWindow.xaml",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\GameEndWindow.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\GameView.xaml",
|
||||
"reason": "other"
|
||||
@@ -163,17 +199,37 @@
|
||||
"path": "NewGame.UI\\Views\\MenuView.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\SettingsView.xaml",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\SettingsView.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\UnsavedChangesDialog.xaml",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "NewGame.UI\\Views\\UnsavedChangesDialog.xaml.cs",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"reason": "other"
|
||||
},
|
||||
{
|
||||
"path": "temp_gameview_old.txt",
|
||||
"reason": "other"
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"total_files": 41,
|
||||
"total_files": 55,
|
||||
"analyzed": 0,
|
||||
"not_analyzed": 41,
|
||||
"not_analyzed": 55,
|
||||
"not_analyzed_by_reason": {
|
||||
"other": 41
|
||||
"other": 55
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace MagicalDeckbuilder.Cards;
|
||||
|
||||
/// <summary>
|
||||
@@ -73,7 +76,14 @@ public enum EffectType
|
||||
ShieldSelf, // Shield self
|
||||
Biteback, // Counterattack when attacked
|
||||
Infect, // Add infection tokens
|
||||
DisableAttack // Disable creature from attacking (Astral Eviction)
|
||||
DisableAttack, // Disable creature from attacking (Astral Eviction)
|
||||
EldritchSummon, // Summon from Eldritch table after X turns (Call of the Deep)
|
||||
|
||||
// New armor effect types
|
||||
NegateDamage, // Negates all damage (Suspicious Suit, Aegis of Jaa'aird'thuun)
|
||||
Temporary, // Temporary effect that expires after X turns
|
||||
OnHitDebuff, // Debuffs attacker when hit (Virulent Vambrace)
|
||||
RevealHand // Makes opponent's hand visible for a turn (Jar of Eyes)
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -138,6 +148,11 @@ public class Card
|
||||
public int Rarity { get; set; } // 1 = common, 2 = uncommon, 3 = rare, 4 = legendary
|
||||
public bool IsCombinable { get; set; } // true if this card can be used in the combine system
|
||||
public bool IsComboOnly { get; set; } // true if this card can only be obtained via combining, not added to decks
|
||||
|
||||
/// <summary>
|
||||
/// Temperature Gradient passive: "up" doubles Power buff amounts/duration, "down" doubles Health buff amounts/duration
|
||||
/// </summary>
|
||||
public string TemperatureGradient { get; set; } // "" = none, "up" = power, "down" = health, "both" = both
|
||||
|
||||
public virtual Card Clone()
|
||||
{
|
||||
@@ -278,6 +293,18 @@ public class SpellCard : Card
|
||||
Target = e.Target,
|
||||
IsTemporary = e.IsTemporary
|
||||
}).ToList(),
|
||||
Abilities = this.Abilities.Select(a => new CardAbility
|
||||
{
|
||||
Name = a.Name,
|
||||
Description = a.Description,
|
||||
ManaCost = a.ManaCost,
|
||||
EffectType = a.EffectType,
|
||||
EffectValue = a.EffectValue,
|
||||
RequiresTarget = a.RequiresTarget,
|
||||
IsPassive = a.IsPassive,
|
||||
Duration = a.Duration,
|
||||
Target = a.Target
|
||||
}).ToList(),
|
||||
IsLegendary = this.IsLegendary,
|
||||
Rarity = this.Rarity,
|
||||
IsCombinable = this.IsCombinable,
|
||||
@@ -317,6 +344,18 @@ public class ArtifactCard : Card
|
||||
Target = e.Target,
|
||||
IsTemporary = e.IsTemporary
|
||||
}).ToList(),
|
||||
Abilities = this.Abilities.Select(a => new CardAbility
|
||||
{
|
||||
Name = a.Name,
|
||||
Description = a.Description,
|
||||
ManaCost = a.ManaCost,
|
||||
EffectType = a.EffectType,
|
||||
EffectValue = a.EffectValue,
|
||||
RequiresTarget = a.RequiresTarget,
|
||||
IsPassive = a.IsPassive,
|
||||
Duration = a.Duration,
|
||||
Target = a.Target
|
||||
}).ToList(),
|
||||
IsLegendary = this.IsLegendary,
|
||||
Rarity = this.Rarity,
|
||||
IsCombinable = this.IsCombinable,
|
||||
@@ -357,6 +396,18 @@ public class EventCard : Card
|
||||
Target = e.Target,
|
||||
IsTemporary = e.IsTemporary
|
||||
}).ToList(),
|
||||
Abilities = this.Abilities.Select(a => new CardAbility
|
||||
{
|
||||
Name = a.Name,
|
||||
Description = a.Description,
|
||||
ManaCost = a.ManaCost,
|
||||
EffectType = a.EffectType,
|
||||
EffectValue = a.EffectValue,
|
||||
RequiresTarget = a.RequiresTarget,
|
||||
IsPassive = a.IsPassive,
|
||||
Duration = a.Duration,
|
||||
Target = a.Target
|
||||
}).ToList(),
|
||||
IsLegendary = this.IsLegendary,
|
||||
Rarity = this.Rarity,
|
||||
IsCombinable = this.IsCombinable,
|
||||
@@ -410,6 +461,16 @@ public class BlankCard : Card
|
||||
public class WeaponCard : Card
|
||||
{
|
||||
public WeaponTargetType TargetType { get; set; } = WeaponTargetType.DamageToOpponent;
|
||||
|
||||
/// <summary>
|
||||
/// Power growth per hit - for weapons like Disgusting! that gain power each time they deal damage
|
||||
/// </summary>
|
||||
public int PowerGrowth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of times this weapon has dealt damage (for tracking power growth)
|
||||
/// </summary>
|
||||
public int HitCount { get; set; }
|
||||
|
||||
public WeaponCard()
|
||||
{
|
||||
@@ -437,9 +498,23 @@ public class WeaponCard : Card
|
||||
Target = e.Target,
|
||||
IsTemporary = e.IsTemporary
|
||||
}).ToList(),
|
||||
Abilities = this.Abilities.Select(a => new CardAbility
|
||||
{
|
||||
Name = a.Name,
|
||||
Description = a.Description,
|
||||
ManaCost = a.ManaCost,
|
||||
EffectType = a.EffectType,
|
||||
EffectValue = a.EffectValue,
|
||||
RequiresTarget = a.RequiresTarget,
|
||||
IsPassive = a.IsPassive,
|
||||
Duration = a.Duration,
|
||||
Target = a.Target
|
||||
}).ToList(),
|
||||
IsLegendary = this.IsLegendary,
|
||||
Rarity = this.Rarity,
|
||||
TargetType = this.TargetType
|
||||
TargetType = this.TargetType,
|
||||
PowerGrowth = this.PowerGrowth,
|
||||
HitCount = this.HitCount
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -449,6 +524,76 @@ public class WeaponCard : Card
|
||||
/// </summary>
|
||||
public class ArmorCard : Card
|
||||
{
|
||||
/// <summary>
|
||||
/// Passive damage reduction - reduces all incoming damage by this amount
|
||||
/// </summary>
|
||||
public int DamageReduction { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Has Biteback effect - deals damage back to attacker
|
||||
/// </summary>
|
||||
public bool HasBiteback { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Biteback damage amount
|
||||
/// </summary>
|
||||
public int BitebackDamage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Negates all incoming damage (for Suspicious Suit, Aegis of Jaa'aird'thuun)
|
||||
/// </summary>
|
||||
public bool NegatesAllDamage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Number of turns until armor expires (for temporary armor)
|
||||
/// </summary>
|
||||
public int TurnsRemaining { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Has OnHitDebuff - debuffs attacker when hit
|
||||
/// </summary>
|
||||
public bool HasOnHitDebuff { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// OnHitDebuff power reduction amount
|
||||
/// </summary>
|
||||
public int OnHitDebuffPower { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// OnHitDebuff health reduction amount
|
||||
/// </summary>
|
||||
public int OnHitDebuffHealth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Has OnHitSpawn - spawns a creature when hit (50% chance for Disintegrating Regalia)
|
||||
/// </summary>
|
||||
public bool HasOnHitSpawn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Card ID to spawn when hit
|
||||
/// </summary>
|
||||
public string? SpawnCardId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance to spawn (0-100)
|
||||
/// </summary>
|
||||
public int SpawnChance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Has Intimidation effect - weakens attacking creatures
|
||||
/// </summary>
|
||||
public bool HasIntimidation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Intimidation power threshold (creatures with power <= this cannot attack)
|
||||
/// </summary>
|
||||
public int IntimidationPowerThreshold { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Intimidation health threshold (creatures with health <= this cannot attack)
|
||||
/// </summary>
|
||||
public int IntimidationHealthThreshold { get; set; }
|
||||
|
||||
public ArmorCard()
|
||||
{
|
||||
Type = CardType.Armor;
|
||||
@@ -466,6 +611,20 @@ public class ArmorCard : Card
|
||||
ManaCost = this.ManaCost,
|
||||
Power = this.Power,
|
||||
Health = this.Health,
|
||||
DamageReduction = this.DamageReduction,
|
||||
HasBiteback = this.HasBiteback,
|
||||
BitebackDamage = this.BitebackDamage,
|
||||
NegatesAllDamage = this.NegatesAllDamage,
|
||||
TurnsRemaining = this.TurnsRemaining,
|
||||
HasOnHitDebuff = this.HasOnHitDebuff,
|
||||
OnHitDebuffPower = this.OnHitDebuffPower,
|
||||
OnHitDebuffHealth = this.OnHitDebuffHealth,
|
||||
HasOnHitSpawn = this.HasOnHitSpawn,
|
||||
SpawnCardId = this.SpawnCardId,
|
||||
SpawnChance = this.SpawnChance,
|
||||
HasIntimidation = this.HasIntimidation,
|
||||
IntimidationPowerThreshold = this.IntimidationPowerThreshold,
|
||||
IntimidationHealthThreshold = this.IntimidationHealthThreshold,
|
||||
Effects = this.Effects.Select(e => new CardEffect
|
||||
{
|
||||
Name = e.Name,
|
||||
@@ -475,6 +634,18 @@ public class ArmorCard : Card
|
||||
Target = e.Target,
|
||||
IsTemporary = e.IsTemporary
|
||||
}).ToList(),
|
||||
Abilities = this.Abilities.Select(a => new CardAbility
|
||||
{
|
||||
Name = a.Name,
|
||||
Description = a.Description,
|
||||
ManaCost = a.ManaCost,
|
||||
EffectType = a.EffectType,
|
||||
EffectValue = a.EffectValue,
|
||||
RequiresTarget = a.RequiresTarget,
|
||||
IsPassive = a.IsPassive,
|
||||
Duration = a.Duration,
|
||||
Target = a.Target
|
||||
}).ToList(),
|
||||
IsLegendary = this.IsLegendary,
|
||||
Rarity = this.Rarity,
|
||||
IsCombinable = this.IsCombinable,
|
||||
|
||||
@@ -19,12 +19,12 @@ public class CombinationLookup
|
||||
|
||||
foreach (var card in cards)
|
||||
{
|
||||
// Pre-made combination cards should follow naming convention:
|
||||
// "combine_{id1}_{id2}" or use a prefix to identify them
|
||||
if (card.Name.StartsWith("combine_", StringComparison.OrdinalIgnoreCase))
|
||||
// Pre-made combo-only cards are stored in the deck
|
||||
// They have IsComboOnly = true and IsCombinable = true
|
||||
if (card.IsComboOnly && card.IsCombinable)
|
||||
{
|
||||
// Extract the key from the name (e.g., "combine_abc123_def456")
|
||||
var key = card.Name.ToLowerInvariant();
|
||||
// Create a key from the card name in lowercase with underscores
|
||||
var key = card.Name.ToLowerInvariant().Replace(" ", "_").Replace("'", "");
|
||||
_combinationCards[key] = card;
|
||||
}
|
||||
}
|
||||
@@ -45,14 +45,18 @@ public class CombinationLookup
|
||||
return result;
|
||||
}
|
||||
|
||||
// Try alternative naming patterns
|
||||
// Pattern 2: combine_{name1}_{name2} (using sanitized card names)
|
||||
var nameKey = $"combine_{SanitizeName(card1.Name)}_{SanitizeName(card2.Name)}".ToLowerInvariant();
|
||||
// Try matching by checking combo card descriptions for the two base card names
|
||||
// The combo card description contains "(combo X + Y)" format
|
||||
var name1 = card1.Name.ToLowerInvariant();
|
||||
var name2 = card2.Name.ToLowerInvariant();
|
||||
|
||||
// Check if we have any partial matches (names might not match exactly)
|
||||
foreach (var kvp in _combinationCards)
|
||||
{
|
||||
if (kvp.Key.Contains(ids[0]) || kvp.Key.Contains(ids[1]))
|
||||
var desc = kvp.Value.Description.ToLowerInvariant();
|
||||
// Check if description contains both card names (with "combo" keyword)
|
||||
if (desc.Contains("combo") &&
|
||||
(desc.Contains(name1) || desc.Contains(name1.Replace(" ", ""))) &&
|
||||
(desc.Contains(name2) || desc.Contains(name2.Replace(" ", ""))))
|
||||
{
|
||||
return kvp.Value;
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@ public class OpponentAI
|
||||
public int? SlotIndex;
|
||||
public Card? TargetCard;
|
||||
public AIDecisionType Type;
|
||||
|
||||
// For UseAbility decisions
|
||||
public int? AbilityIndex; // Which ability to use (index in Abilities list)
|
||||
public Card? AbilityTarget; // Target for the ability
|
||||
}
|
||||
|
||||
public enum AIDecisionType
|
||||
@@ -40,12 +44,18 @@ public class OpponentAI
|
||||
PlayArtifact,
|
||||
PlayWeapon,
|
||||
Attack,
|
||||
UseAbility,
|
||||
EndTurn,
|
||||
Pass
|
||||
}
|
||||
|
||||
public AIDecision DecideAction(DeckManager deck, int currentMana, List<CreatureSlot> playerSlots)
|
||||
public AIDecision DecideAction(DeckManager deck, int currentMana, List<CreatureSlot> playerSlots, List<CreatureSlot>? opponentSlots = null)
|
||||
{
|
||||
// First check if any creature can use an ability
|
||||
var abilityDecision = TryChooseAbilityDecision(deck, currentMana, playerSlots, opponentSlots);
|
||||
if (abilityDecision.Type != AIDecisionType.Pass)
|
||||
return abilityDecision;
|
||||
|
||||
return _difficulty switch
|
||||
{
|
||||
DifficultyLevel.Apprentice => ApprenticeLogic(deck, currentMana, playerSlots),
|
||||
@@ -55,6 +65,58 @@ public class OpponentAI
|
||||
_ => ApprenticeLogic(deck, currentMana, playerSlots)
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Try to find a creature with an ability that can be used
|
||||
/// </summary>
|
||||
private AIDecision TryChooseAbilityDecision(DeckManager deck, int currentMana, List<CreatureSlot> playerSlots, List<CreatureSlot>? opponentSlots)
|
||||
{
|
||||
if (opponentSlots == null) return new AIDecision { Type = AIDecisionType.Pass };
|
||||
|
||||
// Check opponent's creatures for usable abilities
|
||||
for (int i = 0; i < opponentSlots.Count; i++)
|
||||
{
|
||||
var slot = opponentSlots[i];
|
||||
if (slot?.Creature == null) continue;
|
||||
|
||||
var card = slot.Creature;
|
||||
|
||||
// Skip if already used ability this turn
|
||||
if (card.Abilities == null || card.Abilities.Count == 0) continue;
|
||||
|
||||
// Check each ability
|
||||
for (int a = 0; a < card.Abilities.Count; a++)
|
||||
{
|
||||
var ability = card.Abilities[a];
|
||||
if (ability.IsPassive) continue; // Skip passives
|
||||
if (ability.ManaCost > currentMana) continue; // Not enough mana
|
||||
|
||||
// Have ability - find target
|
||||
Card? target = null;
|
||||
|
||||
// Simple targeting: pick a random player creature as target if ability needs one
|
||||
if (ability.RequiresTarget && playerSlots.Count > 0)
|
||||
{
|
||||
var availableTargets = playerSlots.Where(s => s?.Creature != null).ToList();
|
||||
if (availableTargets.Count > 0)
|
||||
{
|
||||
target = availableTargets[_random.Next(availableTargets.Count)].Creature;
|
||||
}
|
||||
}
|
||||
|
||||
return new AIDecision
|
||||
{
|
||||
Type = AIDecisionType.UseAbility,
|
||||
CardId = card.Id,
|
||||
SlotIndex = i,
|
||||
AbilityIndex = a,
|
||||
TargetCard = target
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return new AIDecision { Type = AIDecisionType.Pass };
|
||||
}
|
||||
|
||||
private AIDecision ApprenticeLogic(DeckManager deck, int currentMana, List<CreatureSlot> playerSlots)
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("MagicalDeckbuilder.Shared")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+99b1eb3a438c388c3d1091642c0835b917836df6")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3105cd92f05a4d4cdc94569f6b2773f383760a27")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("MagicalDeckbuilder.Shared")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("MagicalDeckbuilder.Shared")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
7bbb30894009cb511ef9fdf5afd79f35b65d7279078b123b2b5b54a55943d128
|
||||
d578286be9ff20f858c37dc2537f9c61307b3e40a9ab664009da096089398353
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
{"documents":{"C:\\Users\\atw61\\OneDrive\\Desktop\\new\\*":"https://raw.githubusercontent.com/alexandria121/new/99b1eb3a438c388c3d1091642c0835b917836df6/*"}}
|
||||
{"documents":{"C:\\Users\\atw61\\OneDrive\\Desktop\\new\\*":"https://raw.githubusercontent.com/alexandria121/new/3105cd92f05a4d4cdc94569f6b2773f383760a27/*"}}
|
||||
Binary file not shown.
BIN
Binary file not shown.
@@ -31,6 +31,9 @@
|
||||
<Converters:CanAffordToColorConverter x:Key="CanAffordToColorConverter"/>
|
||||
<Converters:CountToVisibilityConverter x:Key="CountToVisibilityConverter"/>
|
||||
<Converters:CountToVisibilityInverseConverter x:Key="CountToVisibilityInverseConverter"/>
|
||||
<Converters:CardTypeToStatsVisibilityConverter x:Key="CardTypeToStatsVisibilityConverter"/>
|
||||
<Converters:CardTypeToPowerVisibilityConverter x:Key="CardTypeToPowerVisibilityConverter"/>
|
||||
<Converters:CardTypeToHealthVisibilityConverter x:Key="CardTypeToHealthVisibilityConverter"/>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
<Converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
<Converters:InverseBoolToVisibilityConverter x:Key="InverseBoolToVisibilityConverter"/>
|
||||
<Converters:CardTypeToStatsVisibilityConverter x:Key="CardTypeToStatsVisibilityConverter"/>
|
||||
<Converters:CardTypeToPowerVisibilityConverter x:Key="CardTypeToPowerVisibilityConverter"/>
|
||||
<Converters:CardTypeToHealthVisibilityConverter x:Key="CardTypeToHealthVisibilityConverter"/>
|
||||
</UserControl.Resources>
|
||||
|
||||
<!-- Semi-transparent overlay background -->
|
||||
@@ -160,13 +162,13 @@
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Power (for creatures/weapons) -->
|
||||
<!-- Power (for creatures) -->
|
||||
<Border Grid.Column="1"
|
||||
Background="#503232"
|
||||
CornerRadius="8"
|
||||
Padding="10,4"
|
||||
Margin="5,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToStatsVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="⚔" Foreground="{StaticResource DangerBrush}" FontSize="12" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="White" FontSize="13" FontWeight="Bold"/>
|
||||
@@ -184,7 +186,7 @@
|
||||
CornerRadius="8"
|
||||
Padding="10,4"
|
||||
Margin="5,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToStatsVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="♥" Foreground="{StaticResource HealthBrush}" FontSize="12" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="White" FontSize="13" FontWeight="Bold"/>
|
||||
|
||||
@@ -588,6 +588,72 @@ public class CardTypeToStatsVisibilityConverter : IValueConverter
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts CardType to Visibility - visible if card should display Power value
|
||||
/// Weapons show Power, Creatures show Power, Armor/Armor/Event don't need P displayed, Blanks hide P
|
||||
/// </summary>
|
||||
public class CardTypeToPowerVisibilityConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (value is CardType cardType)
|
||||
{
|
||||
return cardType switch
|
||||
{
|
||||
CardType.Creature => Visibility.Visible,
|
||||
CardType.Weapon => Visibility.Visible,
|
||||
_ => Visibility.Collapsed
|
||||
};
|
||||
}
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts CardType to Visibility - visible if card should display Health value
|
||||
/// Creatures and Armor show Health, Weapons don't need H, Blanks hide H/P
|
||||
/// </summary>
|
||||
public class CardTypeToHealthVisibilityConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (value is CardType cardType)
|
||||
{
|
||||
return cardType switch
|
||||
{
|
||||
CardType.Creature => Visibility.Visible,
|
||||
CardType.Armor => Visibility.Visible,
|
||||
_ => Visibility.Collapsed
|
||||
};
|
||||
}
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
Title="Magical Deckbuilder"
|
||||
Height="800" Width="1200"
|
||||
MinHeight="600" MinWidth="900"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Background="{StaticResource BackgroundBrush}">
|
||||
|
||||
|
||||
@@ -202,6 +202,11 @@ public class CardViewModel : ViewModelBase
|
||||
public bool IsComboOnly => _card.IsComboOnly;
|
||||
public IReadOnlyList<CardEffect> Effects => _card.Effects;
|
||||
public IReadOnlyList<CardAbility> Abilities => _card.Abilities;
|
||||
|
||||
/// <summary>
|
||||
/// Track whether an ability has been used this turn
|
||||
/// </summary>
|
||||
public bool AbilityUsedThisTurn { get; set; }
|
||||
|
||||
public string EffectsText => Effects.Count > 0 || Abilities.Count > 0
|
||||
? string.Join(", ", Effects.Select(e => e.Name).Concat(Abilities.Select(a => a.Name)))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,8 @@
|
||||
<Converters:TypeToColorConverter x:Key="TypeToColorConverter"/>
|
||||
<Converters:ElementToColorConverter x:Key="ElementToColorConverter"/>
|
||||
<Converters:CardTypeToStatsVisibilityConverter x:Key="CardTypeToStatsVisibilityConverter"/>
|
||||
<Converters:CardTypeToPowerVisibilityConverter x:Key="CardTypeToPowerVisibilityConverter"/>
|
||||
<Converters:CardTypeToHealthVisibilityConverter x:Key="CardTypeToHealthVisibilityConverter"/>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid Margin="20">
|
||||
@@ -42,11 +44,12 @@
|
||||
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Available Cards -->
|
||||
<!-- Left Panel: Available Cards Scroll -->
|
||||
<Border Grid.Column="0"
|
||||
Background="{StaticResource SurfaceBrush}"
|
||||
CornerRadius="8"
|
||||
@@ -58,20 +61,12 @@
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,10">
|
||||
<TextBlock Text="Available Cards"
|
||||
Foreground="{StaticResource TextPrimaryBrush}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"/>
|
||||
<TextBlock Text="Sort by:"
|
||||
Foreground="{StaticResource TextSecondaryBrush}"
|
||||
FontSize="12"
|
||||
Margin="20,2,0,0"/>
|
||||
<ComboBox ItemsSource="{Binding SortOptions}"
|
||||
SelectedItem="{Binding SelectedSortOption}"
|
||||
Width="100"
|
||||
Margin="5,0,0,0"/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Row="0"
|
||||
Text="Available Cards"
|
||||
Foreground="{StaticResource TextPrimaryBrush}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl ItemsSource="{Binding AvailableCards}">
|
||||
@@ -86,10 +81,10 @@
|
||||
BorderBrush="{Binding Type, Converter={StaticResource TypeToColorConverter}}"
|
||||
BorderThickness="2"
|
||||
CornerRadius="6"
|
||||
Padding="8"
|
||||
Margin="4"
|
||||
Width="150"
|
||||
Height="210"
|
||||
Padding="6"
|
||||
Margin="3"
|
||||
Width="105"
|
||||
Height="145"
|
||||
Cursor="Hand"
|
||||
MouseLeftButtonDown="Card_MouseLeftButtonDown"
|
||||
MouseMove="Card_MouseMove">
|
||||
@@ -97,89 +92,54 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="30"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="18"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Name and Mana Cost -->
|
||||
<Grid Grid.Row="0">
|
||||
<TextBlock Text="{Binding Name}"
|
||||
Foreground="White"
|
||||
FontSize="11"
|
||||
FontSize="8"
|
||||
FontWeight="Bold"
|
||||
TextTrimming="CharacterEllipsis"/>
|
||||
<Border HorizontalAlignment="Right"
|
||||
Background="{StaticResource ManaBrush}"
|
||||
CornerRadius="6"
|
||||
Padding="5,2">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="☀" Foreground="White" FontSize="8" Margin="0,0,2,0"/>
|
||||
<TextBlock Text="{Binding ManaCost}"
|
||||
Foreground="White"
|
||||
FontSize="10"
|
||||
FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
CornerRadius="2"
|
||||
Padding="2,1">
|
||||
<TextBlock Text="{Binding ManaCost}"
|
||||
Foreground="White"
|
||||
FontSize="7"
|
||||
FontWeight="Bold"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- Type Badge -->
|
||||
<Border Grid.Row="1"
|
||||
Background="{Binding Element, Converter={StaticResource ElementToColorConverter}}"
|
||||
Margin="0,4"
|
||||
CornerRadius="3"
|
||||
Padding="4,2">
|
||||
Margin="0,2"
|
||||
CornerRadius="2"
|
||||
Padding="2,1">
|
||||
<TextBlock Text="{Binding Type}"
|
||||
Foreground="#80FFFFFF"
|
||||
FontSize="9"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"/>
|
||||
FontSize="6"
|
||||
HorizontalAlignment="Center"/>
|
||||
</Border>
|
||||
|
||||
<!-- Power and Health -->
|
||||
<Border Grid.Row="2"
|
||||
Background="{StaticResource SurfaceBrush}"
|
||||
CornerRadius="4"
|
||||
Padding="6,4">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToStatsVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<TextBlock Text="⚔" Foreground="{StaticResource DangerBrush}" FontSize="12" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="{StaticResource DangerBrush}" FontSize="14" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<TextBlock Text="⚔" Foreground="{StaticResource DangerBrush}" FontSize="8" Margin="0,0,1,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="❤" Foreground="{StaticResource HealthBrush}" FontSize="8"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Center"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToStatsVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<TextBlock Text="❤" Foreground="{StaticResource HealthBrush}" FontSize="12" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="{StaticResource HealthBrush}" FontSize="14" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Abilities/Effects -->
|
||||
<Border Grid.Row="3"
|
||||
Margin="0,4,0,0"
|
||||
Visibility="{Binding HasEffects, Converter={StaticResource NullToVisibilityConverter}}">
|
||||
<TextBlock Text="{Binding EffectsText}"
|
||||
Foreground="{StaticResource AccentBrush}"
|
||||
FontSize="8"
|
||||
TextWrapping="Wrap"
|
||||
MaxHeight="30"
|
||||
TextTrimming="CharacterEllipsis"/>
|
||||
</Border>
|
||||
|
||||
<!-- Element -->
|
||||
<StackPanel Grid.Row="4" Orientation="Horizontal" Margin="0,4,0,0" HorizontalAlignment="Center">
|
||||
<TextBlock Text="{Binding ElementIcon}" FontSize="10" Margin="0,0,4,0"/>
|
||||
<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<TextBlock Text="{Binding ElementIcon}" FontSize="7"/>
|
||||
<TextBlock Text="{Binding Element}"
|
||||
Foreground="{StaticResource TextSecondaryBrush}"
|
||||
FontSize="9"
|
||||
FontWeight="SemiBold"/>
|
||||
FontSize="6"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -190,8 +150,111 @@
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Deck Preview -->
|
||||
<!-- Middle Panel: Large Card Preview -->
|
||||
<Border Grid.Column="1"
|
||||
Background="{StaticResource SurfaceBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="20"
|
||||
Margin="0,0,10,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="0"
|
||||
Text="Card Preview"
|
||||
Foreground="{StaticResource TextPrimaryBrush}"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<Border Grid.Row="1"
|
||||
Background="{StaticResource SurfaceLightBrush}"
|
||||
CornerRadius="10"
|
||||
Padding="20">
|
||||
<Grid DataContext="{Binding SelectedCard}">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="30"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid Grid.Row="0">
|
||||
<TextBlock Text="{Binding Name, FallbackValue='Click a card to preview'}"
|
||||
Foreground="White"
|
||||
FontSize="16"
|
||||
FontWeight="Bold"
|
||||
TextTrimming="CharacterEllipsis"/>
|
||||
<Border HorizontalAlignment="Right"
|
||||
Background="{StaticResource ManaBrush}"
|
||||
CornerRadius="6"
|
||||
Padding="6,2"
|
||||
Visibility="{Binding ManaCost, Converter={StaticResource NullToVisibilityConverter}}">
|
||||
<TextBlock Text="{Binding ManaCost}"
|
||||
Foreground="White"
|
||||
FontSize="12"
|
||||
FontWeight="Bold"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,8,0,0">
|
||||
<Border Background="{Binding Element, Converter={StaticResource ElementToColorConverter}}"
|
||||
CornerRadius="4"
|
||||
Padding="6,2"
|
||||
Margin="0,0,6,0">
|
||||
<TextBlock Text="{Binding Type}"
|
||||
Foreground="White"
|
||||
FontSize="10"
|
||||
FontWeight="Bold"/>
|
||||
</Border>
|
||||
<TextBlock Text="{Binding Element}"
|
||||
Foreground="{StaticResource TextSecondaryBrush}"
|
||||
FontSize="10"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" Margin="0,10,0,0" HorizontalAlignment="Center">
|
||||
<TextBlock Text="⚔" Foreground="{StaticResource DangerBrush}" FontSize="14" Margin="0,0,3,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="{StaticResource DangerBrush}" FontSize="18" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text=" ❤" Foreground="{StaticResource HealthBrush}" FontSize="14"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="{StaticResource HealthBrush}" FontSize="18" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
|
||||
<Border Grid.Row="3"
|
||||
Background="{StaticResource SurfaceBrush}"
|
||||
CornerRadius="6"
|
||||
Padding="10"
|
||||
Margin="0,10,0,0"
|
||||
VerticalAlignment="Top">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<TextBlock Text="{Binding Description}"
|
||||
Foreground="{StaticResource TextPrimaryBrush}"
|
||||
FontSize="10"
|
||||
TextWrapping="Wrap"/>
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
|
||||
<TextBlock Grid.Row="4"
|
||||
Text="{Binding RarityName}"
|
||||
Foreground="{Binding Rarity, Converter={StaticResource RarityToColorConverter}}"
|
||||
FontSize="10"
|
||||
FontWeight="Bold"
|
||||
HorizontalAlignment="Center"
|
||||
Margin="0,8,0,0"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Right Panel: Your Deck -->
|
||||
<Border Grid.Column="2"
|
||||
Background="{StaticResource SurfaceBrush}"
|
||||
CornerRadius="8"
|
||||
Padding="15"
|
||||
@@ -226,8 +289,8 @@
|
||||
BorderBrush="{Binding Type, Converter={StaticResource TypeToColorConverter}}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="4"
|
||||
Padding="6"
|
||||
Margin="0,0,0,4"
|
||||
Padding="5"
|
||||
Margin="0,0,0,3"
|
||||
Width="Auto"
|
||||
MouseRightButtonDown="DeckCard_RightClick">
|
||||
<Grid>
|
||||
@@ -239,21 +302,21 @@
|
||||
<StackPanel Grid.Column="0">
|
||||
<TextBlock Text="{Binding Name}"
|
||||
Foreground="White"
|
||||
FontSize="10"
|
||||
FontSize="9"
|
||||
FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Element}"
|
||||
Foreground="{StaticResource TextSecondaryBrush}"
|
||||
FontSize="8"/>
|
||||
FontSize="7"/>
|
||||
</StackPanel>
|
||||
|
||||
<Border Grid.Column="1"
|
||||
Background="{StaticResource ManaBrush}"
|
||||
CornerRadius="4"
|
||||
Padding="4,2"
|
||||
CornerRadius="3"
|
||||
Padding="3,1"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding ManaCost}"
|
||||
Foreground="White"
|
||||
FontSize="9"/>
|
||||
FontSize="8"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -263,17 +326,17 @@
|
||||
</ScrollViewer>
|
||||
|
||||
<TextBlock Grid.Row="3"
|
||||
Text="Drag cards here to add to deck"
|
||||
Text="Drag cards here to add"
|
||||
Foreground="{StaticResource TextSecondaryBrush}"
|
||||
FontSize="12"
|
||||
FontSize="11"
|
||||
FontStyle="Italic"
|
||||
Visibility="{Binding PlayerDeckCards.Count, Converter={StaticResource NullToVisibilityConverter}, ConverterParameter=Inverse}"
|
||||
Margin="0,10,0,0"/>
|
||||
Margin="0,10,0,0"
|
||||
HorizontalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- Bottom Navigation -->
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,20,0,0">
|
||||
<Button Content="Back to Deck Selection"
|
||||
Style="{StaticResource BaseButtonStyle}"
|
||||
@@ -283,4 +346,4 @@
|
||||
Margin="0,0,20,0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
</UserControl>
|
||||
@@ -18,6 +18,15 @@ public partial class DeckBuilderView : UserControl
|
||||
private void Card_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
_startPoint = e.GetPosition(null);
|
||||
|
||||
// Set SelectedCard for preview
|
||||
if (sender is Border border && border.DataContext is CardViewModel card)
|
||||
{
|
||||
if (DataContext is MainViewModel vm)
|
||||
{
|
||||
vm.SelectedCard = card;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Card_MouseMove(object sender, MouseEventArgs e)
|
||||
|
||||
+108
-58
@@ -26,6 +26,8 @@
|
||||
<Converters:TypeToColorConverter x:Key="TypeToColorConverter"/>
|
||||
<Converters:EffectTypeToIconConverter x:Key="EffectTypeToIconConverter"/>
|
||||
<Converters:CardTypeToStatsVisibilityConverter x:Key="CardTypeToStatsVisibilityConverter"/>
|
||||
<Converters:CardTypeToPowerVisibilityConverter x:Key="CardTypeToPowerVisibilityConverter"/>
|
||||
<Converters:CardTypeToHealthVisibilityConverter x:Key="CardTypeToHealthVisibilityConverter"/>
|
||||
<Converters:IntToVisibilityConverter x:Key="IntToVisibilityConverter"/>
|
||||
<Converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
||||
<Converters:RarityToGradientConverter x:Key="RarityToGradientConverter"/>
|
||||
@@ -94,23 +96,61 @@
|
||||
<TextBlock Text=" | Mana: " Foreground="{StaticResource ManaBrush}" FontSize="12" Margin="15,0,0,0"/>
|
||||
<TextBlock Text="{Binding PlayerMana}" Foreground="{StaticResource ManaBrush}" FontSize="12" FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Border Background="#2A1A1A" BorderBrush="#4A2A2A" BorderThickness="1" CornerRadius="3" Width="32" Height="44" Margin="2">
|
||||
<TextBlock Text="?" Foreground="#505050" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<Border Background="#2A1A1A" BorderBrush="#4A2A2A" BorderThickness="1" CornerRadius="3" Width="32" Height="44" Margin="2">
|
||||
<TextBlock Text="?" Foreground="#505050" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<Border Background="#2A1A1A" BorderBrush="#4A2A2A" BorderThickness="1" CornerRadius="3" Width="32" Height="44" Margin="2">
|
||||
<TextBlock Text="?" Foreground="#505050" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<Border Background="#2A1A1A" BorderBrush="#4A2A2A" BorderThickness="1" CornerRadius="3" Width="32" Height="44" Margin="2">
|
||||
<TextBlock Text="?" Foreground="#505050" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<Border Background="#2A1A1A" BorderBrush="#4A2A2A" BorderThickness="1" CornerRadius="3" Width="32" Height="44" Margin="2">
|
||||
<TextBlock Text="?" Foreground="#505050" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="16" FontWeight="Bold"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
<!-- Show opponent hand cards if visible (Jar of Eyes), otherwise show hidden cards -->
|
||||
<ItemsControl ItemsSource="{Binding OpponentHand}" Visibility="{Binding OpponentHandVisible, Converter={StaticResource BoolToVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Background="#464636" BorderBrush="#506046" BorderThickness="2" CornerRadius="3" Width="80" Height="110" Margin="2">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Name}" Foreground="White" FontSize="9" FontWeight="Bold" TextTrimming="CharacterEllipsis" MaxWidth="60"/>
|
||||
<Border Background="{StaticResource ManaBrush}" CornerRadius="3" Padding="3,1" Margin="4,0,0,0">
|
||||
<TextBlock Text="{Binding ManaCost}" Foreground="White" FontSize="8" FontWeight="Bold"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
<Border Grid.Row="1" Background="{Binding Element, Converter={StaticResource ElementToColorConverter}}" Margin="2,4" CornerRadius="2">
|
||||
<TextBlock Text="{Binding Type}" Foreground="#80FFFFFF" FontSize="8" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<TextBlock Text="P:" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold" Margin="2,0,8,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold" Margin="2,0,0,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<!-- Show hidden cards when opponent hand is not visible - dynamic count based on OpponentHand -->
|
||||
<ItemsControl ItemsSource="{Binding OpponentHand}" Visibility="{Binding OpponentHandVisible, Converter={StaticResource InverseBoolToVisibilityConverter}, FallbackValue=Visible}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Background="#2A1A1A" BorderBrush="#4A2A2A" BorderThickness="1" CornerRadius="3" Width="80" Height="110" Margin="2">
|
||||
<TextBlock Text="?" Foreground="#505050" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24" FontWeight="Bold"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Opponent Equipment (25%) -->
|
||||
@@ -125,10 +165,10 @@
|
||||
<TextBlock Text="{Binding OpponentEventSlot.Name, FallbackValue=Event}" Foreground="White" HorizontalAlignment="Center" FontSize="7" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="54"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,3">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding OpponentEventSlot.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Margin="1,0,3,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding OpponentEventSlot.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentEventSlot.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding OpponentEventSlot.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Margin="1,0,3,0" Visibility="{Binding OpponentEventSlot.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentEventSlot.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding OpponentEventSlot.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentEventSlot.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -141,10 +181,10 @@
|
||||
<TextBlock Text="{Binding OpponentWeapon.Name, FallbackValue=Weapon}" Foreground="White" HorizontalAlignment="Center" FontSize="7" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="54"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,3">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding OpponentWeapon.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Margin="1,0,3,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding OpponentWeapon.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentWeapon.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding OpponentWeapon.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Margin="1,0,3,0" Visibility="{Binding OpponentWeapon.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentWeapon.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding OpponentWeapon.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentWeapon.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -157,10 +197,10 @@
|
||||
<TextBlock Text="{Binding OpponentArmor.Name, FallbackValue=Armor}" Foreground="White" HorizontalAlignment="Center" FontSize="7" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="54"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,3">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding OpponentArmor.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Margin="1,0,3,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding OpponentArmor.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="8" FontWeight="Bold"/>
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentArmor.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding OpponentArmor.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="8" FontWeight="Bold" Margin="1,0,3,0" Visibility="{Binding OpponentArmor.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentArmor.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding OpponentArmor.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="8" FontWeight="Bold" Visibility="{Binding OpponentArmor.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -247,12 +287,15 @@
|
||||
Visibility="{Binding IsCombinable, Converter={StaticResource BoolToVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<TextBlock Text="C" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,4"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToStatsVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Power, FallbackValue=0}" Foreground="#FF6464" FontSize="9" FontWeight="Bold" Margin="2,0,5,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Health, FallbackValue=0}" Foreground="#64FF64" FontSize="9" FontWeight="Bold"/>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,4">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Power, FallbackValue=0}" Foreground="#FF6464" FontSize="9" FontWeight="Bold" Margin="2,0,5,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Health, FallbackValue=0}" Foreground="#64FF64" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -310,12 +353,15 @@
|
||||
Visibility="{Binding IsCombinable, Converter={StaticResource BoolToVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<TextBlock Text="C" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,4"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToStatsVisibilityConverter}, FallbackValue=Collapsed}">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Power, FallbackValue=0}" Foreground="#FF6464" FontSize="9" FontWeight="Bold" Margin="2,0,5,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Health, FallbackValue=0}" Foreground="#64FF64" FontSize="9" FontWeight="Bold"/>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,4">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Power, FallbackValue=0}" Foreground="#FF6464" FontSize="9" FontWeight="Bold" Margin="2,0,5,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Health, FallbackValue=0}" Foreground="#64FF64" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -333,7 +379,7 @@
|
||||
<Border Background="{Binding Element, Converter={StaticResource ElementToColorConverter}, FallbackValue=#C8C864}"
|
||||
BorderBrush="#D4D474" BorderThickness="2" Margin="3" CornerRadius="5" Width="80" Height="70"
|
||||
Tag="{Binding}" AllowDrop="True" Drop="OnArtifactSlotDrop" DragEnter="OnArtifactSlotDragEnter" DragOver="OnArtifactSlotDragOver" DragLeave="OnArtifactSlotDragLeave" MouseMove="OnArtifactSlotMouseMove"
|
||||
MouseRightButtonDown="OnFieldCardRightClick">
|
||||
MouseRightButtonDown="OnFieldCardRightClick" MouseLeftButtonDown="OnArtifactSlotLeftClick">
|
||||
<Grid>
|
||||
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0,3,0,0">
|
||||
<TextBlock Text="{Binding Name, FallbackValue=Artifact}" Foreground="White" HorizontalAlignment="Center" FontSize="8" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="72"/>
|
||||
@@ -422,10 +468,14 @@
|
||||
<TextBlock Text="Combinable" Foreground="#64FF64" FontSize="6" FontWeight="Bold"/>
|
||||
</Border>
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<TextBlock Text="P:" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold" Margin="2,0,8,0"/>
|
||||
<TextBlock Text="H:" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold" Margin="2,0,0,0"/>
|
||||
<TextBlock Text="P:" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Power}" Foreground="{StaticResource DangerBrush}" FontSize="9" FontWeight="Bold" Margin="2,0,8,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding Health}" Foreground="{StaticResource HealthBrush}" FontSize="9" FontWeight="Bold" Margin="2,0,0,0"
|
||||
Visibility="{Binding Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -456,10 +506,10 @@
|
||||
<TextBlock Text="{Binding PlayerWeapon.Name, FallbackValue=Weapon}" Foreground="White" HorizontalAlignment="Center" FontSize="6" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="48"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,2">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding PlayerWeapon.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Margin="1,0,2,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding PlayerWeapon.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerWeapon.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding PlayerWeapon.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Margin="1,0,2,0" Visibility="{Binding PlayerWeapon.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerWeapon.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding PlayerWeapon.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerWeapon.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -474,10 +524,10 @@
|
||||
<TextBlock Text="{Binding PlayerArmor.Name, FallbackValue=Armor}" Foreground="White" HorizontalAlignment="Center" FontSize="6" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="48"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,2">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding PlayerArmor.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Margin="1,0,2,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding PlayerArmor.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerArmor.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding PlayerArmor.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Margin="1,0,2,0" Visibility="{Binding PlayerArmor.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerArmor.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding PlayerArmor.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerArmor.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -492,10 +542,10 @@
|
||||
<TextBlock Text="{Binding PlayerEventSlot.Name, FallbackValue=Event}" Foreground="White" HorizontalAlignment="Center" FontSize="6" FontWeight="Bold" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="48"/>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0,0,0,2">
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding PlayerEventSlot.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Margin="1,0,2,0"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="{Binding PlayerEventSlot.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="7" FontWeight="Bold"/>
|
||||
<TextBlock Text="P:" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerEventSlot.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding PlayerEventSlot.Power, FallbackValue=0}" Foreground="#FF6464" FontSize="7" FontWeight="Bold" Margin="1,0,2,0" Visibility="{Binding PlayerEventSlot.Type, Converter={StaticResource CardTypeToPowerVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="H:" Foreground="#64FF64" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerEventSlot.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
<TextBlock Text="{Binding PlayerEventSlot.Health, FallbackValue=0}" Foreground="#64FF64" FontSize="7" FontWeight="Bold" Visibility="{Binding PlayerEventSlot.Type, Converter={StaticResource CardTypeToHealthVisibilityConverter}, FallbackValue=Collapsed}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@@ -832,6 +832,58 @@ public partial class GameView : UserControl
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle left-click on artifact to activate ability
|
||||
/// </summary>
|
||||
private void OnArtifactSlotLeftClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
if (sender is Border cardBorder)
|
||||
{
|
||||
// Check if there's a card in the slot
|
||||
if (!(cardBorder.Tag is CardViewModel card))
|
||||
{
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
LogToFile($"[OnArtifactSlotLeftClick] Card: {card.Name}, Abilities: {card.Abilities.Count}");
|
||||
|
||||
// If we're in ability targeting mode, this card is the target
|
||||
if (ViewModel?.IsSelectingTarget == true)
|
||||
{
|
||||
ViewModel.ExecuteAbilityOnTarget(card);
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// If card has abilities, activate the first one (for artifacts with abilities like Brain Altering Powder)
|
||||
if (card.Abilities != null && card.Abilities.Count > 0)
|
||||
{
|
||||
// Log what abilities exist for debugging
|
||||
foreach (var ab in card.Abilities)
|
||||
{
|
||||
LogToFile($"[OnArtifactSlotLeftClick] Found ability: {ab.Name}, IsPassive: {ab.IsPassive}");
|
||||
}
|
||||
|
||||
// For artifacts, try to find a non-passive ability; if none exist, use first ability
|
||||
var ability = card.Abilities.FirstOrDefault(a => !a.IsPassive) ?? card.Abilities.FirstOrDefault();
|
||||
if (ability != null)
|
||||
{
|
||||
LogToFile($"[OnArtifactSlotLeftClick] Starting ability: {ability.Name}, RequiresTarget: {ability.RequiresTarget}");
|
||||
ViewModel?.StartAbilityTargeting(ability, card);
|
||||
e.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LogToFile($"[OnArtifactSlotLeftClick] No abilities found");
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
// ========== Manual Card Zoom Control ==========
|
||||
private void ShowCardZoom()
|
||||
{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0232A20A20818401E84473B25100BDA56E8685EB"
|
||||
#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "27906BD54C38361C1D91BB5CB1F99229832EA1AC"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\..\Controls\CardZoomOverlay.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "0E6A397C04B5C53223C4A176405D816B59C70434"
|
||||
#pragma checksum "..\..\..\..\Controls\CardZoomOverlay.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "27DC37E737EB481D28317C77DF40C8FAF823747A"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
@@ -86,13 +86,13 @@ namespace NewGame.UI.Controls {
|
||||
return;
|
||||
case 2:
|
||||
|
||||
#line 31 "..\..\..\..\Controls\CardZoomOverlay.xaml"
|
||||
#line 33 "..\..\..\..\Controls\CardZoomOverlay.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnOverlayBackgroundClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 32 "..\..\..\..\Controls\CardZoomOverlay.xaml"
|
||||
#line 34 "..\..\..\..\Controls\CardZoomOverlay.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnOverlayRightClick);
|
||||
|
||||
#line default
|
||||
@@ -100,7 +100,7 @@ namespace NewGame.UI.Controls {
|
||||
return;
|
||||
case 3:
|
||||
|
||||
#line 99 "..\..\..\..\Controls\CardZoomOverlay.xaml"
|
||||
#line 101 "..\..\..\..\Controls\CardZoomOverlay.xaml"
|
||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnCloseClick);
|
||||
|
||||
#line default
|
||||
|
||||
@@ -1,61 +1,2 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace XamlGeneratedNamespace {
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// GeneratedInternalTypeHelper
|
||||
/// </summary>
|
||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "9.0.14.0")]
|
||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper {
|
||||
|
||||
/// <summary>
|
||||
/// CreateInstance
|
||||
/// </summary>
|
||||
protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) {
|
||||
return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic)
|
||||
| (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GetPropertyValue
|
||||
/// </summary>
|
||||
protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) {
|
||||
return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SetPropertyValue
|
||||
/// </summary>
|
||||
protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) {
|
||||
propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CreateDelegate
|
||||
/// </summary>
|
||||
protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) {
|
||||
return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod
|
||||
| (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] {
|
||||
delegateType,
|
||||
handler}, null)));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AddEventHandler
|
||||
/// </summary>
|
||||
protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) {
|
||||
eventInfo.AddEventHandler(target, handler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "E1AFB6B5B5AB47142E032927FCE6802F5BF7CF98"
|
||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "1E2C908F7FD0A323685CD52A78A3CC3644446692"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
||||
@@ -13,7 +13,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("NewGame.UI")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+99b1eb3a438c388c3d1091642c0835b917836df6")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3105cd92f05a4d4cdc94569f6b2773f383760a27")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("NewGame.UI")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("NewGame.UI")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
66a793cccfc3075cca05f37069a4f49613783f80fc771e5bd5cdbbae0f1a5413
|
||||
a65bd18b65c8d76627f7ee09f1b86dc6b564aa361109c19e8f02e24a73b0444e
|
||||
|
||||
Binary file not shown.
@@ -3,12 +3,43 @@ C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\NewGame.
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\NewGame.UI.runtimeconfig.json
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\NewGame.UI.dll
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\NewGame.UI.pdb
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\MagicalDeckbuilder.Shared.dll
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\MagicalDeckbuilder.Shared.pdb
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI.csproj.AssemblyReference.cache
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Styles\BaseStyles.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckNameDialog.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\ErrorWindow.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameEndWindow.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\SettingsView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\UnsavedChangesDialog.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Controls\CardZoomOverlay.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\MainWindow.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BattleSelectView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BrowserView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckBuilderView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckNameDialog.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckSelectionView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\ErrorWindow.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GalleryView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameEndWindow.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\MenuView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\SettingsView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\UnsavedChangesDialog.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\App.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\GeneratedInternalTypeHelper.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI_MarkupCompile.cache
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI_MarkupCompile.lref
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\App.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Controls\CardZoomOverlay.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\MainWindow.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BattleSelectView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BrowserView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckBuilderView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckSelectionView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GalleryView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\MenuView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI.g.resources
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI.AssemblyInfoInputs.cache
|
||||
@@ -21,34 +52,3 @@ C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\refint\N
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI.pdb
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\NewGame.UI.genruntimeconfig.cache
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\ref\NewGame.UI.dll
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Styles\BaseStyles.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\GeneratedInternalTypeHelper.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BrowserView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckBuilderView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GalleryView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\MenuView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\App.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BrowserView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckBuilderView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GalleryView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\MenuView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\MagicalDeckbuilder.Shared.dll
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\bin\Debug\net9.0-windows\MagicalDeckbuilder.Shared.pdb
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BattleSelectView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\BattleSelectView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Controls\CardZoomOverlay.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Controls\CardZoomOverlay.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\ErrorWindow.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\ErrorWindow.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckSelectionView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\UnsavedChangesDialog.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\UnsavedChangesDialog.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckSelectionView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckNameDialog.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\DeckNameDialog.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\SettingsView.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\SettingsView.g.cs
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameEndWindow.baml
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\Views\GameEndWindow.g.cs
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
{"documents":{"C:\\Users\\atw61\\OneDrive\\Desktop\\new\\*":"https://raw.githubusercontent.com/alexandria121/new/99b1eb3a438c388c3d1091642c0835b917836df6/*"}}
|
||||
{"documents":{"C:\\Users\\atw61\\OneDrive\\Desktop\\new\\*":"https://raw.githubusercontent.com/alexandria121/new/3105cd92f05a4d4cdc94569f6b2773f383760a27/*"}}
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
C:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\obj\Debug\net9.0-windows\GeneratedInternalTypeHelper.g.cs
|
||||
FC:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\App.xaml;;
|
||||
FC:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\Controls\CardZoomOverlay.xaml;;
|
||||
FC:\Users\atw61\OneDrive\Desktop\new\NewGame.UI\MainWindow.xaml;;
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\..\Views\DeckBuilderView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "32E0E6C76F273EF0E6A7E90EB95165F39297B03C"
|
||||
#pragma checksum "..\..\..\..\Views\DeckBuilderView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "5973C5A6558CB8EDB97951FFFEF36F8E978EB512"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
@@ -73,13 +73,13 @@ namespace NewGame.UI.Views {
|
||||
{
|
||||
case 2:
|
||||
|
||||
#line 199 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
#line 262 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.Deck_Drop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 200 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
#line 263 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragOver += new System.Windows.DragEventHandler(this.Deck_DragOver);
|
||||
|
||||
#line default
|
||||
@@ -100,13 +100,13 @@ namespace NewGame.UI.Views {
|
||||
{
|
||||
case 1:
|
||||
|
||||
#line 94 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
#line 89 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Card_MouseLeftButtonDown);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 95 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
#line 90 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Card_MouseMove);
|
||||
|
||||
#line default
|
||||
@@ -114,7 +114,7 @@ namespace NewGame.UI.Views {
|
||||
break;
|
||||
case 3:
|
||||
|
||||
#line 232 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
#line 295 "..\..\..\..\Views\DeckBuilderView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.DeckCard_RightClick);
|
||||
|
||||
#line default
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#pragma checksum "..\..\..\..\Views\GameView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "355E3E018E0F8E18B3685783C270C4C5D710F728"
|
||||
#pragma checksum "..\..\..\..\Views\GameView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "095B6BF013873348F0CA4ADB1ABCFB27B9125A84"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
@@ -43,7 +43,7 @@ namespace NewGame.UI.Views {
|
||||
public partial class GameView : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector, System.Windows.Markup.IStyleConnector {
|
||||
|
||||
|
||||
#line 518 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 568 "..\..\..\..\Views\GameView.xaml"
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
internal System.Windows.Controls.Border ComboSlot1;
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace NewGame.UI.Views {
|
||||
#line hidden
|
||||
|
||||
|
||||
#line 532 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 582 "..\..\..\..\Views\GameView.xaml"
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
internal System.Windows.Controls.Border ComboSlot2;
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace NewGame.UI.Views {
|
||||
#line hidden
|
||||
|
||||
|
||||
#line 569 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 619 "..\..\..\..\Views\GameView.xaml"
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||
internal NewGame.UI.Controls.CardZoomOverlay CardZoomPopup;
|
||||
|
||||
@@ -125,25 +125,25 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 2:
|
||||
|
||||
#line 121 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 161 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnEquipmentRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 122 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 162 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnOpponentEventSlotDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 122 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 162 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnOpponentEventSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 122 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 162 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnOpponentEventSlotDragLeave);
|
||||
|
||||
#line default
|
||||
@@ -151,7 +151,7 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 3:
|
||||
|
||||
#line 138 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 178 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnEquipmentRightClick);
|
||||
|
||||
#line default
|
||||
@@ -159,7 +159,7 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 4:
|
||||
|
||||
#line 154 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 194 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnEquipmentRightClick);
|
||||
|
||||
#line default
|
||||
@@ -167,25 +167,25 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 10:
|
||||
|
||||
#line 452 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 502 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnEquipmentRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 453 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 503 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnWeaponSlotDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 453 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 503 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnWeaponSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 453 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 503 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnWeaponSlotDragLeave);
|
||||
|
||||
#line default
|
||||
@@ -193,25 +193,25 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 11:
|
||||
|
||||
#line 470 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 520 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnEquipmentRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 471 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 521 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnArmorSlotDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 471 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 521 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnArmorSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 471 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 521 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnArmorSlotDragLeave);
|
||||
|
||||
#line default
|
||||
@@ -219,25 +219,25 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 12:
|
||||
|
||||
#line 488 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 538 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnEquipmentRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 489 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 539 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnEventSlotDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 489 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 539 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnEventSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 489 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 539 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnEventSlotDragLeave);
|
||||
|
||||
#line default
|
||||
@@ -246,25 +246,25 @@ namespace NewGame.UI.Views {
|
||||
case 13:
|
||||
this.ComboSlot1 = ((System.Windows.Controls.Border)(target));
|
||||
|
||||
#line 519 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 569 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot1.Drop += new System.Windows.DragEventHandler(this.OnComboSlot1Drop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 519 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 569 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot1.DragEnter += new System.Windows.DragEventHandler(this.OnComboSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 519 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 569 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot1.DragLeave += new System.Windows.DragEventHandler(this.OnComboSlotDragLeave);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 519 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 569 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot1.MouseMove += new System.Windows.Input.MouseEventHandler(this.OnComboSlotMouseMove);
|
||||
|
||||
#line default
|
||||
@@ -273,25 +273,25 @@ namespace NewGame.UI.Views {
|
||||
case 14:
|
||||
this.ComboSlot2 = ((System.Windows.Controls.Border)(target));
|
||||
|
||||
#line 533 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 583 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot2.Drop += new System.Windows.DragEventHandler(this.OnComboSlot2Drop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 533 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 583 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot2.DragEnter += new System.Windows.DragEventHandler(this.OnComboSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 533 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 583 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot2.DragLeave += new System.Windows.DragEventHandler(this.OnComboSlotDragLeave);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 533 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 583 "..\..\..\..\Views\GameView.xaml"
|
||||
this.ComboSlot2.MouseMove += new System.Windows.Input.MouseEventHandler(this.OnComboSlotMouseMove);
|
||||
|
||||
#line default
|
||||
@@ -299,19 +299,19 @@ namespace NewGame.UI.Views {
|
||||
return;
|
||||
case 15:
|
||||
|
||||
#line 550 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 600 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnComboResultDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 550 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 600 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnComboResultDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 550 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 600 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnComboResultDragLeave);
|
||||
|
||||
#line default
|
||||
@@ -335,13 +335,13 @@ namespace NewGame.UI.Views {
|
||||
{
|
||||
case 5:
|
||||
|
||||
#line 240 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 280 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnFieldCardRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 241 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 281 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnOpponentSlotLeftClick);
|
||||
|
||||
#line default
|
||||
@@ -349,7 +349,7 @@ namespace NewGame.UI.Views {
|
||||
break;
|
||||
case 6:
|
||||
|
||||
#line 272 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 315 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnFieldCardRightClick);
|
||||
|
||||
#line default
|
||||
@@ -357,37 +357,37 @@ namespace NewGame.UI.Views {
|
||||
break;
|
||||
case 7:
|
||||
|
||||
#line 302 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 345 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnPlayerSlotDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 302 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 345 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnPlayerSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 302 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 345 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnPlayerSlotDragLeave);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 302 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 345 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.OnPlayerSlotMouseMove);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 303 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 346 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnFieldCardRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 304 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 347 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnPlayerSlotLeftClick);
|
||||
|
||||
#line default
|
||||
@@ -395,63 +395,69 @@ namespace NewGame.UI.Views {
|
||||
break;
|
||||
case 8:
|
||||
|
||||
#line 335 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 381 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).Drop += new System.Windows.DragEventHandler(this.OnArtifactSlotDrop);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 335 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 381 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragEnter += new System.Windows.DragEventHandler(this.OnArtifactSlotDragEnter);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 335 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 381 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragOver += new System.Windows.DragEventHandler(this.OnArtifactSlotDragOver);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 335 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 381 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).DragLeave += new System.Windows.DragEventHandler(this.OnArtifactSlotDragLeave);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 335 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 381 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.OnArtifactSlotMouseMove);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 336 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 382 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnFieldCardRightClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 382 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnArtifactSlotLeftClick);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
break;
|
||||
case 9:
|
||||
|
||||
#line 401 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 447 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnHandCardPreviewMouseLeftButtonDown);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 402 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 448 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler(this.OnHandCardPreviewMouseLeftButtonUp);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 403 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 449 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.OnHandCardPreviewMouseMove);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
|
||||
#line 404 "..\..\..\..\Views\GameView.xaml"
|
||||
#line 450 "..\..\..\..\Views\GameView.xaml"
|
||||
((System.Windows.Controls.Border)(target)).MouseRightButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.OnHandCardRightClick);
|
||||
|
||||
#line default
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user