コード例 #1
0
ファイル: Fire.cs プロジェクト: Insality/GGJ16
 public void AddShaman(Shaman shaman)
 {
     if (ShamanList.Count == 0)
     {
         shaman.SetPlayerState(true);
     }
     ShamanList.Add(shaman);
 }
コード例 #2
0
ファイル: DialogueWindow.cs プロジェクト: 7aylor/Unity
 // Use this for initialization
 void Start()
 {
     panel          = GetComponent <Image>();
     panelText      = GetComponentInChildren <Text>();
     continueButton = transform.GetChild(1).gameObject;
     cavemanThrow   = FindObjectOfType <Caveman_Throw>();
     words          = messages[wordTracker].MessageText;
     continueButton.SetActive(false);
     shaman          = FindObjectOfType <Shaman>();
     spawnEnemies    = FindObjectOfType <SpawnEnemies>();
     cavemanMovement = FindObjectOfType <EnabledCaveman>();
     soulCounter     = FindObjectOfType <SoulCounter>();
     runes           = FindObjectOfType <ActivateRunes>();
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: burningsunrise/Karben
 static void Main(string[] args)
 {
     //TelegramMaster insomnia = new TelegramMaster();
     //ProceduralDungeon pd = new ProceduralDungeon();
     Shaman        shaman  = new Shaman();
     Assassin      ass     = new Assassin();
     Npc           goblin  = new Goblin();
     Npc           goblin2 = new Goblin();
     List <Player> players = new List <Player>()
     {
         shaman, ass
     };
     List <Npc> npcs = new List <Npc>()
     {
         goblin, goblin2
     };
     PlayerAI bs = new PlayerAI(players, goblin);
 }
コード例 #4
0
        static void Main(string[] args)
        {
            Console.WriteLine($"Loading mods from {Environment.CurrentDirectory}");
            var unitsMod = UnitLoader.LoadUnits();

            Console.WriteLine($"Loaded {unitsMod.Count()} units: {unitsMod}");
            var devil = unitsMod.First();

            var angel   = new Angel();
            var lich    = new Lich();
            var shaman  = new Shaman();
            var fury    = new Fury();
            var cyclops = new Cyclops();

            var menu = new Menu(new List <Unit>()
            {
                devil, angel, lich, shaman, fury, cyclops
            });

            menu.Start();
        }
コード例 #5
0
        static void Main(string[] args)
        {
            bool includeFatigue = true;

            Hero p1     = new Shaman();
            Hero p2     = new Shaman();
            Hero winner = null;

            for (int turn = 1; turn < MaxTurns; turn++)
            {
                int mana = Math.Min(turn, Hero.MaxMana);

                int damageToP2 = p1.TakeTurn(mana, includeFatigue);
                if (p1.IsDead)
                {
                    winner = p2;
                    break;
                }

                p2.ReceiveDamage(damageToP2, p1.GetDamageType());
                if (p2.IsDead)
                {
                    winner = p1;
                    break;
                }

                int damageToP1 = p2.TakeTurn(mana, includeFatigue);
                if (p2.IsDead)
                {
                    winner = p1;
                    break;
                }

                p1.ReceiveDamage(damageToP1, p2.GetDamageType());
                if (p1.IsDead)
                {
                    winner = p2;
                    break;
                }
            }

            string winningPlayer = null;

            if (winner == p1)
            {
                winningPlayer = "Player 1";
            }
            else if (winner == p2)
            {
                winningPlayer = "Player 2";
            }
            else
            {
                winningPlayer = "Neither player";
            }

            //in the form "HeroPowerBattleCalculator.CLASSNAME"
            string className = winner?.GetType().ToString() ?? "No class";

            string[] separatedNamespaceAndClass = className.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
            Debug.Assert(separatedNamespaceAndClass.Length == 2);
            Console.WriteLine($"{winningPlayer} ({separatedNamespaceAndClass[1]}) wins!");
        }
コード例 #6
0
 private void AddShamanLoss(HSCounter hsc)
 {
     Shaman shaman = new Shaman();
     shaman.LoseButton_Clicked(hsc);
 }
コード例 #7
0
 private void AddShamanWin(HSCounter hsc)
 {
     Shaman shaman = new Shaman();
     shaman.WinButton_Clicked(hsc);
 }
コード例 #8
0
        public UserContext InitFirstUserContext(List <Card> cardGroup)
        {
            PlayerModel firstPlayer = new PlayerModel()
            {
                UserCode = "firstPlayer",
            };

            UserContext first = new UserContext()
            {
                UserCode     = firstPlayer.UserCode,
                Player       = firstPlayer,
                IsActivation = true,
                IsFirst      = true,
                AllCards     = new List <Card>(),
                Power        = 10,
                FullPower    = 10,
                RemainingHeroPowerCastCount = 1,
                SwitchDone = true,
            };

            List <UserCardGroupDetailModel> firstCardGroup = new List <UserCardGroupDetailModel>();

            foreach (string cardCode in cardGroup.Select(c => c.CardCode))
            {
                firstCardGroup.Add(new UserCardGroupDetailModel()
                {
                    CardCode = cardCode
                });
            }

            foreach (var cg in firstCardGroup)
            {
                Card libCard = CardsUtil.AllCard.First(c => c.CardCode == cg.CardCode);
                var  card    = Activator.CreateInstance(libCard.GetType()) as Card;
                card.CardInGameCode    = cardInGameIndex.ToString();
                card.IsFirstPlayerCard = true;
                first.AllCards.Add(card);
                cardInGameIndex++;
            }

            BaseHero firstHero = null;

            switch (first.AllCards.First(c => c.CardType == CardType.英雄).GetType().Name)
            {
            case "Druid": firstHero = new Druid(); break;

            case "Hunter": firstHero = new Hunter(); break;

            case "Mage": firstHero = new Mage(); break;

            case "Paladin": firstHero = new Paladin(); break;

            case "Priest": firstHero = new Priest(); break;

            case "Rogue": firstHero = new Rogue(); break;

            case "Shaman": firstHero = new Shaman(); break;

            case "Warlock": firstHero = new Warlock(); break;

            case "Warrior": firstHero = new Warrior(); break;
            }

            cardInGameIndex++;
            firstHero.CardLocation      = CardLocation.场上;
            firstHero.CardInGameCode    = cardInGameIndex.ToString();
            firstHero.DeskIndex         = 0;
            firstHero.IsFirstPlayerCard = true;
            first.AllCards[first.AllCards.FindIndex(c => c.CardType == CardType.英雄)] = firstHero;
            return(first);
        }
コード例 #9
0
        public UserContext InitSecondUserContext(List <Card> cardGroup)
        {
            shortCodeService.CreateCode().Returns(DateTime.Now.Ticks.ToString());
            PlayerModel secondPlayer = new PlayerModel()
            {
                UserCode = "secondPlayer",
            };
            UserContext second = new UserContext()
            {
                UserCode     = secondPlayer.UserCode,
                Player       = secondPlayer,
                IsActivation = false,
                IsFirst      = false,
                AllCards     = new List <Card>(),
                Power        = 10,
                FullPower    = 10,
                RemainingHeroPowerCastCount = 1,
                SwitchDone = true,
            };
            List <UserCardGroupDetailModel> secondCardGroup = new List <UserCardGroupDetailModel>();

            foreach (string cardCode in cardGroup.Select(c => c.CardCode))
            {
                secondCardGroup.Add(new UserCardGroupDetailModel()
                {
                    CardCode = cardCode
                });
            }
            foreach (var cg in secondCardGroup)
            {
                Card libCard = CardsUtil.AllCard.First(c => c.CardCode == cg.CardCode);
                var  card    = Activator.CreateInstance(libCard.GetType()) as Card;
                card.CardInGameCode    = cardInGameIndex.ToString();
                card.IsFirstPlayerCard = false;
                second.AllCards.Add(card);
                cardInGameIndex++;
            }
            BaseHero secondHero = null;

            switch (second.AllCards.First(c => c.CardType == CardType.英雄).GetType().Name)
            {
            case "Druid": secondHero = new Druid(); break;

            case "Hunter": secondHero = new Hunter(); break;

            case "Mage": secondHero = new Mage(); break;

            case "Paladin": secondHero = new Paladin(); break;

            case "Priest": secondHero = new Priest(); break;

            case "Rogue": secondHero = new Rogue(); break;

            case "Shaman": secondHero = new Shaman(); break;

            case "Warlock": secondHero = new Warlock(); break;

            case "Warrior": secondHero = new Warrior(); break;
            }
            cardInGameIndex++;
            secondHero.CardLocation      = CardLocation.场上;
            secondHero.CardInGameCode    = cardInGameIndex.ToString();
            secondHero.DeskIndex         = 8;
            secondHero.IsFirstPlayerCard = false;
            second.AllCards[second.AllCards.FindIndex(c => c.CardType == CardType.英雄)] = secondHero;
            return(second);
        }
コード例 #10
0
        public void GameStart(GameModel game, PlayerModel firstPlayer, PlayerModel secondPlayer, List <UserCardGroupDetailModel> firstCardGroup, List <UserCardGroupDetailModel> secondCardGroup, string firstUserProfession, string secondUserProfession)
        {
            #region 加载玩家卡组
            UserContext firstUser = new UserContext
            {
                UserCode     = firstPlayer.UserCode,
                Player       = firstPlayer,
                IsActivation = true,
                IsFirst      = true,
                AllCards     = new List <Card>()
            };
            List <Card> lstCardLib = _gameCache.GetAllCard();

            int cardInGameIndex = 0;
            foreach (var cg in firstCardGroup)
            {
                Card libCard = lstCardLib.First(c => c.CardCode == cg.CardCode);
                var  card    = Activator.CreateInstance(libCard.GetType()) as Card;
                card.CardInGameCode    = cardInGameIndex.ToString();
                card.IsFirstPlayerCard = true;
                firstUser.AllCards.Add(card);
                cardInGameIndex++;
            }

            UserContext secondUser = new UserContext
            {
                UserCode     = secondPlayer.UserCode,
                Player       = secondPlayer,
                IsActivation = true,
                IsFirst      = false,
                AllCards     = new List <Card>()
            };
            secondCardGroup.ForEach(delegate(UserCardGroupDetailModel detail)
            {
                Card libCard           = lstCardLib.First(c => c.CardCode == detail.CardCode);
                var card               = Activator.CreateInstance(libCard.GetType()) as Card;
                card.CardInGameCode    = cardInGameIndex.ToString();
                card.IsFirstPlayerCard = false;
                secondUser.AllCards.Add(card);
                cardInGameIndex++;
            });

            //secondUser.StockCards = secondUser.AllCards;


            GameContext = new GameContext
            {
                Players         = new List <UserContext>(),
                DeskCards       = null,
                GameCode        = game.GameCode,
                CurrentTurnCode = game.CurrentTurnCode,
                NextTurnCode    = game.NextTurnCode,
                GameStatus      = GameStatus.进行中,
                GameCache       = _gameCache
            };
            GameContext.Players.Add(firstUser);
            GameContext.Players.Add(secondUser);
            #endregion

            #region 初始化开场选牌
            int        firstPickUpCount = 4;
            List <int> lstRndIndex      = RandomUtil.CreateRandomInt(0, GameContext.Players.First(c => c.IsFirst).AllCards.Count - 1, firstPickUpCount);
            for (int i = 0; i < lstRndIndex.Count; i++)
            {
                if (i < lstRndIndex.Count - 1)
                {
                    //lstFirstPickUpCard.Add(GameContext.Players.First(c => c.IsFirst).AllCards[lstRndIndex[i]]);
                    GameContext.Players.First(c => c.IsFirst).AllCards[lstRndIndex[i]].CardLocation = CardLocation.InitCard;
                }
                //lstSecondPickUpCard.Add(GameContext.Players.First(c => c.IsFirst == false).AllCards[lstRndIndex[i]]);
                GameContext.Players.First(c => c.IsFirst == false).AllCards[lstRndIndex[i]].CardLocation = CardLocation.InitCard;
            }

            BaseHero firstHero = null, secondHero = null;
            switch (firstUserProfession)
            {
            case "Druid": firstHero = new Druid(); break;

            case "Hunter": firstHero = new Hunter(); break;

            case "Mage": firstHero = new Mage(); break;

            case "Paladin": firstHero = new Paladin(); break;

            case "Priest": firstHero = new Priest(); break;

            case "Rogue": firstHero = new Rogue(); break;

            case "Shaman": firstHero = new Shaman(); break;

            case "Warlock": firstHero = new Warlock(); break;

            case "Warrior": firstHero = new Warrior(); break;
            }
            switch (secondUserProfession)
            {
            case "Druid": secondHero = new Druid(); break;

            case "Hunter": secondHero = new Hunter(); break;

            case "Mage": secondHero = new Mage(); break;

            case "Paladin": secondHero = new Paladin(); break;

            case "Priest": secondHero = new Priest(); break;

            case "Rogue": secondHero = new Rogue(); break;

            case "Shaman": secondHero = new Shaman(); break;

            case "Warlock": secondHero = new Warlock(); break;

            case "Warrior": secondHero = new Warrior(); break;
            }

            cardInGameIndex++;
            firstHero.CardLocation      = CardLocation.场上;
            firstHero.CardInGameCode    = cardInGameIndex.ToString();
            firstHero.DeskIndex         = 0;
            firstHero.IsFirstPlayerCard = true;
            firstUser.AllCards.Add(firstHero);

            cardInGameIndex++;
            secondHero.CardLocation      = CardLocation.场上;
            secondHero.CardInGameCode    = cardInGameIndex.ToString();
            secondHero.DeskIndex         = 8;
            secondHero.IsFirstPlayerCard = false;
            secondUser.AllCards.Add(secondHero);

            GameContext.DeskCards = new DeskBoard()
            {
                firstHero, null, null, null, null, null, null, null, secondHero, null, null, null, null, null, null, null
            };
            #endregion

            GameContext.Settlement();
            _gameCache.SetContext(GameContext);
        }
コード例 #11
0
        internal static void DoRotation()
        {
            if (DetectKeyPress.GetKeyState(DetectKeyPress.Shift) < 0)
            {
                return;
            }
            if (DetectKeyPress.GetKeyState(DetectKeyPress.Z) < 0)
            {
                Rotation.ChangeRotation();
            }
            if (ObjectManager.LocalPlayer.IsMounted)
            {
                return;
            }



            switch (ObjectManager.LocalPlayer.Class)
            {
            case WowUnit.WowUnitClass.Paladin:
                //Paladin.DoPaladin();
                break;

            case WowUnit.WowUnitClass.Warrior:
                Warrior.DoWarrior();
                break;

            case WowUnit.WowUnitClass.Hunter:
                Hunter.DoHunter();
                break;

            case WowUnit.WowUnitClass.Druid:
                Druid.DoDruid();
                break;

            case WowUnit.WowUnitClass.Shaman:
                Shaman.DoShaman();
                break;

            case WowUnit.WowUnitClass.Rogue:
                Rogue.DoRogue();
                break;

            case WowUnit.WowUnitClass.Priest:
                Priest.DoPriest();
                break;

            case WowUnit.WowUnitClass.DeathKnight:
                DeathKnight.DoDeathKnight();
                break;

            case WowUnit.WowUnitClass.Mage:
                Mage.DoMage();
                break;

            case WowUnit.WowUnitClass.Warlock:
                Warlock.DoWarlock();
                break;

            case WowUnit.WowUnitClass.Monk:
                Monk.DoMonk();
                break;
            }
        }
コード例 #12
0
ファイル: SpawnCaveman.cs プロジェクト: 7aylor/Unity
 private void Awake()
 {
     caveman = GameObject.FindObjectOfType <EnabledCaveman>();
     shaman  = GameObject.FindObjectOfType <Shaman>();
     dw      = GameObject.FindObjectOfType <DialogueWindow>();
 }
コード例 #13
0
        public void SetClass(Unit player)
        {
            while (true)
            {
                string input = Console.ReadLine();

                if (input == "Warrior")
                {
                    Warrior warrior = new Warrior();
                    warrior.StatIncrement(player, warrior);
                    WarriorSpellRepository repos = new WarriorSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Mage")
                {
                    Mage mage = new Mage();
                    mage.StatIncrement(player, mage);
                    MageSpellRepository repos = new MageSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Paladin")
                {
                    Paladin paladin = new Paladin();
                    paladin.StatIncrement(player, paladin);
                    PaladinSpellRepository repos = new PaladinSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Necroid")
                {
                    Necroid necroid = new Necroid();
                    necroid.StatIncrement(player, necroid);
                    NecroidSpellRepository repos = new NecroidSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Hunter")
                {
                    Hunter hunter = new Hunter();
                    hunter.StatIncrement(player, hunter);
                    HunterSpellRepository repos = new HunterSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Rogue")
                {
                    Rogue rogue = new Rogue();
                    rogue.StatIncrement(player, rogue);
                    RogueSpellRepository repos = new RogueSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Naturalist")
                {
                    Naturalist naturalist = new Naturalist();
                    naturalist.StatIncrement(player, naturalist);
                    NaturalistSpellRepository repos = new NaturalistSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Priest")
                {
                    Priest priest = new Priest();
                    priest.StatIncrement(player, priest);
                    PriestSpellRepository repos = new PriestSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }

                if (input == "Shaman")
                {
                    Shaman shaman = new Shaman();
                    shaman.StatIncrement(player, shaman);
                    ShamanSpellRepository repos = new ShamanSpellRepository(player);
                    repos.SpellRepositoryInitilization(player, repos);
                    break;
                }
                else
                {
                    Console.WriteLine($"{input} is not a valid class!Please insert a valid class.");
                    continue;
                }
            }
        }