public void Start()
    {
        if (Player == null)
        {
            Debug.LogError("Null player in TargetEnemy");
            return;
        }

        _targetingHandler = new TargetingSystem(Player);
        _targetingHandler.GetDirectionToTarget(transform.position, out _directionToMove);
    }
    public void Update()
    {
        if (Globals.GameStarting)
        {
            _targetingHandler = new TargetingSystem(Player);
            _targetingHandler.GetDirectionToTarget(transform.position, out _directionToMove);
            return;
        }

        if (Globals.GameOver)
            return;

        if (SelfDestructIfLeavesBounds)
        {
            CheckForBounds();
        }

        MoveBlock();
    }
Beispiel #3
0
    public void Update()
    {
        if (Globals.GameStarting)
        {
            _targetingHandler = new TargetingSystem(Player);
            _targetingHandler.GetDirectionToTarget(transform.position, out _directionToMove);
            return;
        }

        if (Globals.GameOver)
        {
            return;
        }

        if (SelfDestructIfLeavesBounds)
        {
            CheckForBounds();
        }

        MoveBlock();
    }
Beispiel #4
0
 private static void OnRootConsoleUpdate(object sender, UpdateEventArgs e)
 {
     if (TargetingSystem.IsPlayerTargeting)
     {
         RLKeyPress keyPress = _rootConsole.Keyboard.GetKeyPress();
         if (keyPress != null)
         {
             _renderRequired = true;
             TargetingSystem.HandleKey(keyPress.Key);
         }
     }
     else if (CommandSystem.IsPlayerTurn)
     {
         if (InputSystem.GetInput(_rootConsole, CommandSystem))
         {
             Player player = Game.Player;
             if (player.Hunger <= 0 && player.Status == "Hungry")
             {
                 player.Status = "Starving";
                 player.Hunger = 0;
             }
             else if (player.Hunger <= 50 && player.Hunger > 1 && (player.Status == "Healthy" || player.Status == "Starving"))
             {
                 player.Status = "Hungry";
             }
             else if (player.Hunger > 50 && !(player.Status == "Poisoned" || player.Status == "Hardened" || player.Status == "Stuck"))
             {
                 player.Status = "Healthy";
             }
             ++_steps; // hp
             _renderRequired = true;
             CommandSystem.EndPlayerTurn();
         }
     }
     else
     {
         _renderRequired = true;
         CommandSystem.ActivateMonsters();
     }
 }
Beispiel #5
0
    void Start()
    {
        revenue = 0;

        foreach (PathNode node in nodes)
        {
            node.createNode();
        }
        foreach (PathNode node in nodes)
        {
            node.addNeighbours();
        }

        Menu.setMenu(new int[] {
            (int)Menu.items.Gnocchi,
            (int)Menu.items.Pizza,
            (int)Menu.items.Frittata,
            (int)Menu.items.Spaghetti
        });

        orderQueue      = new Queue <Order>();
        targetingSystem = new TargetingSystem();

        this.employees = new Employee[numberOfEmployees];
        this.employees = Functions.map((x => (Instantiate(employeePrefab, Vector3.zero, Quaternion.identity, this.transform).GetComponent <Employee>())), employees);

        foreach (Employee employee in employees)
        {
            employee.setKitchen(this);
            string name = Names.randomName();
            Debug.Log(name);
            employee.employeeName = name;
        }

        bool[] employeesIdle = Functions.map((x => x.idle), employees);
        this.employeesIdle = employeesIdle;
        this.idleEmployees = Functions.occurences(employeesIdle, true);

        //pathTest();
    }
Beispiel #6
0
        // Event handler for RLNET's Render event
        private static void OnRootConsoleRender(object sender, UpdateEventArgs e)
        {
            // Don't bother redrawing all of the consoles if nothing has changed.
            if (_renderRequired)
            {
                //Clear the consoles
                _mapConsole.Clear();
                _statConsole.Clear();
                _messageConsole.Clear();
                _inventoryConsole.Clear();

                //Draw the dungeon map.
                DungeonMap.Draw(_mapConsole, _statConsole, _inventoryConsole);

                //draw the message log
                MessageLog.Draw(_messageConsole);

                TargetingSystem.Draw(_mapConsole);

                // Blit the sub consoles to the root console in the correct locations

                /* params
                 * - source console
                 * - x_pos
                 * - y_pos
                 * - width
                 * - height
                 * - destination console
                 * - x+y position of top left corner to blit in destination console */
                RLConsole.Blit(_mapConsole, 0, 0, _mapWidth, _mapHeight, _rootConsole, 0, _inventoryHeight);
                RLConsole.Blit(_statConsole, 0, 0, _statWidth, _statHeight, _rootConsole, _mapWidth, 0);
                RLConsole.Blit(_messageConsole, 0, 0, _messageWidth, _messageHeight, _rootConsole, 0, _screenHeight - _messageHeight);
                RLConsole.Blit(_inventoryConsole, 0, 0, _inventoryWidth, _inventoryHeight, _rootConsole, 0, 0);

                // Tell RLNET to draw the console that we set
                _rootConsole.Draw();

                _renderRequired = false;
            }
        }
