Ejemplo n.º 1
0
        private void GameEvents_UpdateTick(object s, EventArgs e)
        {
            EnforceSerializer();
            if (!Context.IsWorldReady)
            {
                return;
            }
            if ((Game1.player.CurrentItem == null && this.prevItem != null) || (Game1.player.CurrentItem != null && !Game1.player.CurrentItem.Equals(this.prevItem)))
            {
                ItemEvents.FireActiveItemChanged(new EventArgsActiveItemChanged(this.prevItem, Game1.player.CurrentItem));
                this.prevItem = Game1.player.CurrentItem;
            }
            PlayerModifierHelper._UpdateModifiers();
            Vector2 playerPos = new Vector2(Game1.player.getStandingX() / Game1.tileSize, Game1.player.getStandingY() / Game1.tileSize);

            if (LastTouchAction == playerPos)
            {
                return;
            }
            string text = Game1.currentLocation.doesTileHaveProperty((int)playerPos.X, (int)playerPos.Y, "TouchAction", "Back");

            LastTouchAction = playerPos;
            if (text == null)
            {
                return;
            }
            string[] split = (text).Split(' ');
            string[] args  = new string[split.Length - 1];
            Array.Copy(split, 1, args, 0, args.Length);
            this.ActionInfo = new EventArgsActionTriggered(Game1.player, split[0], args, playerPos);
            MoreEvents.FireTouchActionTriggered(this.ActionInfo);
        }
Ejemplo n.º 2
0
 private void OnActionTriggered(object sender, EventArgsActionTriggered e)
 {
     if (e.Action.Equals("MorePetsAdoption"))
     {
         this.DoAction();
     }
 }
Ejemplo n.º 3
0
        private void CheckForAction()
        {
            if (Game1.activeClickableMenu != null || Game1.player.UsingTool || Game1.pickingTool || Game1.menuUp ||
                (Game1.eventUp && !Game1.currentLocation.currentEvent.playerControlSequence) || Game1.nameSelectUp ||
                Game1.numberOfSelectedItems != -1 || Game1.fadeToBlack)
            {
                return;
            }
            this.ActionInfo = null;
            var grabTile = new Vector2((Game1.getOldMouseX() + Game1.viewport.X), (Game1.getOldMouseY() + Game1.viewport.Y)) / Game1.tileSize;

            if (!Utility.tileWithinRadiusOfPlayer((int)grabTile.X, (int)grabTile.Y, 1, Game1.player))
            {
                grabTile = Game1.player.GetGrabTile();
            }
            var           tile          = Game1.currentLocation.map.GetLayer("Buildings").PickTile(new xTile.Dimensions.Location((int)grabTile.X * Game1.tileSize, (int)grabTile.Y * Game1.tileSize), Game1.viewport.Size);
            PropertyValue propertyValue = null;

            tile?.Properties.TryGetValue("Action", out propertyValue);
            if (propertyValue == null)
            {
                return;
            }
            string[] split = ((string)propertyValue).Split(' ');
            string[] args  = new string[split.Length - 1];
            Array.Copy(split, 1, args, 0, args.Length);
            this.ActionInfo = new EventArgsActionTriggered(Game1.player, split[0], args, grabTile);
        }
Ejemplo n.º 4
0
        /// <summary>Raised after the game state is updated (≈60 times per second).</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void OnUpdateTicked(object sender, UpdateTickedEventArgs e)
        {
            this.EnforceSerializer();
            if (!Context.IsWorldReady)
            {
                return;
            }
            if (Game1.player.CurrentItem == null && this.PrevItem != null || Game1.player.CurrentItem != null && !Game1.player.CurrentItem.Equals(this.PrevItem))
            {
                ItemEvents.FireActiveItemChanged(new EventArgsActiveItemChanged(this.PrevItem, Game1.player.CurrentItem));
                this.PrevItem = Game1.player.CurrentItem;
            }

            IModHelperExtensions.PlayerModifierHelper.UpdateTick();
            if (Context.IsPlayerFree)
            {
                Vector2 playerPos = new Vector2(Game1.player.getStandingX() / Game1.tileSize, Game1.player.getStandingY() / Game1.tileSize);
                if (EntoaroxFrameworkMod.LastTouchAction != playerPos)
                {
                    string text = Game1.currentLocation.doesTileHaveProperty((int)playerPos.X, (int)playerPos.Y, "TouchAction", "Back");
                    EntoaroxFrameworkMod.LastTouchAction = playerPos;
                    if (text != null)
                    {
                        string[] split = text.Split(' ');
                        string[] args  = new string[split.Length - 1];
                        Array.Copy(split, 1, args, 0, args.Length);
                        this.ActionInfo = new EventArgsActionTriggered(Game1.player, split[0], args, playerPos);
                        MoreEvents.FireTouchActionTriggered(this.ActionInfo);
                    }
                }
            }
        }
Ejemplo n.º 5
0
 private void ControlEvents_ControllerButtonReleased(object sender, EventArgsControllerButtonReleased e)
 {
     if (this.ActionInfo != null && e.ButtonReleased == Buttons.A)
     {
         MoreEvents.FireActionTriggered(this.ActionInfo);
         this.ActionInfo = null;
     }
 }
 /// <summary>Raised after the player releases a button on the keyboard, controller, or mouse.</summary>
 /// <param name="sender">The event sender.</param>
 /// <param name="e">The event arguments.</param>
 private void OnButtonReleased(object sender, ButtonReleasedEventArgs e)
 {
     if (this.ActionInfo != null && (e.Button == SButton.ControllerA || e.Button == SButton.MouseRight))
     {
         MoreEvents.FireActionTriggered(this.ActionInfo);
         this.ActionInfo = null;
     }
 }
