示例#1
0
        public void ManaComponentShouldRegenerate()
        {
            //Arrange
            var regenAttrMana = new RegenAttribute {
                Name = "Mana", Current = 100, Max = 200, RegenRatePerSecond = 10
            };

            var component = new ManaComponent(new World())
            {
                Mana = regenAttrMana
            };


            GameTime gameTime = new GameTime();

            component.Update(gameTime);
            //Precondition
            component.Mana.Current.Should().Be(100);

            //Act
            gameTime.Elapsed += TimeSpan.FromSeconds(2);
            component.Update(gameTime);

            //Assert
            component.Mana.Current.Should().Be(120);
        }
示例#2
0
    void Start()
    {
        health = GetComponent <HealthComponent>();
        mana   = GetComponent <ManaComponent>();

        string[] effectCount = System.Enum.GetNames(typeof(Effect));
        for (int i = 0; i < effectCount.Length; i++)
        {
            effects.Add(effectCount[i], false);
        }
    }
 public PlayerStats(string name, HealthComponent healthComponent, ManaComponent mana, ExperienceBar xpBar)
 {
     Name            = name;
     Level           = 1;
     Strength        = 11;
     Speed           = 11;
     HealthComponent = healthComponent;
     ManaComponent   = mana;
     XpBar           = xpBar;
     InCombat        = false;
 }
        public override void Initialize()
        {
            base.Initialize();
            _mana            = GetComponent <ManaComponent>();
            _damage          = GetComponent <DamageComponent>();
            _resist          = GetComponent <ResistComponent>();
            _movingComponent = GetComponent <CharacterMovingComponent>();
            _animator        = GetComponent <Animator>();
            _attackComponent = GetComponent <CharacterMeleeAttackComponent>();

            _movingComponent.OnJump   += SetJumpTrigger;
            _attackComponent.OnAttack += SetAttackAnimation;
        }
示例#5
0
    private void Awake()
    {
        m_rigidbody   = GetComponent <Rigidbody>();
        m_playerInput = GetComponent <PlayerInput>();
        m_health      = GetComponent <HealthComponent>();
        m_health.Init(100, OnHurt, Downed, OnHealed);

        m_mana = GetComponent <ManaComponent>();
        m_mana.Init(GenerateNewCard, ManaUpdated, ManaUpdated);
        m_cardPool = new List <ECard>();
        foreach (ECard card in CardManager.m_kCardSuits.Keys)
        {
            if (card == ECard.None)
            {
                continue;
            }
            if (CardManager.m_kCardSuits[card] == m_playerSuit || CardManager.m_kCardSuits[card] == ESuit.None)
            {
                m_cardPool.Add(card);
            }
        }
    }
 private void Awake()
 {
     m_mana   = GetComponent <ManaComponent>();
     m_player = GetComponent <Player>();
 }
