protected override void OnReceive(object message) { Log.Debug($"Control Actor received message: {message}"); //before all commands always update to set values to current. Update(); switch (message) { //TODO: Improve how we control these commands. case CreateNewDragon createNew: dragon = Context.ActorOf(FireDragon.Props(createNew.Name, createNew.Weight), createNew.Name); lastUpdate = DateTime.Now; break; case FeedDragon feedDragon: if (!CheckDragonExists()) { return; } dragon.Tell(new Feed(feedDragon.Food)); break; case PlayWithDragon play: if (!CheckDragonExists()) { return; } dragon.Tell(new Play(play.HappinessValue)); break; case ReadHappiness readHappiness: if (!CheckDragonExists()) { return; } dragon.Forward(readHappiness); break; case ReadHunger readHunger: if (!CheckDragonExists()) { return; } dragon.Forward(readHunger); break; case ReadStageOfLife stage: if (!CheckDragonExists()) { return; } dragon.Forward(stage); break; } }
public void CombatTestsCards() { var goblinking = new GoblinKing(); var fireDragon = new FireDragon(); var wizzardNovice = new WizzardNovice(); var elderKraken = new ElderKraken(); var greyKnight = new GreyKnight(); var orkBoyz = new OrkBoys(); var fireElveShaman = new FireElveShaman(); var fireball = new Fireball(); var giantWave = new GiantWave(); int dmg = goblinking.cardBattle(fireDragon); Assert.AreEqual(0, dmg); dmg = goblinking.cardBattle(wizzardNovice); Assert.AreEqual(5, dmg); dmg = goblinking.cardBattle(elderKraken); Assert.AreEqual(5, dmg); dmg = elderKraken.cardBattle(elderKraken); Assert.AreEqual(8, dmg); dmg = goblinking.cardBattle(fireDragon); Assert.AreEqual(0, dmg); dmg = fireDragon.cardBattle(fireDragon); Assert.AreEqual(4, dmg); dmg = fireElveShaman.cardBattle(fireDragon); Assert.AreEqual(5, dmg); dmg = wizzardNovice.cardBattle(fireDragon); Assert.AreEqual(2, dmg); dmg = greyKnight.cardBattle(fireDragon); Assert.AreEqual(3, dmg); dmg = greyKnight.cardBattle(giantWave); Assert.AreEqual(0, dmg); dmg = elderKraken.cardBattle(fireball); Assert.AreEqual(8, dmg); dmg = fireball.cardBattle(elderKraken); Assert.AreEqual(0, dmg); dmg = giantWave.cardBattle(elderKraken); Assert.AreEqual(0, dmg); dmg = orkBoyz.cardBattle(wizzardNovice); Assert.AreEqual(0, dmg); dmg = elderKraken.cardBattle(fireDragon); Assert.AreEqual(8, dmg); dmg = greyKnight.cardBattle(elderKraken); Assert.AreEqual(0, dmg); dmg = greyKnight.cardBattle(fireball); Assert.AreEqual(3, dmg); dmg = orkBoyz.cardBattle(fireDragon); Assert.AreEqual(3, dmg); dmg = orkBoyz.cardBattle(wizzardNovice); Assert.AreEqual(0, dmg); dmg = elderKraken.cardBattle(fireDragon); Assert.AreEqual(8, dmg); dmg = elderKraken.cardBattle(fireball); Assert.AreEqual(8, dmg); dmg = fireball.cardBattle(elderKraken); Assert.AreEqual(0, dmg); dmg = giantWave.cardBattle(elderKraken); Assert.AreEqual(0, dmg); dmg = orkBoyz.cardBattle(wizzardNovice); Assert.AreEqual(0, dmg); dmg = elderKraken.cardBattle(fireDragon); Assert.AreEqual(8, dmg); dmg = elderKraken.cardBattle(fireball); Assert.AreEqual(8, dmg); dmg = goblinking.cardBattle(wizzardNovice); Assert.AreEqual(5, dmg); dmg = greyKnight.cardBattle(fireball); Assert.AreEqual(3, dmg); dmg = orkBoyz.cardBattle(fireDragon); Assert.AreEqual(3, dmg); dmg = goblinking.cardBattle(elderKraken); Assert.AreEqual(5, dmg); dmg = goblinking.cardBattle(goblinking); Assert.AreEqual(5, dmg); dmg = goblinking.cardBattle(fireDragon); Assert.AreEqual(0, dmg); dmg = fireDragon.cardBattle(fireDragon); Assert.AreEqual(4, dmg); dmg = greyKnight.cardBattle(fireball); Assert.AreEqual(3, dmg); dmg = orkBoyz.cardBattle(fireDragon); Assert.AreEqual(3, dmg); }