Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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);
        }