示例#7
0
        static void Main(string[] args)
        {
            StartSetupScreen();

            var      world    = new World();
            LevelOne levelOne = new LevelOne();

            var fpsCounter = new FramesPerSecondCounter(world);
            var fpsWriter  = new FpsRenderer(world);

            MapLevelDetails map = new MapLevelDetails(25, 11); // initialize map

            world.Set(map);
            MapRenderer mapRenderer = new MapRenderer(world);

            Queue <string> playerMessageQueue = new Queue <string>(2);

            world.Set(playerMessageQueue);
            MessageBoxRenderer messageBoxRenderer = new MessageBoxRenderer(world);

            HealthComponent health = new HealthComponent()
            {
                Health = new RegenerateAttribute()
                {
                    Current = 27, Max = 40, Name = "Health", RegenRatePerSecond = 0.5
                }
            };
            ManaComponent mana = new ManaComponent()
            {
                Mana = new RegenerateAttribute()
                {
                    Current = 25, Max = 30, Name = "Mana", RegenRatePerSecond = 0.2
                }
            };
            ExperienceBar xpBar = new ExperienceBar();

            PlayerStats playerStats = new PlayerStats("Dave", health, mana, xpBar);

            world.Set(playerStats);
            ConsoleInputSystem   playerInput          = new ConsoleInputSystem(world);
            PlayerMovementSystem playerMovementSystem = new PlayerMovementSystem(world);
            PlayerRenderSystem   player = new PlayerRenderSystem(world);
            PlayerPosition       playerStartPosition = new PlayerPosition(map, world); //initialize player

            playerStartPosition.MoveTo(27);
            world.Set(playerStartPosition);

            MonsterMoveController[] monsters = levelOne.CreateMonsters(world, map); //initialize monsters
            world.Set(monsters);
            MonsterMovementSystem monsterMovement  = new MonsterMovementSystem(world);
            MonsterRenderSystem   monstersRenderer = new MonsterRenderSystem(world);

            List <string> combatMessagesQueue = new List <string>(3);

            world.Set(combatMessagesQueue);
            CombatHandler combatHandler = new CombatHandler(world);

            world.Set(combatHandler);
            CombatMessages combatMessages = new CombatMessages(world);

            var updateSystems = new IUpdate[] { playerInput, playerMovementSystem, combatHandler, monsterMovement, fpsCounter, health, mana }; //Order is important!
            var renderSystems = new IRender[] { player, monstersRenderer, mapRenderer, messageBoxRenderer, combatMessages, fpsCounter, fpsWriter, health, mana, xpBar };

            GameEngine gameEngine = new GameEngine(updateSystems, renderSystems, player, monstersRenderer);

            mapRenderer.PrintMap(map.Map);
            gameEngine.Start();
        }
示例#8
0
        static void Main(string[] args)
        {
            System.Console.OutputEncoding = Encoding.Unicode;

            //System.Console.WriteLine("\u2665");
            //System.Console.WriteLine("\uF496");

            //System.Console.Write('\u003A');
            //System.Console.WriteLine('\u0029');//

            //System.Console.Write('\u263A');
            //System.Console.Write('♥');
            //System.Console.Write('♡');
            //System.Console.WriteLine('\u263B');
            //System.Console.Read();

            Console.SetWindowSize(120, 35);
            Console.CursorVisible = false;
            var world = new World();

            var health = new HealthComponent(world)
            {
                Health = new RegenAttribute
                {
                    Current = 50, Max = 100, Name = "Health", RegenRatePerSecond = 1
                }
            };
            var mana = new ManaComponent(world)
            {
                Mana = new RegenAttribute
                {
                    Current = 30, Max = 60, Name = "Mana", RegenRatePerSecond = 0.2
                }
            };

            var fpsCounter = new FramesPerSecondCounter(world);

            var fpsWriter = new FpsRenderer(world);

            var inputSystem = new ConsoleInputSystem(world);

            var playerRenderSystem  = new PlayerRenderSystem(world);
            var monsterRenderSystem = new MonsterRenderSystem(world);

            var playerMovement  = new PlayerMovementSystem(world);
            var monsterMovement = new MonsterMovementSystem(world);
            //Initialize Player position
            var initialPlayerPosition = new PlayerPosition();

            initialPlayerPosition.MoveTo(10, 10);
            world.Set(initialPlayerPosition);
            //initializ monster/s
            var initialMonsterPosition = new MonsterPosition();

            initialMonsterPosition.MoveTo(12, 12);
            world.Set(initialMonsterPosition);

            var updateSystems = new IUpdate[] { inputSystem, fpsCounter, playerMovement, monsterMovement, health, mana }; //Order is important!
            var renderSystems = new IRender[] { playerRenderSystem, monsterRenderSystem, health, mana, fpsWriter, fpsCounter };

            GameEngine gameEngine = new GameEngine(updateSystems, renderSystems);

            gameEngine.Start();
        }
 private void Start()
 {
     _manaComponent = Contexts.sharedInstance.game.mana;
 }