Add files via upload

This commit is contained in:
janavarro95 2016-06-03 09:23:52 -07:00
parent 2b2404c091
commit 44af0df562
5 changed files with 323 additions and 0 deletions

276
NightOwl/Class1.cs Normal file
View File

@ -0,0 +1,276 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StardewValley;
using StardewModdingAPI;
using System.IO;
/*TODO:
*/
/*
Issues:
-Mail can't be wiped without destroying all mail.
-Lighting transition does not work if it is raining.
-set the weather to clear if you are stayig up late.
-transition still doesnt work. However atleast it is dark now.
*/
namespace Stardew_NightOwl
{
public class Class1 : Mod
{
int player_x;
int player_y;
string prior_map;
bool was_raining;
bool time_reset;
int prior_money;
int post_money;
float pre_stam;
int pre_health;
bool lighting_transition; //if true transition happens. If false, game starts out bright at 2AM. Good to remove that awkward change from dark to bright.
bool warp;
bool stay_up;
// bool wipe_mail;
bool protect_money;
bool persistant_health;
bool persistant_stamina;
bool game_loaded;
public override void Entry(params object[] objects)
{
StardewModdingAPI.Events.TimeEvents.TimeOfDayChanged += TimeEvents_TimeOfDayChanged;
StardewModdingAPI.Events.TimeEvents.DayOfMonthChanged += TimeEvents_DayOfMonthChanged;
StardewModdingAPI.Events.PlayerEvents.LoadedGame += PlayerEvents_LoadedGame;
}
public void PlayerEvents_LoadedGame(object sender, StardewModdingAPI.Events.EventArgsLoadedGameChanged e)
{
DataLoader();
MyWritter();
game_loaded = true;
}
public void TimeEvents_DayOfMonthChanged(object sender, StardewModdingAPI.Events.EventArgsIntChanged e)
{
if (game_loaded == false) return;
DataLoader();
MyWritter();
List<string> newmail = new List<string>();
if (time_reset == true)
{
was_raining = false;
if (persistant_stamina==true) Game1.player.stamina = pre_stam; //reset health and stam upon collapsing
if (persistant_health == true) Game1.player.health = pre_health;
post_money = Game1.player.money;
if (protect_money == true) Game1.player.money += (prior_money - post_money); //add the money back from colapsing.
time_reset = false; //reset my bool.
if(warp==true)Game1.warpFarmer(prior_map, player_x, player_y, false);
}
/*
if (wipe_mail == true)
{
foreach (var i in Game1.mailbox) //delete those annoying charge messages. If only I could do this with mail IRL.
{
Log.Info(i);
if (i.Contains("passedOut"))
{
Log.Info("Found bad mail");
}
else {
newmail.Add(i);
}
}
Game1.mailbox.Clear();
foreach (string mail in newmail)
{
Game1.player.mailReceived.Remove(mail);
Game1.player.mailForTomorrow.Add(mail);
//Game1.addMailForTomorrow(mail, false, false);
}
}
*/
}
public void TimeEvents_TimeOfDayChanged(object sender, StardewModdingAPI.Events.EventArgsIntChanged e)
{
if (game_loaded == false) return;
float color_mod;
//transition the lighting for more "realistic" lighting from 2am to 11am. There is an awkward screen shuffle that happens because of this update.
if (lighting_transition == true)
{
if (Game1.timeOfDay > 200 && Game1.timeOfDay < 1100)
{
color_mod = (1100 - Game1.timeOfDay) / 1000f; //.7f
Game1.outdoorLight = Game1.ambientLight * color_mod;
}
}
if (stay_up == true)
{
if (Game1.timeOfDay == 2550)
{
if (StardewValley.Game1.isRaining == true)
{
was_raining = true;
StardewValley.Game1.isRaining = false; //regardless make sure I change the weather. Otherwise lighting gets screwy.
}
StardewValley.Game1.updateWeatherIcon();
Game1.timeOfDay = 150; //change it from 1:50 am late, to 1:50 am early
}
}
if(Game1.timeOfDay == 600)
{
//if (time_reset == false) return;
time_reset = true;
Game1.farmerShouldPassOut = true; //make the farmer collapse.
player_x = Game1.player.getTileX();
player_y = Game1.player.getTileY();
prior_map = Game1.player.currentLocation.name;
pre_stam = Game1.player.stamina;
pre_health = Game1.player.health;
prior_money = Game1.player.money;
}
}
void MyWritter()
{
//saves the BuildEndurance_data at the end of a new day;
string myname = Game1.player.name;
string mylocation = Path.Combine(PathOnDisk, "Night_Owl_Config_");
//string mylocation2 = mylocation + myname;
string mylocation3 = mylocation + ".txt";
string[] mystring3 = new string[20];
if (!File.Exists(mylocation3))
{
Console.WriteLine("The data file for Night Owl wasn't found. Time to create it!");
//write out the info to a text file at the end of a day. This will run if it doesnt exist.
mystring3[0] = "Player: Night Owl Config. Feel free to edit.";
mystring3[1] = "====================================================================================";
mystring3[2] = "Stay up to 6 AM?: Do you wan't to stay up till 6 AM the next morning?";
mystring3[3] = stay_up.ToString();
mystring3[4] = "Custom Lighting Transition?: Do you want to have a lighting transition from 2AM to 5:50 AM? Setting this to false will keep the world dark until the player passes out or goes to bed.";
mystring3[5] = lighting_transition.ToString();
mystring3[6] = "Warp to collapse position?: True: Stay in the same place. False: Warp back home.";
mystring3[7] = warp.ToString();
// mystring3[8] = "Clean out charges mail?: Get rid of the annoying We charged X gold for your health fees, etc.";
// mystring3[9] = wipe_mail.ToString();
mystring3[8] = "Keep Money?: True: Don't be charged for passing out.";
mystring3[9] = protect_money.ToString();
mystring3[10] = "Keep stamina when staying up? When the farmer passes out at 6, should their stamina be their stamina before collapsing?";
mystring3[11] = persistant_stamina.ToString();
mystring3[12] = "Keep health when staying up? When the farmer passes out at 6, should their health be their health before collapsing?";
mystring3[13] = persistant_health.ToString();
/*
mystring3[17] = "Nightly Stamina Value: This is the value of the player's stamina that was saved when the player slept.";
mystring3[18] = nightly_stamina_value.ToString(); //this should save the player's stamina upon sleeping.
*/
File.WriteAllLines(mylocation3, mystring3);
}
else
{
// Console.WriteLine("HEY IM SAVING DATA");
//write out the info to a text file at the end of a day.
mystring3[0] = "Player: Night Owl Config. Feel free to edit.";
mystring3[1] = "====================================================================================";
mystring3[2] = "Stay up to 6 AM?: Do you wan't to stay up till 6 AM the next morning?";
mystring3[3] = stay_up.ToString();
mystring3[4] = "Custom Lighting Transition?: Do you want to have a lighting transition from 2AM to 5:50 AM? Setting this to false will keep the world dark until the player passes out or goes to bed.";
mystring3[5] = lighting_transition.ToString();
mystring3[6] = "Warp to collapse position?: True: Stay in the same place. False: Warp back home.";
mystring3[7] = warp.ToString();
// mystring3[8] = "Clean out charges mail?: Get rid of the annoying We charged X gold for your health fees, etc.";
//mystring3[9] = wipe_mail.ToString();
mystring3[8] = "Keep Money?: True: Don't be charged for passing out.";
mystring3[9] = protect_money.ToString();
mystring3[10] = "Keep stamina when staying up? When the farmer passes out at 6, should their stamina be their stamina before collapsing?";
mystring3[11] = persistant_stamina.ToString();
mystring3[12] = "Keep health when staying up? When the farmer passes out at 6, should their health be their health before collapsing?";
mystring3[13] = persistant_health.ToString();
File.WriteAllLines(mylocation3, mystring3);
}
}
void DataLoader()
{
//loads the data to the variables upon loading the game.
string myname = StardewValley.Game1.player.name;
string mylocation = Path.Combine(PathOnDisk, "Night_Owl_Config_");
//string mylocation2 = mylocation + myname;
string mylocation3 = mylocation + ".txt";
if (!File.Exists(mylocation3)) //if not data.json exists, initialize the data variables to the ModConfig data. I.E. starting out.
{
Console.WriteLine("Loading Night_Owl_Config");
lighting_transition = true;
warp = true;
stay_up = true;
persistant_health = true;
persistant_stamina = true;
//wipe_mail = true;
protect_money = true;
}
else
{
// Console.WriteLine("HEY THERE IM LOADING DATA");
//loads the BuildEndurance_data upon loading the mod
string[] readtext = File.ReadAllLines(mylocation3);
stay_up = Convert.ToBoolean(readtext[3]);
lighting_transition = Convert.ToBoolean(readtext[5]); //these array locations refer to the lines in BuildEndurance_data.json
warp = Convert.ToBoolean(readtext[7]);
//wipe_mail = Convert.ToBoolean(readtext[9]);
protect_money = Convert.ToBoolean(readtext[9]);
persistant_stamina = Convert.ToBoolean(readtext[11]);
persistant_health = Convert.ToBoolean(readtext[13]);
}
}
}
}