Beispiel #7
0
    protected virtual void Attack()
    {
        if (!canAttack)
        {
            attackTimer += Time.deltaTime;

            if (attackTimer >= attackCooldown)
            {
                canAttack   = true;
                attackTimer = 0;
            }


            //Debug.Log("I can not attack");
        }

        if (canAttack)
        {
            //Debug.Log("I can attack");
        }

        // get potential target
        TargetingSystem targetSys = transform.parent.GetComponent <TargetingSystem>();

        if (targetSys.Target != null)
        {
            if (canAttack && targetSys.IsTargetShootable())
            {
                //Debug.Log("target shootable");
                Shoot();

                // myAnimator.SetTrigger("Attack");

                canAttack = false;
            }

            //Debug.Log("Get a target NOT SHOOTABLE");
        }
    }
        public override void Awake()
        {
            base.Awake();
            _renderer = GetComponent <Renderer>();
            var parameters = Parameters.Instance;

            SensoryMemory   = new SensoryMemory(this, parameters.AgentMemorySpan, parameters.FriendlyFire);
            TargetingSystem = new TargetingSystem(this);
            WeaponSystem    =
                new WeaponSystem(
                    this,
                    parameters.AgentReactionTime,
                    parameters.AgentAimAccuracy,
                    parameters.AgentAimPersistenceTime);
            PathPlanner = GetComponent <PathPlanner>();

            MaximumHealth     = parameters.AgentMaximumHealth;
            Health            = 10;
            HitIndicatorTimer = (int)parameters.HitFlashTime;
            Hit   = false;
            Score = 0;

            GoalArbitrationRegulator =
                new Regulator(parameters.AgentGoalAppraisalUpdateFrequency);
            VisionUpdateRegulator =
                new Regulator(parameters.AgentVisionUpdateFrequency);
            TargetSelectionRegulator =
                new Regulator(parameters.AgentTargetingUpdateFrequency);
            WeaponSelectionRegulator =
                new Regulator(parameters.AgentWeaponSelectionFrequency);

            Brain = new Think(this);

            FieldOfView = parameters.AgentFieldOfView;

            _normalMaterial = _renderer.materials;
            _flashMaterial  = CreateFlashMaterial();
        }
Beispiel #9
0
        public static bool IsTargetablePrefix(TargetingSystem __instance, ref bool __result, ref Character ___m_character, Character _character)
        {
            //checks the stack to see if this was called from certain functions that need to have different behavior
            bool checkFrame(StackFrame f)
            {
                System.Reflection.MethodBase method = f.GetMethod();
                //UnityEngine.Debug.Log("Method.Name checked: " + method.Name);
                return(method.Name.Contains("CheckIfCombatWorthy") || method.Name.Contains("IsEnemyClose") || method.DeclaringType == typeof(TargetingSystem) && !method.Name.Contains("IsTargetable"));
            }

            UnityEngine.Debug.Log("FriendlyFire - IsTargetablePatch() Stacktrace: \r\n" + Environment.StackTrace);
            //UnityEngine.Debug.Log("FriendlyFire - IsTargetablePatch() " + _character);
            //foreach (Character c in instance.m_character.EngagedCharacters)
            //{
            //    UnityEngine.Debug.Log("Engaged: " + c);
            //}

            StackTrace st = new StackTrace();
            IEnumerable <StackFrame> frames = from StackFrame sf in st.GetFrames()
                                              where checkFrame(sf)
                                              select sf;

            //any stackframes that met the initial conditions
            if (frames.Any())
            {
                //UnityEngine.Debug.Log("FriendlyFire - IsTargetablePatch() Stacktrace: \r\n" + Environment.StackTrace);
                //UnityEngine.Debug.Log("FriendlyFire - Found this frame: " + frames);
                if (_character.Faction == Character.Factions.Player &&
                    (_character == ___m_character || !ControlsInput.Sprint(___m_character.OwnerPlayerSys.PlayerID) ||
                     //fixes resting and combat music
                     frames.Any(x => x.GetMethod().Name == "IsEnemyClose" || frames.Any(y => y.GetMethod().Name == "CheckIfCombatWorthy"))))
                {
                    __result = false;
                    return(false);
                }
            }
            return(true);
        }
Beispiel #10
0
    // NIASSY WORK
    // collision with a gameObject
    // to allow subclasses ti redefine it
    // This method will be invoqued withing the
    // OnTrigger2D event
    public override void Collide(Collider2D other)
    {
        // get potential target
        TargetingSystem targetSys = Owner.GetComponent <TargetingSystem>();

        /*if (other.gameObject == targetSys.Target.gameObject)
         * {
         *  Debug.Log("Colliding target");
         *  myAnimator.SetTrigger("Impact");
         *
         *
         * }*/

        //if (other.tag == "Monster")
        //{
        //    Debug.Log(" ProjectileTest : Colliding Monster");
        //  //  myAnimator.SetTrigger("Impact");

        //}

        //If we hit a monster

        /*if (other.tag == "Monster")
         * {
         *  //Creates a reference to the monster script
         *  Monster target = other.GetComponent<Monster>();
         *
         *  //Makes the monster take damage based on the tower stats
         *  target.TakeDamage(tower.Damage, tower.ElementType);
         *
         *  //Triggers the impact animation
         *  myAnimator.SetTrigger("Impact");
         *
         *  //Tries to apply a debuff
         *  ApplyDebuff();
         * }*/
    }