Ejemplo n.º 7
0
 private void ControlEvents_ControllerButtonReleased(object sender, EventArgsControllerButtonReleased e)
 {
     if (this.ActionInfo == null || e.ButtonReleased != Buttons.A)
     {
         return;
     }
     MoreEvents.FireActionTriggered(this.ActionInfo);
     this.ActionInfo = null;
 }
Ejemplo n.º 8
0
        /// <summary>Raised after a map action is triggered.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void OnActionTriggered(object sender, EventArgsActionTriggered e)
        {
            try
            {
                switch (e.Action)
                {
                case "ALLMessage":
                    Actions.Message(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLRawMessage":
                    Actions.RawMessage(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLShift":
                    Actions.Shift(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLReact":
                    Actions.React(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLRandomMessage":
                    Actions.RandomMessage(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLMinecart":
                case "ALLTeleporter":
                    Actions.Teleporter(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLCondition":
                case "ALLConditional":
                    Actions.Conditional(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLShop":
                    Actions.Shop(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLTrigger":
                    Actions.Trigger(e.Who, e.Arguments, e.Position);
                    break;

                default:
                    return;
                }

                ModEntry.Logger.Log($"ActionTriggered({e.Action})", LogLevel.Trace);
            }
            catch (Exception err)
            {
                ModEntry.Logger.ExitGameImmediately("Could not fire appropriate action response, a unexpected error happened", err);
            }
        }
Ejemplo n.º 9
0
 private void ControlEvents_MouseChanged(object sender, EventArgsMouseStateChanged e)
 {
     if (e.NewState.RightButton == ButtonState.Pressed && e.PriorState.RightButton != ButtonState.Pressed)
     {
         CheckForAction();
     }
     if (this.ActionInfo != null && e.NewState.RightButton == ButtonState.Released)
     {
         MoreEvents.FireActionTriggered(this.ActionInfo);
         this.ActionInfo = null;
     }
 }
Ejemplo n.º 10
0
        internal static void MoreEvents_ActionTriggered(object s, EventArgsActionTriggered e)
        {
            try
            {
                switch (e.Action)
                {
                case "ALLShift":
                    Actions.Shift(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLReact":
                    Actions.React(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLRandomMessage":
                    Actions.RandomMessage(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLMinecart":
                case "ALLTeleporter":
                    Actions.Teleporter(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLCondition":
                case "ALLConditional":
                    Actions.Conditional(e.Who, e.Arguments, e.Position);
                    break;

                case "ALLShop":
                    Actions.Shop(e.Who, e.Arguments, e.Position);
                    break;

                default:
                    return;
                }
                AdvancedLocationLoaderMod.Logger.Log("ActionTriggered(" + e.Action + ")", LogLevel.Trace);
            }
            catch (Exception err)
            {
                AdvancedLocationLoaderMod.Logger.ExitGameImmediately("Could not fire appropriate action response, a unexpected error happened", err);
            }
        }
Ejemplo n.º 11
0
        /*********
        ** Protected methods
        *********/

        /// <summary>Raised after the player releases a button on the keyboard, controller, or mouse.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void OnButtonReleased(object sender, ButtonReleasedEventArgs e)
        {
            if (e.Button.IsActionButton() && Game1.activeClickableMenu == null && !Game1.player.UsingTool && !Game1.pickingTool && !Game1.menuUp && (!Game1.eventUp || Game1.currentLocation.currentEvent.playerControlSequence) && !Game1.nameSelectUp && Game1.numberOfSelectedItems == -1 && !Game1.fadeToBlack)
            {
                this.ActionInfo = null;
                Vector2 grabTile = new Vector2(Game1.getOldMouseX() + Game1.viewport.X, Game1.getOldMouseY() + Game1.viewport.Y) / Game1.tileSize;
                if (!Utility.tileWithinRadiusOfPlayer((int)grabTile.X, (int)grabTile.Y, 1, Game1.player))
                {
                    grabTile = Game1.player.GetGrabTile();
                }
                Tile          tile          = Game1.currentLocation.map.GetLayer("Buildings").PickTile(new Location((int)grabTile.X * Game1.tileSize, (int)grabTile.Y * Game1.tileSize), Game1.viewport.Size);
                PropertyValue propertyValue = null;
                tile?.Properties.TryGetValue("Action", out propertyValue);
                if (propertyValue != null)
                {
                    string[] split = ((string)propertyValue).Split(' ');
                    string[] args  = new string[split.Length - 1];
                    Array.Copy(split, 1, args, 0, args.Length);
                    MoreEvents.FireActionTriggered(new EventArgsActionTriggered(Game1.player, split[0], args, grabTile));
                }
            }
        }
Ejemplo n.º 12
0
 private void OnActionTriggered(object sender, EventArgsActionTriggered e)
 {
     if (e.Action.Equals("MorePetsAdoption"))
     {
         int seed = Game1.year * 1000 + Array.IndexOf(ModEntry.Seasons, Game1.currentSeason) * 100 + Game1.dayOfMonth;
         if (Config.DisableDailyLimit)
         {
             ModEntry.Random = new Random();
         }
         else
         {
             ModEntry.Random = new Random(seed);
         }
         List <Pet> list = GetAllPets().ToList();
         if (ModEntry.Config.UseMaxAdoptionLimit && list.Count >= ModEntry.Config.MaxAdoptionLimit || ModEntry.Random.NextDouble() < Math.Max(0.1, Math.Min(0.9, list.Count * ModEntry.Config.RepeatedAdoptionPenality)) || (!Config.DisableDailyLimit && list.FindIndex(a => a.Age == seed) != -1))
         {
             Game1.drawObjectDialogue(this.Helper.Translation.Get("EmptyBox"));
         }
         else
         {
             AdoptQuestion.Show();
         }
     }
 }