예제 #1
0
        private async Task <bool> UseFullCircle(AppViewModel app)
        {
            if (!app.Options.Config.EnableFullCircle)
            {
                return(false);
            }
            if (app.Healer.Player.Pet.HealthPercent < 1)
            {
                return(false);
            }
            var petEntity       = app.Healer.Entity.GetEntity((int)app.Healer.Player.Pet.TargetID);
            var geoTargetPlayer = app.ActivePlayers.FirstOrDefault(p => p.IsGeoTarget);
            var geoEntity       = geoTargetPlayer == null
                                ? app.Healer.Entity.GetEntity((int)app.Healer.Player.TargetID)
                                : app.Healer.Entity.GetEntity((int)geoTargetPlayer.Member.TargetIndex);

            var distance = PlayerUtilities.GetDistance(petEntity, geoEntity);

            if (distance > 12 && await app.Actions.UseAbility("Full Circle"))
            {
                return(true);
            }

            return(false);
        }
 public override bool clicked(Farmer who)
 {
     //ModCore.log("Clicked a multiTiledComponent!");
     if (ModCore.playerInfo.justPlacedACustomObject == true)
     {
         return(false);
     }
     if (PlayerUtilities.CanPlayerInventoryReceiveThisItem(this.containerObject))
     {
         this.containerObject.pickUp(who);
     }
     else
     {
         return(false);
     }
     return(true);
     //return base.clicked(who);
 }
예제 #3
0
    void Start()
    {
        //Finding player, that could be any unique script on player
        player = FindObjectOfType <PlayerHealth>().transform;

        //Load all scripts on player where stats will be modified
        playerShooting  = player.GetComponent <PlayerShooting>();
        playerHealth    = player.GetComponent <PlayerHealth>();
        playerMovement  = player.GetComponent <PlayerMovement>();
        playerUtilities = player.GetComponent <PlayerUtilities>();

        //Create trigger collider to pick up
        itemCollider           = gameObject.AddComponent <CircleCollider2D>();
        itemCollider.radius    = 0.3f;
        itemCollider.isTrigger = true;

        //price above item
        priceDisplay      = GetComponentInChildren <TextMeshProUGUI>();
        priceDisplay.text = price.ToString() + '$';
    }
예제 #4
0
        /// <summary>
        /// Update player vitals
        /// </summary>
        private void UpdatePlayerInfo(AppViewModel app, EliteAPI.PartyMember member)
        {
            var healer       = app.Healer.Entity.GetLocalPlayer();
            var player       = app.Players.ElementAt(member.MemberNumber);
            var playerEntity = app.Healer.Entity.GetEntity((int)member.TargetIndex);

            if (member.Active > 0)
            {
                player.Name               = member.Name;
                player.CurrentHp          = member.CurrentHP;
                player.CurrentHpp         = member.CurrentHPP;
                player.DistanceFromHealer = PlayerUtilities.GetDistance(healer, playerEntity);
                player.Member             = member;
            }
            else
            {
                player.Name               = "";
                player.CurrentHp          = 0;
                player.CurrentHpp         = 0;
                player.DistanceFromHealer = double.MaxValue;
                player.Member             = null;
            }
        }
예제 #5
0
 private void Start()
 {
     playerUtilities = GetComponent <PlayerUtilities>();
 }
예제 #6
0
    //Collide with the power up
    //Set the new

    public void Awake()
    {
        pu = gameObject.GetComponent <PlayerUtilities>();
    }
예제 #7
0
 // Use this for initialization
 void Start()
 {
     playerUtilities = GetComponent <PlayerUtilities>();
     actions         = GetComponent <PlayerStatsActions>();
     playerFSM       = GetComponent <PlayMakerFSM>();
 }
        public static void AfterLoad_LoadRecipeBooks(object o, StardewModdingAPI.Events.SaveLoadedEventArgs e)
        {
            if (!Directory.Exists(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData")))
            {
                Directory.CreateDirectory(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"));
            }
            string[] directories = Directory.GetDirectories(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"));
            string   playerData  = Path.Combine(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"), PlayerUtilities.GetUniqueCharacterString());
            string   objectPath  = Path.Combine(playerData, "RecipeInformation");

            Directory.CreateDirectory(objectPath);
            string[] objectFiles = Directory.GetFiles(objectPath);
            foreach (string file in objectFiles)
            {
                CraftingRecipeBook book     = ModCore.Serializer.Deserialize <CraftingRecipeBook>(file);
                string             fileName = Path.GetFileNameWithoutExtension(file);
                CraftingRecipeBook.CraftingRecipesByGroup.Add(fileName, book);
            }

            InitializeRecipeBooks();


            for (int bookIndex = 0; bookIndex < CraftingRecipesByGroup.Count; bookIndex++)
            {
                KeyValuePair <string, CraftingRecipeBook> pair = CraftingRecipesByGroup.ElementAt(bookIndex);
                for (int recipeIndex = 0; recipeIndex < pair.Value.craftingRecipes.Count; recipeIndex++)
                {
                    KeyValuePair <string, UnlockableCraftingRecipe> recipe = pair.Value.craftingRecipes.ElementAt(recipeIndex);
                    for (int i = 0; i < recipe.Value.recipe.ingredients.Count; i++)
                    {
                        if (recipe.Value.recipe.ingredients[i].item is MultiTiledObject)
                        {
                            //ModCore.log("Found a multi tiled object as an output!");
                            //ModCore.log("Found a multi tiled object!");
                            Type   t  = recipe.Value.recipe.ingredients[i].item.GetType();
                            string id = (recipe.Value.recipe.ingredients[i].item as MultiTiledObject).info.id;
                            recipe.Value.recipe.ingredients[i].item = ModCore.ObjectManager.getItemByIDAndType(id, t);
                        }
                    }
                    for (int i = 0; i < recipe.Value.recipe.outputs.Count; i++)
                    {
                        if (recipe.Value.recipe.outputs[i].item is MultiTiledObject)
                        {
                            //ModCore.log("Found a multi tiled object as an output!");
                            //ModCore.log("Found a multi tiled object!");
                            Type   t  = recipe.Value.recipe.outputs[i].item.GetType();
                            string id = (recipe.Value.recipe.outputs[i].item as MultiTiledObject).info.id;
                            recipe.Value.recipe.outputs[i].item = ModCore.ObjectManager.getItemByIDAndType(id, t);

                            //ModCore.log("Components are: "+(recipe.Value.recipe.outputs[i].item as MultiTiledObject).objects.Count);
                        }
                    }
                }
            }
        }
        //~~~~~~~~~~~~~~~~~~~~//
        //  Static Functions  //
        //~~~~~~~~~~~~~~~~~~~~//


        public static void BeforeSave_SaveRecipeBooks(object o, StardewModdingAPI.Events.SavingEventArgs e)
        {
            if (!Directory.Exists(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData")))
            {
                Directory.CreateDirectory(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"));
            }
            string[] directories = Directory.GetDirectories(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"));
            string   playerData  = Path.Combine(Path.Combine(Revitalize.ModCore.ModHelper.DirectoryPath, "SaveData"), PlayerUtilities.GetUniqueCharacterString());
            string   objectPath  = Path.Combine(playerData, "RecipeInformation");

            Directory.CreateDirectory(objectPath);
            string[] objectFiles = Directory.GetFiles(objectPath);

            foreach (KeyValuePair <string, CraftingRecipeBook> book in CraftingRecipeBook.CraftingRecipesByGroup)
            {
                string recipePath = Path.Combine(objectPath, book.Key + ".json");
                ModCore.Serializer.Serialize(recipePath, book.Value);
            }
        }