/// <summary> /// Builds a hero, including any value used for battle calculations. Persists between battles. /// </summary> /// <param name="type">as HeroType</param> /// <param name="stats">as BattleStats</param> /// <param name="equipment">inventory of equipped equipment</param> /// <param name="name">fullname</param> public BattleHero(HeroType type, BattleStats stats, HeroEquipment equipment = null, string name = "Hero1") { heroType = type; sprites = HeroSpriteData.MakeNewHeroSprites(heroType); fullName = name; // Load BStats BStats = stats; BStats.UpdateMax(); HealAll(); if (equipment != null) { Equipment = equipment; } }
// Load common sprites for any hero static void BuildGeneric(HeroType type, HeroSprites sprites) { // Idle, Walk, Jump, Kneel, Swing, Defend, Cast, Item, Struck, Dead, Victory, string prefix = @"Sprites\Hero\" + type.ToString(); sprites.Portrait = Resources.Load <Sprite>(prefix + Stance.Portrait.ToString()); sprites.Idle = Resources.Load <Sprite>(prefix + Stance.Idle.ToString()); sprites.Walk[0] = sprites.Idle; sprites.Walk[1] = Resources.Load <Sprite>(prefix + Stance.Walk.ToString() + "0"); sprites.Walk[2] = sprites.Idle; sprites.Walk[3] = Resources.Load <Sprite>(prefix + Stance.Walk.ToString() + "1"); sprites.Jump[0] = Resources.Load <Sprite>(prefix + Stance.Jump.ToString() + "0"); sprites.Jump[1] = Resources.Load <Sprite>(prefix + Stance.Jump.ToString() + "1"); sprites.Kneel = Resources.Load <Sprite>(prefix + Stance.Kneel.ToString()); sprites.Swing = Resources.Load <Sprite>(prefix + Stance.Swing.ToString()); sprites.Defend = Resources.Load <Sprite>(prefix + Stance.Defend.ToString()); sprites.Cast[0] = Resources.Load <Sprite>(prefix + Stance.Cast.ToString() + "0"); sprites.Cast[1] = Resources.Load <Sprite>(prefix + Stance.Cast.ToString() + "1"); sprites.Item = Resources.Load <Sprite>(prefix + Stance.Item.ToString()); sprites.Struck = Resources.Load <Sprite>(prefix + Stance.Struck.ToString()); sprites.Dead = Resources.Load <Sprite>(prefix + Stance.Dead.ToString()); sprites.Victory = Resources.Load <Sprite>(prefix + Stance.Victory.ToString()); }
// called in Start(). void LoadSprites() { // After HeroSprite are initialized: // Setup the spriteswaptimer spriteSwapTimer = gameObject.AddComponent <EventTimer>(); spriteSwapTimer.Duration = SpriteSwapInterval; spriteSwapTimer.AddListener_Finished(SpriteSwap); spriteSwapTimer.Run(); // Populate sprites, only need Walk[], Jump[] and Dead BattleLoader.Party.Hero[0].Sprites.SetObj(gameObject); HeroSprites sprites = BattleLoader.Party.Hero[0].Sprites; walkingSprite[0] = sprites.Walk[0]; walkingSprite[1] = sprites.Walk[1]; walkingSprite[2] = sprites.Walk[2]; walkingSprite[3] = sprites.Walk[3]; jumpingSprite[0] = sprites.Jump[0]; jumpingSprite[1] = sprites.Jump[1]; deathSprite = sprites.Dead; }
// used above in MakeNewHeroSprites during creation of a new BattleHero static HeroSprites Copy(HeroType type, HeroSprites sprites) { sprites.Portrait = data[type].Portrait; sprites.Idle = data[type].Idle; sprites.Walk[0] = data[type].Walk[0]; sprites.Walk[1] = data[type].Walk[1]; sprites.Walk[2] = data[type].Walk[2]; sprites.Walk[3] = data[type].Walk[3]; sprites.Jump[0] = data[type].Jump[0]; sprites.Jump[1] = data[type].Jump[1]; sprites.Kneel = data[type].Kneel; sprites.Swing = data[type].Swing; sprites.Defend = data[type].Defend; sprites.Cast[0] = data[type].Cast[0]; sprites.Cast[1] = data[type].Cast[1]; sprites.Item = data[type].Item; sprites.Struck = data[type].Struck; sprites.Dead = data[type].Dead; sprites.Victory = data[type].Victory; if (sprites is SabinSprites) { (sprites as SabinSprites).Kick = (data[type] as SabinSprites).Kick; (sprites as SabinSprites).AuraBolt = (data[type] as SabinSprites).AuraBolt; (sprites as SabinSprites).FireDance = (data[type] as SabinSprites).FireDance; } if (sprites is CelesSprites) { for (int i = 0; i <= 6; i++) { (sprites as CelesSprites).RunicBlade[i] = (data[type] as CelesSprites).RunicBlade[i]; } } return(sprites); }