Beispiel #11
0
        static bool Prefix(TargetingSystem __instance, ref float __result)
        {
            FieldInfo m_character = typeof(TargetingSystem).GetField("m_character", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            Character character = (Character)m_character.GetValue(__instance);

            if (character != null && character.CurrentWeapon.Type == Weapon.WeaponType.Bow && character.Inventory.SkillKnowledge.IsItemLearned(8205160))
            {
                __result = 100.0f;
                return(false);
            }
            if (character != null && character.CurrentWeapon.Type != Weapon.WeaponType.Bow && character.Inventory.SkillKnowledge.IsItemLearned(8205160))
            {
                __result = 40.0f;
                return(false);
            }
            if (character != null && character.CurrentWeapon.Type == Weapon.WeaponType.Bow && !character.Inventory.SkillKnowledge.IsItemLearned(8205160))
            {
                __result = 40.0f;
                return(false);
            }
            __result = 20.0f;
            return(false);
        }
Beispiel #12
0
        protected override void Update(GameTime gameTime)
        {
            bool didPlayerAct = false;

            _inputState.Update(gameTime);

            if (TargetingSystem.IsPlayerTargeting)
            {
                _renderRequired = true;
                TargetingSystem.HandleInput(_inputState);
            }
            else if (CommandSystem.IsPlayerTurn)
            {
                if (_inputState.IsKeyPressed(Keys.Up))
                {
                    MapMessageLog.Add("");
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Up);
                }
                else if (_inputState.IsKeyPressed(Keys.Down))
                {
                    MapMessageLog.Add("");
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Down);
                }
                else if (_inputState.IsKeyPressed(Keys.Left))
                {
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Left);
                }
                else if (_inputState.IsKeyPressed(Keys.Right))
                {
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Right);
                }
                else if (_inputState.IsKeyPressed(Keys.Escape))
                {
                    this.Exit();
                }
                else if (_inputState.IsKeyPressed(Keys.OemPeriod))
                {
                    if (DungeonMap.CanMoveDownToNextLevel())
                    {
                        MapGenerator mapGenerator = new MapGenerator(_mapWidth, _mapHeight, 20, 13, 7, ++_mapLevel);
                        DungeonMap        = mapGenerator.CreateMap();
                        MessageLog        = new MessageLog();
                        CommandSystem     = new CommandSystem();
                        this.Window.Title = $"Sean's RogueLike Engine 3 - Level {_mapLevel}";
                        didPlayerAct      = true;
                    }
                }
                else
                {
                    didPlayerAct = CommandSystem.HandleInput(_inputState);
                }

                if (didPlayerAct)
                {
                    _renderRequired = true;
                    CommandSystem.EndPlayerTurn();
                }
            }
            else
            {
                CommandSystem.ActivateMonsters();
                _renderRequired = true;
            }
            base.Update(gameTime);
        }
 public void RemoveWatcher(TargetingSystem watcher)
 {
     systemsTargetingMe.Remove(watcher);
 }
Beispiel #14
0
    private IEnumerator OnRootConsoleUpdate()
    {
        while (Application.isPlaying)
        {
            bool didPlayerAct = false;

            if (TargetingSystem.IsPlayerTargeting)
            {
                if (Input.anyKeyDown)
                {
                    _renderRequired = true;
                    foreach (KeyCode vKey in System.Enum.GetValues(typeof(KeyCode)))
                    {
                        if (Input.GetKey(vKey))
                        {
                            TargetingSystem.HandleKey(vKey);
                        }
                    }
                }
            }
            else if (CommandSystem.IsPlayerTurn)
            {
                if (Input.anyKeyDown)
                {
                    if (Input.GetKeyDown(KeyCode.UpArrow))
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Up);
                    }
                    else if (Input.GetKeyDown(KeyCode.DownArrow))
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Down);
                    }
                    else if (Input.GetKeyDown(KeyCode.LeftArrow))
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Left);
                    }
                    else if (Input.GetKeyDown(KeyCode.RightArrow))
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Right);
                    }
                    else if (Input.GetKeyDown(KeyCode.Escape))
                    {
                        //_rootConsole.Close();
                    }
                    else if (Input.GetKeyDown(KeyCode.Period))
                    {
                        if (DungeonMap.CanMoveDownToNextLevel())
                        {
                            MapGenerator mapGenerator = new MapGenerator(_mapWidth, _mapHeight, 20, 13, 7, ++_mapLevel);
                            DungeonMap    = mapGenerator.CreateMap();
                            MessageLog    = new MessageLog();
                            CommandSystem = new CommandSystem();
                            //_rootConsole.Title = string.Format("RougeSharp RLNet Tutorial - Level {0}", _mapLevel);
                            didPlayerAct = true;
                        }
                    }
                    else
                    {
                        foreach (KeyCode vKey in System.Enum.GetValues(typeof(KeyCode)))
                        {
                            if (Input.GetKey(vKey))
                            {
                                didPlayerAct = CommandSystem.HandleKey(vKey);
                            }
                        }
                    }

                    if (didPlayerAct)
                    {
                        _renderRequired = true;
                        CommandSystem.EndPlayerTurn();
                    }
                }
            }
            else
            {
                CommandSystem.ActivateMonsters();
                _renderRequired = true;
            }

            yield return(null);
        }
    }
