public Actor ( short cardId, string origin, string @class, string name, Attribute health, Attribute defense, Attribute attack, Attribute speed, Attribute precision, Attribute manaCost, string rarity, ActorAction2 actorAction, short characterId ) { CardId = cardId; Origin = origin; Class = @class; Name = name; Health = health; Defense = defense; Attack = attack; Speed = speed; Precision = precision; ManaCost = manaCost; Rarity = rarity; ActorAction = actorAction; CharacterId = characterId; }
public static Actor Build(Characters cardChoice, short cardId) { // gathering character information var associations = CharacterLegend[cardChoice]; var originStats = OriginStats[associations.origin]; var classStats = ClassStats[associations.@class]; var rarityStats = RarityStats[associations.rarity]; Attribute health = new Attribute(); Attribute defense = new Attribute(); Attribute attack = new Attribute(); Attribute speed = new Attribute(); Attribute precision = new Attribute(); Attribute manaCost = new Attribute(); // attaching stats string name = associations.name; string origin = originStats.origin; string @class = classStats.@class; string rarity = rarityStats.rarity; health.BaseValue = (short)(originStats.health + classStats.health + rarityStats.health); health.CurrentValue = (short)(originStats.health + classStats.health + rarityStats.health); defense.BaseValue = (short)(originStats.defense + classStats.defense + rarityStats.defense); defense.CurrentValue = (short)(originStats.defense + classStats.defense + rarityStats.defense); attack.BaseValue = (short)(originStats.attack + classStats.attack + rarityStats.attack); attack.CurrentValue = (short)(originStats.attack + classStats.attack + rarityStats.attack); speed.BaseValue = (short)(originStats.speed + classStats.speed + rarityStats.speed); speed.CurrentValue = (short)(originStats.speed + classStats.speed + rarityStats.speed); precision.BaseValue = (short)(originStats.precision + classStats.precision + rarityStats.precision); precision.CurrentValue = (short)(originStats.precision + classStats.precision + rarityStats.precision); manaCost.BaseValue = rarityStats.manaCost; manaCost.CurrentValue = rarityStats.manaCost; short characterId = (short)cardChoice; // attaching effects List <Effect> actorEffects = new List <Effect>(); var characterEffectDetailsList = CharacterEffects[cardChoice]; foreach (var effectDetailsReference in characterEffectDetailsList) { var effectDetails = Effects[effectDetailsReference]; Targeter targeter = effectDetails.targeter; AppliedEffect appliedEffect = effectDetails.appliedEffect; string animation = effectDetails.animation; Effect effect = new Effect(targeter, appliedEffect, animation); actorEffects.Add(effect); } Effect[] effectArray = actorEffects.ToArray(); ActorAction2 actorAction = new ActorAction2(effectArray); Actor actor = new Actor(cardId, origin, @class, name, health, defense, attack, speed, precision, manaCost, rarity, actorAction, characterId); return(actor); }
private static void AssignEffects(List <Actor> party) { foreach (var actor in party) { // attaching effects List <Effect> actorEffects = new List <Effect>(); var characterEffectDetailsList = CharacterEffects[(Characters)actor.CharacterId]; foreach (var effectDetailsReference in characterEffectDetailsList) { var effectDetails = Effects[effectDetailsReference]; Targeter targeter = effectDetails.targeter; AppliedEffect appliedEffect = effectDetails.appliedEffect; string animation = effectDetails.animation; Effect effect = new Effect(targeter, appliedEffect, animation); actorEffects.Add(effect); } Effect[] effectArray = actorEffects.ToArray(); ActorAction2 actorAction = new ActorAction2(effectArray); actor.ActorAction = actorAction; } }