- PartyLayout monstersLayout;
- monstersLayout.AddPosition(Point<Uint8>(50, 100));
- monstersLayout.AddPosition(Point<Uint8>(100, 108));
- monstersLayout.AddPosition(Point<Uint8>(150, 100));
- monstersLayout.AddPosition(Point<Uint8>(200, 108));
- PartyLayout heroesLayout;
- heroesLayout.AddPosition(Point<Uint8>(27, 219));
- heroesLayout.AddPosition(Point<Uint8>(104, 227));
- heroesLayout.AddPosition(Point<Uint8>(66, 238));
- heroesLayout.AddPosition(Point<Uint8>(143, 246));
-
- SDL_Surface *monsterImg(IMG_Load("test-data/monster.png"));
- Sprite dummySprite(monsterImg, 96, 96);
- Monster monster;
- monster.SetSprite(&dummySprite);
-
- SDL_Surface *heroImg(IMG_Load("test-data/hero.png"));
- Sprite heroSprite(heroImg, 64, 64);
- Hero hero;
- hero.SetName("Name");
- hero.SetLevel(34);
- hero.SetSprite(&heroSprite);
- hero.SetMaxHealth(100);
- hero.SetHealth(50);
- hero.SetMaxMana(100);
- hero.SetMana(66);
- hero.SetIP(160);
-
- SDL_Surface *attackIcons(IMG_Load("test-data/attack-type-icons.png"));
- Sprite attackIconsSprite(attackIcons, 32, 32);
- SDL_Surface *moveIcons(IMG_Load("test-data/move-icons.png"));
- Sprite moveIconsSprite(moveIcons, 32, 32);
- SDL_Surface *tagFrames(IMG_Load("test-data/tag-frames.png"));
- Frame heroTagFrame(tagFrames, 8, 8, 1, 1, 17);
- Frame activeHeroTagFrame(tagFrames, 8, 8);
-
- BattleState *battleState(new BattleState(bg, monstersLayout, heroesLayout, &attackIconsSprite, &moveIconsSprite, &heroTagFrame, &activeHeroTagFrame));
- battleState->AddMonster(monster);
- battleState->AddMonster(monster);
- battleState->AddMonster(monster);
- battleState->AddMonster(monster);
- battleState->AddHero(hero);
- battleState->AddHero(hero);
- battleState->AddHero(hero);
- battleState->AddHero(hero);
- Application app(&screen, battleState);
+ PartyLayout monstersLayout(*caster.GetPartyLayout("monstersLayout"));
+
+ Monster monster(*caster.GetMonster("lizard"));
+
+ gameState.heroes[0].AddSpell(caster.GetSpell("resetSpell"));
+ Spell *strongSpell(caster.GetSpell("strongSpell"));
+ gameState.heroes[0].AddSpell(strongSpell);
+ gameState.heroes[1].AddSpell(strongSpell);
+ Spell *strongerSpell(caster.GetSpell("strongerSpell"));
+ gameState.heroes[0].AddSpell(strongerSpell);
+ gameState.heroes[1].AddSpell(strongerSpell);
+ Spell *championSpell(caster.GetSpell("championSpell"));
+ gameState.heroes[0].AddSpell(championSpell);
+ gameState.heroes[1].AddSpell(championSpell);
+ Spell *rallySpell(caster.GetSpell("rallySpell"));
+ gameState.heroes[0].AddSpell(rallySpell);
+ gameState.heroes[1].AddSpell(rallySpell);
+ gameState.heroes[1].AddSpell(caster.GetSpell("escapeSpell"));
+ Spell *valorSpell(caster.GetSpell("valorSpell"));
+ gameState.heroes[0].AddSpell(valorSpell);
+ gameState.heroes[1].AddSpell(valorSpell);
+
+ gameState.inventory.Add(caster.GetItem("zirconPlateItem"));
+ gameState.inventory.Add(caster.GetItem("antidoteItem"), 9);
+ gameState.inventory.Add(caster.GetItem("powerRingItem"));
+ gameState.inventory.Add(caster.GetItem("magicJarItem"), 4);
+ gameState.inventory.Add(caster.GetItem("sProRingItem"));
+ gameState.inventory.Add(caster.GetItem("hiPotionItem"), 4);
+ gameState.inventory.Add(caster.GetItem("powerRingItem"));
+ gameState.inventory.Add(caster.GetItem("powerPotionItem"), 4);
+ gameState.inventory.Add(caster.GetItem("zircoSwordItem"));
+ gameState.inventory.Add(caster.GetItem("escapeItem"), 2);
+ gameState.inventory.Add(caster.GetItem("zircoHelmetItem"));
+ gameState.inventory.Add(caster.GetItem("sleepBallItem"), 1);
+ gameState.inventory.Add(caster.GetItem("zirconPlateItem"));
+
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("zircoSwordItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("zirconArmorItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("holyShieldItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("legendHelmItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_RING, caster.GetItem("sProRingItem"));
+ gameState.heroes[0].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("evilJewelItem"));
+
+// gameState.heroes[1].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("zircoWhipItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("zirconPlateItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("zircoGlovesItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("holyCapItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_RING, caster.GetItem("ghostRingItem"));
+ gameState.heroes[1].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("eagleRockItem"));
+
+// gameState.heroes[2].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("zircoAxItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("zirconArmorItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("megaShieldItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("zircoHelmetItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_RING, caster.GetItem("powerRingItem"));
+ gameState.heroes[2].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("evilJewelItem"));
+
+ // NOTE: this is actually Artea equipment
+// gameState.heroes[3].SetEquipment(Hero::EQUIP_WEAPON, caster.GetItem("lizardBlowItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_ARMOR, caster.GetItem("holyRobeItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_SHIELD, caster.GetItem("zircoGlovesItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_HELMET, caster.GetItem("holyCapItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_RING, caster.GetItem("rocketRingItem"));
+ gameState.heroes[3].SetEquipment(Hero::EQUIP_JEWEL, caster.GetItem("krakenRockItem"));
+
+ gameState.heroes[0].MapEntity().Position() = Vector<float>(64, 128);
+
+ gameState.heroes[1].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[1].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING);
+ gameState.heroes[0].MapEntity().AddFollower(&gameState.heroes[1].MapEntity());
+
+ gameState.heroes[2].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[2].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING);
+ gameState.heroes[1].MapEntity().AddFollower(&gameState.heroes[2].MapEntity());
+
+ gameState.heroes[3].MapEntity().Position() = Vector<float>(64, 128);
+ gameState.heroes[3].MapEntity().SetFlags(Entity::FLAG_NONBLOCKING);
+ gameState.heroes[2].MapEntity().AddFollower(&gameState.heroes[3].MapEntity());
+
+ InitScreen screen(width, height);
+
+ app::State *state(0);
+
+ if (battle) {
+ graphics::Sprite flashSprite(IMG_Load("test-data/flash.png"), 96, 96);
+ Capsule capsule;
+ capsule.SetName("Flash");
+ capsule.SetHealth(13, 13);
+ capsule.SetBattleSprite(&flashSprite);
+
+ BattleState *battleState(new BattleState(&gameConfig, bg, &monstersLayout));
+ battleState->AddMonster(monster);
+ battleState->AddMonster(monster);
+ battleState->AddMonster(monster);
+ battleState->AddMonster(monster);
+ battleState->SetCapsule(capsule);
+ battleState->AddHero(gameState.heroes[0]);
+ battleState->AddHero(gameState.heroes[1]);
+ battleState->AddHero(gameState.heroes[2]);
+ battleState->AddHero(gameState.heroes[3]);
+ state = battleState;
+ } else {
+ MapState *mapState(new MapState(&gameConfig, caster.GetMap("map1")));
+
+ mapState->ControlEntity(&gameState.heroes[0].MapEntity());
+ mapState->SetWalkingSpeed(walkSpeed);
+
+ state = mapState;
+ }
+
+ Application app(screen, state);