Beispiel #15
0
 private void Start()
 {
     targetingSystem  = GetComponent <TargetingSystem>();
     targetGameObject = targetingSystem.FindTargets();
 }
Beispiel #16
0
 private void Start()
 {
     targetingSystem = GetComponent <TargetingSystem>();
 }
Beispiel #17
0
 // Start is called before the first frame update
 void OnEnable()
 {
     CooldownAmountRemaining = StartUpCooldown + Time.deltaTime;
     TargetingSystem         = GetComponent <TargetingSystem>();
 }
Beispiel #18
0
        public RogueGame()
        {
            int seed = (int)DateTime.UtcNow.Ticks;

            Random = new DotNetRandom(seed);
            string consoleTitle = "Sean's Roguelike Engine v0.02 - Level 1 - seed " + seed;



            MessageLog    = new MessageLog();
            MapMessageLog = new MessageLog();
            MessageLog.Add("The rogue arrives on level 1");
            MessageLog.Add($"Level created with seed '{seed}'");

            MapMessageLog.Add("Welcome to Cult of Draconis");
            MapMessageLog.Add("Deep in the Caverns of Mar, an evil cult has succeeded");
            MapMessageLog.Add("in summoning the ancient dragonlord Draconis.");
            MapMessageLog.Add("It is up to you to fight your way through the caverns,");
            MapMessageLog.Add("Destroy the 4 power stones and kill Draconis");
            MapMessageLog.Add("The power stones and Draconis reside on level 5.");
            MapMessageLog.Add("To descend stairs ' > ' press the period key ' . '");



            Player           = new Player();
            SchedulingSystem = new SchedulingSystem();

            MapGenerator mapGenerator = new MapGenerator(_mapWidth, _mapHeight, 20, 13, 7, _mapLevel);

            DungeonMap = mapGenerator.CreateMap();

            CommandSystem   = new CommandSystem();
            TargetingSystem = new TargetingSystem();

            Player.Item1 = new RevealMapScroll();
            Player.Item2 = new RevealMapScroll();

            _inputState = new InputState();

            _graphics         = new GraphicsDeviceManager(this);
            this.Window.Title = consoleTitle;

            Content.RootDirectory = "Content";
            var sadConsoleComponent = new SadConsole.EngineGameComponent(this, () => {
                using (var stream = System.IO.File.OpenRead("Fonts/Cheepicus12.font"))
                    SadConsole.Engine.DefaultFont = SadConsole.Serializer.Deserialize <SadConsole.Font>(stream);

                SadConsole.Engine.DefaultFont.ResizeGraphicsDeviceManager(_graphics, _screenWidth, _screenHeight, 0, 0);
                SadConsole.Engine.UseMouse    = true;
                SadConsole.Engine.UseKeyboard = true;

                _mapConsole       = new Console(_mapWidth, _mapHeight);
                _messageConsole   = new Console(_messageWidth, _messageHeight);
                _statConsole      = new Console(_statWidth, _statHeight);
                _inventoryConsole = new Console(_inventoryWidth, _inventoryHeight);

                _mapConsole.Position       = new Point(0, _inventoryHeight);
                _messageConsole.Position   = new Point(0, _screenHeight - _messageHeight);
                _statConsole.Position      = new Point(_mapWidth, 0);
                _inventoryConsole.Position = new Point(0, 0);


                SadConsole.Engine.ConsoleRenderStack.Add(_mapConsole);
                SadConsole.Engine.ConsoleRenderStack.Add(_messageConsole);
                SadConsole.Engine.ConsoleRenderStack.Add(_statConsole);
                SadConsole.Engine.ConsoleRenderStack.Add(_inventoryConsole);

                SadConsole.Engine.ActiveConsole = _mapConsole;
            });

            Components.Add(sadConsoleComponent);
        }