View File

@ -0,0 +1,20 @@
Player: Night Owl Config. Feel free to edit.
====================================================================================
Stay up to 5:50AM?: Do you wan't to stay up till 6 AM the next morning?
True
Custom Lighting Transition?: Do you want to have a lighting transition from 2AM to 5:50 AM? Setting this to false will keep the world dark until the player passes out or goes to bed.
True
Warp to collapse position?: True: Stay in the same place. False: Warp back home.
True
Keep Money?: True: Don't be charged for passing out.
True
Keep stamina when staying up? When the farmer passes out at 6, should their stamina be their stamina before collapsing?
True
Keep health when staying up? When the farmer passes out at 6, should their health be their health before collapsing?
True

13
NightOwl/ReadMe.txt Normal file
View File

@ -0,0 +1,13 @@
Stardew Valley Night Owl 1.0.0
-Initial release on 6/3/16 at 9:24 AM
Stardew Vlley Night Owl is a mod that allows players to stay up a full 24 hours instead of being restricted to 2AM.
Some of the features include
-A transitional lighting effect that lasts from 2AM to 6 AM
-Gold doesn't have to be subtracted from you when you collapse.
-Persistant health and stamina when you stay up 24 hours
-Remaining in the same place as where you collapsed!
Pleanty of features can be found in the Night Owl Config to be edited as you please.

Binary file not shown.

14
NightOwl/manifest.json Normal file
View File

@ -0,0 +1,14 @@
{
"Name": "NightOwl",
"Authour": "Alpha_Omegasis",
"Version": {
"MajorVersion": 0,
"MinorVersion": 0,
"PatchVersion": 1,
"Build": ""
},
"Description": "Stay out till 6 AM.",
"UniqueID": "4108e859-333c-4fec-a1a7-d2e18c1019fe",
"PerSaveConfigs": false,
"EntryDll": "Stardew_NightOwl.dll"
}