Beispiel #19
0
        protected override void Draw(GameTime gameTime)
        {
            if (_renderRequired)
            {
                GraphicsDevice.Clear(Color.Black);

                _mapConsole.CellData.Clear();
                _messageConsole.CellData.Clear();
                _statConsole.CellData.Clear();
                _inventoryConsole.CellData.Clear();

                MessageLog.Draw(_messageConsole);

                DungeonMap.Draw(_mapConsole, _statConsole, _inventoryConsole);
                MapMessageLog.Draw(_mapConsole);
                MessageLog.Draw(_messageConsole);
                TargetingSystem.Draw(_mapConsole);


                _inventoryConsole.CellData.Print(0, 10, "________________________________________________________________________________", Color.Green);

                _messageConsole.CellData.Print(0, 0, "--------------------------------------------------------------------------------", Color.Green);

                _statConsole.CellData.Print(0, 0, "|", Color.Green);
                _statConsole.CellData.Print(0, 1, "|", Color.Green);
                _statConsole.CellData.Print(0, 2, "|", Color.Green);
                _statConsole.CellData.Print(0, 3, "|", Color.Green);
                _statConsole.CellData.Print(0, 4, "|", Color.Green);
                _statConsole.CellData.Print(0, 5, "|", Color.Green);
                _statConsole.CellData.Print(0, 6, "|", Color.Green);
                _statConsole.CellData.Print(0, 7, "|", Color.Green);
                _statConsole.CellData.Print(0, 8, "|", Color.Green);
                _statConsole.CellData.Print(0, 9, "|", Color.Green);
                _statConsole.CellData.Print(0, 10, "|", Color.Green);
                _statConsole.CellData.Print(0, 11, "|", Color.Green);
                _statConsole.CellData.Print(0, 12, "|", Color.Green);
                _statConsole.CellData.Print(0, 13, "|", Color.Green);
                _statConsole.CellData.Print(0, 14, "|", Color.Green);
                _statConsole.CellData.Print(0, 15, "|", Color.Green);
                _statConsole.CellData.Print(0, 16, "|", Color.Green);
                _statConsole.CellData.Print(0, 17, "|", Color.Green);
                _statConsole.CellData.Print(0, 18, "|", Color.Green);
                _statConsole.CellData.Print(0, 19, "|", Color.Green);
                _statConsole.CellData.Print(0, 20, "|", Color.Green);
                _statConsole.CellData.Print(0, 21, "|", Color.Green);
                _statConsole.CellData.Print(0, 22, "|", Color.Green);
                _statConsole.CellData.Print(0, 23, "|", Color.Green);
                _statConsole.CellData.Print(0, 24, "|", Color.Green);
                _statConsole.CellData.Print(0, 25, "|", Color.Green);
                _statConsole.CellData.Print(0, 26, "|", Color.Green);
                _statConsole.CellData.Print(0, 27, "|", Color.Green);
                _statConsole.CellData.Print(0, 28, "|", Color.Green);
                _statConsole.CellData.Print(0, 29, "|", Color.Green);
                _statConsole.CellData.Print(0, 30, "|", Color.Green);
                _statConsole.CellData.Print(0, 31, "|", Color.Green);
                _statConsole.CellData.Print(0, 32, "|", Color.Green);
                _statConsole.CellData.Print(0, 33, "|", Color.Green);
                _statConsole.CellData.Print(0, 34, "|", Color.Green);
                _statConsole.CellData.Print(0, 35, "|", Color.Green);
                _statConsole.CellData.Print(0, 36, "|", Color.Green);
                _statConsole.CellData.Print(0, 37, "|", Color.Green);
                _statConsole.CellData.Print(0, 38, "|", Color.Green);
                _statConsole.CellData.Print(0, 39, "|", Color.Green);
                _statConsole.CellData.Print(0, 40, "|", Color.Green);
                _statConsole.CellData.Print(0, 41, "|", Color.Green);
                _statConsole.CellData.Print(0, 42, "|", Color.Green);
                _statConsole.CellData.Print(0, 43, "|", Color.Green);
                _statConsole.CellData.Print(0, 44, "|", Color.Green);
                _statConsole.CellData.Print(0, 45, "|", Color.Green);
                _statConsole.CellData.Print(0, 46, "|", Color.Green);
                _statConsole.CellData.Print(0, 47, "|", Color.Green);
                _statConsole.CellData.Print(0, 48, "|", Color.Green);
                _statConsole.CellData.Print(0, 49, "|", Color.Green);
                _statConsole.CellData.Print(0, 50, "|", Color.Green);
                _statConsole.CellData.Print(0, 51, "|", Color.Green);
                _statConsole.CellData.Print(0, 52, "|", Color.Green);
                _statConsole.CellData.Print(0, 53, "|", Color.Green);
                _statConsole.CellData.Print(0, 54, "|", Color.Green);
                _statConsole.CellData.Print(0, 55, "|", Color.Green);
                _statConsole.CellData.Print(0, 56, "|", Color.Green);
                _statConsole.CellData.Print(0, 57, "|", Color.Green);
                _statConsole.CellData.Print(0, 58, "|", Color.Green);
                _statConsole.CellData.Print(0, 59, "|", Color.Green);

                _statConsole.CellData.Print(0, 1, "|", Color.Green);

                if (RogueGame._mapLevel == 1)
                {
                    _statConsole.CellData.Print(1, 60, "Location:", Color.Green);
                    _statConsole.CellData.Print(1, 62, "Desert Pass", Color.Tan);
                }
                else if (RogueGame._mapLevel == 2)
                {
                    _statConsole.CellData.Print(1, 60, "Location:", Color.Green);
                    _statConsole.CellData.Print(1, 62, "Cavern Base Level 1", Color.Red);
                }
                else if (RogueGame._mapLevel == 3)
                {
                    _statConsole.CellData.Print(1, 60, "Location:", Color.Green);
                    _statConsole.CellData.Print(1, 62, "Cavern Base Level 2", Color.Red);
                }
                else if (RogueGame._mapLevel == 4)
                {
                    _statConsole.CellData.Print(1, 60, "Location:", Color.Green);
                    _statConsole.CellData.Print(1, 62, "Cavern Base Level 3", Color.Red);
                }
                else if (RogueGame._mapLevel == 5)
                {
                    _statConsole.CellData.Print(1, 60, "Location:", Color.Green);
                    _statConsole.CellData.Print(1, 62, "Summoning Chambers", Color.Red);
                }



                base.Draw(gameTime);
            }
        }
        private void InitFactionsHook(On.TargetingSystem.orig_InitTargetableFaction orig, TargetingSystem self)
        {
            Character c = At.GetValue(typeof(TargetingSystem), self, "m_character") as Character;

            if (c.IsAI && global.IsGameplayStarted && global.CurrentTime > 0)
            {
                ForceEnemiesAllied(c);
            }
            else
            {
                orig(self);
            }
        }
Beispiel #21
0
        static void Main(string[] args)
        {
            Stopwatch sw = Stopwatch.StartNew();

            Engine engine = new Engine();

            engine.DefineComponent <Components.Debug>();
            engine.DefineComponent <Targetable>();
            engine.DefineComponent <Room>();
            engine.DefineComponent <Present>();
            engine.DefineComponent <Containable>();
            engine.DefineComponent <Notable>();
            engine.DefineComponent <Openable>();
            engine.DefineComponent <Container>();

            var output = new OutputSystem();

            engine.AddSystem(output);
            var targetingSystem = new TargetingSystem();

            engine.AddSystem(targetingSystem);
            engine.AddSystem(new SightSystem());
            var interpreter = new InterpreterSystem();

            engine.AddSystem(interpreter);
            engine.AddSystem(new DebuggingSystem());
            engine.AddSystem(new RoomSystem());
            engine.AddSystem(new PlayerSystem());
            engine.AddSystem(new LabelSystem());
            engine.AddSystem(new ContainmentSystem());
            engine.AddSystem(new OpenableSystem());

            var roomId = engine.CreateEntity();

            engine.AddComponentToEntity(roomId, new Room {
                Title = "Zoop", Description = "It's Zoop!"
            });

            var newEntityIdentifier = engine.CreateEntity();

            engine.AddComponentToEntity(newEntityIdentifier, new Components.Debug {
                Label = "Wenceslaus"
            });
            engine.AddComponentToEntity(newEntityIdentifier, new Targetable("Wenceslaus", new[] { "Jingle", "Punished" }));
            engine.AddComponentToEntity(newEntityIdentifier, new Present {
                RoomEntityId = roomId
            });

            newEntityIdentifier = engine.CreateEntity();
            engine.AddComponentToEntity(newEntityIdentifier, new Components.Debug {
                Label = "The Juice"
            });
            engine.AddComponentToEntity(newEntityIdentifier, new Targetable("Juice", new[] { "Tasty", "Orange" }));
            engine.AddComponentToEntity(newEntityIdentifier, new Present {
                RoomEntityId = roomId
            });

            newEntityIdentifier = engine.CreateEntity();
            engine.AddComponentToEntity(newEntityIdentifier, new Components.Debug {
                Label = "The Other Juice"
            });
            engine.AddComponentToEntity(newEntityIdentifier, new Targetable("Apple Juice", new[] { "Spoiled" }));
            engine.AddComponentToEntity(newEntityIdentifier, new Present {
                RoomEntityId = roomId
            });

            newEntityIdentifier = engine.CreateEntity();
            engine.AddComponentToEntity(newEntityIdentifier, new Components.Debug {
                Label = "Crate"
            });
            engine.AddComponentToEntity(newEntityIdentifier, new Targetable("Crate"));
            engine.AddComponentToEntity(newEntityIdentifier, new Present {
                RoomEntityId = roomId
            });
            engine.AddComponentToEntity(newEntityIdentifier, new Openable {
                IsOpen = false, IsLocked = false
            });

            //interpreter.Register(new TestAction(newEntityIdentifier));

            bool done = false;

            while (!done)
            {
                Console.WriteLine(output.Print());
                Console.Write("> ");
                var input = Console.ReadLine();

                if (input == "quit")
                {
                    done = true;
                }
                else
                {
                    interpreter.HandleUserInput(input);
                }
            }
        }
Beispiel #22
0
 // Use this for initialization
 void Start()
 {
     targetingSystem = GetComponentInChildren <TargetingSystem>();
 }
Beispiel #23
0
 private void Start()
 {
     EF_Mothership   = GameObject.FindGameObjectWithTag("EF_Mothership");
     earth           = GameObject.FindGameObjectWithTag("Earth");
     targetingSystem = GetComponent <TargetingSystem>();
 }
Beispiel #24
0
    void Start()
    {
        targetingSystem = GetComponent <TargetingSystem>();

        checkForUsable = true;
    }
Beispiel #25
0
    // Update is called once per frame
    void Update()
    {
        bool didPlayerAct = false;

        if (Input.anyKeyDown || Time.time - _lastKeyPressTime > KeyPressDelay)
        {
            if (TargetingSystem.IsPlayerTargeting)
            {
                if (Input.anyKeyDown)
                {
                    _renderRequired = true;
                    foreach (KeyCode vKey in System.Enum.GetValues(typeof(KeyCode)))
                    {
                        if (Input.GetKey(vKey))
                        {
                            TargetingSystem.HandleKey(vKey);
                        }
                    }
                }
            }
            else if (CommandSystem.IsPlayerTurn)
            {
                var playerTransform = Player.go.transform;
                _lastKeyPressTime = Time.time;
                float horizontal = Input.GetAxisRaw("Horizontal");
                float vertical   = Input.GetAxisRaw("Vertical");
                if (horizontal > 0)
                {
                    playerTransform.localScale = new Vector3(1, 1, 1);
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Right);
                }
                else if (horizontal < 0)
                {
                    playerTransform.localScale = new Vector3(-1, 1, 1);
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Left);
                }
                else if (vertical > 0)
                {
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Down);
                }
                else if (vertical < 0)
                {
                    didPlayerAct = CommandSystem.MovePlayer(Direction.Up);
                }
                else if (Input.GetKeyDown(KeyCode.Period))
                {
                    if (DungeonMap.CanMoveDownToNextLevel())
                    {
                        MapGenerator mapGenerator = new MapGenerator(_width, _height, 20, 13, 7, ++_mapLevel);
                        DungeonMap    = mapGenerator.CreateMap();
                        MessageLog    = new MessageLog();
                        CommandSystem = new CommandSystem();

                        didPlayerAct = true;
                    }
                }
                else
                {
                    foreach (KeyCode vKey in System.Enum.GetValues(typeof(KeyCode)))
                    {
                        if (Input.GetKey(vKey))
                        {
                            didPlayerAct = CommandSystem.HandleKey(vKey);
                        }
                    }
                }


                if (didPlayerAct)
                {
                    _renderRequired = true;
                    CommandSystem.EndPlayerTurn();
                }
            }
            else
            {
                CommandSystem.ActivateMonsters();
                _renderRequired = true;
            }
        }
    }
Beispiel #26
0
        // Event handler for RLNET's Update event
        private static void OnRootConsoleUpdate(object sender, UpdateEventArgs e)
        {
            bool       didPlayerAct = false;
            RLKeyPress keyPress     = _rootConsole.Keyboard.GetKeyPress();

            if (TargetingSystem.IsPlayerTargeting)
            {
                if (keyPress != null)
                {
                    _renderRequired = true;
                    TargetingSystem.HandleKey(keyPress.Key);
                }
            }
            else if (CommandSystem.IsPlayerTurn)
            {
                if (keyPress != null)
                {
                    if (keyPress.Key == RLKey.Up)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Up);
                    }
                    else if (keyPress.Key == RLKey.Down)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Down);
                    }
                    else if (keyPress.Key == RLKey.Left)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Left);
                    }
                    else if (keyPress.Key == RLKey.Right)
                    {
                        didPlayerAct = CommandSystem.MovePlayer(Direction.Right);
                    }
                    else if (keyPress.Key == RLKey.Escape)
                    {
                        _rootConsole.Close();
                    }
                    else if (keyPress.Key == RLKey.Period)
                    {
                        if (DungeonMap.CanMoveDownToNextLevel())
                        {
                            MapGenerator mapGenerator = new MapGenerator(_mapWidth, _mapHeight, 20, 13, 7, ++_mapLevel);
                            DungeonMap         = mapGenerator.CreateMap();
                            MessageLog         = new MessageLog();
                            CommandSystem      = new CommandSystem();
                            _rootConsole.Title = $"World of Othaura - Level {_mapLevel}";
                            didPlayerAct       = true;
                        }
                    }

                    else
                    {
                        didPlayerAct = CommandSystem.HandleKey(keyPress.Key);
                    }

                    if (didPlayerAct)
                    {
                        _renderRequired = true;
                        CommandSystem.EndPlayerTurn();
                    }
                }
            }

            else
            {
                CommandSystem.ActivateMonsters();
                _renderRequired = true;
            }
        }
    protected void AcquireTargetingSystem()
    {
        if (owner is PlayerShip)
        {
            shipTargetingSystem = owner.gameObject.GetComponent<TargetingSystem>();
            shipTargetingSystem.weapons.Add(this);
            control = ControlMode.PLAYER;

            // Add weapon to GRID.
            UI_Targeting = shipTargetingSystem.GetUI();
            UI_Weapon = GameObject.Instantiate(UI_Targeting.UIOBJECT_WEAPON) as GameObject;
            UI_Weapon.name = "WeaponsUI";

            Debug.Log(UI_Weapon.transform.GetChild(0).name);
            Debug.Log(UI_Weapon.transform.GetChild(1).name);
            Debug.Log(UI_Weapon.transform.GetChild(2).name);

            UI_weaponLabel = UI_Weapon.transform.FindChild("UILabel").GetComponent<UILabel>();
            UI_reloadSprite = UI_Weapon.transform.FindChild("UIReadyToFire").GetComponent<UISprite>();
            UI_weaponSprite = UI_Weapon.transform.FindChild("UIWeaponSprite").GetComponent<UISprite>();
            UI_selectedSprite = UI_Weapon.transform.FindChild("UISelected").GetComponent<UISprite>();
            UI_SelectWeapon = UI_Weapon.transform.FindChild("UIWeaponSprite").GetComponent<UIButton>();

            // Allows changing weapon and setting targets by left / right clicking.
            EventDelegate SelectDelegate = new EventDelegate(this, "SelectWeapon");
            UI_SelectWeapon.onClick.Add(SelectDelegate);
            SelectDelegate = new EventDelegate(this, "SetTarget");
            UI_SelectWeapon.onClick.Add(SelectDelegate);

            UI_selectedSprite.enabled = false;

            //UI_AutoFire.onClick += SwitchModes;
        //			UIEventListener.Get(UI_AutoFire.gameObject).onClick += SwitchModes;
        //
            UI_Weapon.transform.parent = UI_Targeting.weaponGrid.transform;
            UI_Weapon.transform.localPosition = Vector3.zero;
            UI_Weapon.transform.localScale = new Vector3(1,1,1);
            UI_Targeting.weaponGrid.mReposition = true;
            UI_Targeting.weaponGrid.enabled = true;
        }
        else
            control = ControlMode.AI;
    }
Beispiel #28
0
        public static void Main()
        {
            // This must be the exact name of the bitmap font file we are using or it will error.
            string fontFileName = "Assets/terminal8x8.png";

            // The title will appear at the top of the console window
            // also include the seed used to generate the level
            string consoleTitle = $"World of Othaura - Level {_mapLevel}";

            // Establish the seed for the random number generator from the current time
            int seed = (int)DateTime.UtcNow.Ticks;

            Random = new DotNetRandom(seed);

            // Create a new MessageLog and print the random seed used to generate the level
            MessageLog = new MessageLog();
            MessageLog.Add("The rogue arrives on level 1");
            MessageLog.Add($"Level created with seed '{seed}'");

            Player           = new Player();
            SchedulingSystem = new SchedulingSystem();

            //Map Generation
            MapGenerator mapGenerator = new MapGenerator(_mapWidth, _mapHeight, 20, 13, 7, _mapLevel);

            DungeonMap = mapGenerator.CreateMap();

            // Tell RLNet to use the bitmap font that we specified and that each tile is 8 x 8 pixels
            _rootConsole = new RLRootConsole(fontFileName, _screenWidth, _screenHeight, 8, 8, 1f, consoleTitle);

            // Initialize the sub consoles that we will Blit to the root console
            _mapConsole       = new RLConsole(_mapWidth, _mapHeight);
            _messageConsole   = new RLConsole(_messageWidth, _messageHeight);
            _statConsole      = new RLConsole(_statWidth, _statHeight);
            _inventoryConsole = new RLConsole(_inventoryWidth, _inventoryHeight);

            // Set background color and text for each console
            // so that we can verify they are in the correct positions
            //_messageConsole.SetBackColor(0, 0, _messageWidth, _messageHeight, Palette.DbDeepWater);
            //_messageConsole.Print(1, 1, "Messages", Colors.TextHeading);

            //_statConsole.SetBackColor(0, 0, _statWidth, _statHeight, Palette.DbOldStone);
            //_statConsole.Print(1, 1, "Stats", Colors.TextHeading);


            CommandSystem   = new CommandSystem();
            TargetingSystem = new TargetingSystem();

            //noob help
            Player.Item1 = new RevealMapScroll();
            Player.Item2 = new RevealMapScroll();

            // Set up a handler for RLNET's Update event
            _rootConsole.Update += OnRootConsoleUpdate;

            // Set up a handler for RLNET's Render event
            _rootConsole.Render += OnRootConsoleRender;

            // Begin RLNET's game loop
            _rootConsole.Run();
        }
Beispiel #29
0
        private void AddTarget()
        {
            var objectClicked = owner.GetObjectClicked();

            if (objectClicked != null)
            {
                if (objectClicked.GetComponent <PlayerView>() != null)
                {
                    Target target = (Target)objectClicked.GetComponent <PlayerView>().owner;
                    if (TargetingSystem.IsValid(ability.validTargets, target, true))
                    {
                        chosenTargetsList.Add(target);
                    }
                }
                else if (objectClicked.GetComponent <CardView>() != null)
                {
                    Target target = (Target)objectClicked.GetComponent <CardView>().cardInstance;
                    if (TargetingSystem.IsValid(ability.validTargets, target, true))
                    {
                        if (!chosenTargetsList.Contains(target))
                        {
                            chosenTargetsList.Add(target);
                            chosenCardsViews.Add(objectClicked.GetComponent <CardView>());
                            objectClicked.GetComponent <CardView>().ToggleActive();
                        }
                        else
                        {
                            chosenTargetsList.Remove(target);
                            chosenCardsViews.Remove(objectClicked.GetComponent <CardView>());
                            objectClicked.GetComponent <CardView>().ToggleActive();
                        }
                    }
                }
                else
                {
                    if (chosenCardsViews.Count > 0)
                    {
                        foreach (CardView cardView in chosenCardsViews)
                        {
                            cardView.ToggleActive();
                        }
                        chosenCardsViews.Clear();
                        chosenTargetsList.Clear();
                        Complete();
                    }
                }
            }
            else
            {
                Complete();
            }

            if (chosenTargetsList.Count == ability.numberOfTargets || (owner.playerSystem.enemy.table.Count < ability.numberOfTargets && chosenTargetsList.Count == owner.playerSystem.enemy.table.Count && chosenTargetsList.Count != 0))
            {
                foreach (CardView cardView in chosenCardsViews)
                {
                    cardView.ToggleActive();
                }
                Debug.Log("Activating spell ability....");
                ability.ActivateAbility(chosenTargetsList, card.abilityInstance);
                Complete();
            }
        }