void Update() { int days = World.GetDaysPassed(); timeOfDay time = World.GetTimeOfDay(); string season = mapManager.season; textMesh.text = "CHAOS: " + World.GetChaos(); textMesh.text += "\nDay " + days + ", " + time; textMesh.text += "\n" + season; // Display the quest markers foreach (GameObject npcO in World.map.npcs) { NPC npc = npcO.GetComponent <NPC>(); if (npc.hasQuest) { Vector2 npcLoc = new Vector2(npc.mapX, npc.mapY); Vector2 playerLoc = new Vector2(World.player.mapX, World.player.mapY); if (npcLoc.x != playerLoc.x || npcLoc.y != playerLoc.y) { float xPos = npcLoc.x <playerLoc.x ? 0 : npcLoc.x> playerLoc.x ? 9 : 4.5f; float yPos = xPos != 4.5f ? 4.5f : npcLoc.y <playerLoc.y ? 0 : npcLoc.y> playerLoc.y ? 9 : 4.5f; questMarker.transform.position = new Vector3(xPos, yPos, 0); questMarker.SetActive(true); return; } } } questMarker.SetActive(false); }
public TileManager tile; // tile the npc is on // Use this for initialization public void Start() { time = Time.time; timeloc = time; currentTime = timeOfDay.morning; fillInventoy(); base.Start(); }
// Use this for initialization public static void Start () { chaos = 0; numPsychopaths = 0; numKilled = 0; numUnhappy = 0; timeStart = Time.time; dayTime = timeOfDay.morning; }
// Use this for initialization public static void Start() { chaos = 0; numPsychopaths = 0; numKilled = 0; numUnhappy = 0; timeStart = Time.time; dayTime = timeOfDay.morning; }
// Use this for initialization void Start() { _tod = timeOfDay.Idle; dayCycleInSeconds = DayCycleInMinute * MINUTE; RenderSettings.skybox.SetFloat("_Blend",0); _sunScript = new Sun[sun.Length]; for(int cnt =0;cnt<sun.Length;cnt++) { Sun temp = sun[cnt].GetComponent<Sun>(); if(temp == null) { Debug.Log("Sun script not found"); sun[cnt].gameObject.AddComponent<Sun>(); } _sunScript[cnt] = temp; } _timeOfDay = 0; _degreeRotation = DEGREE_PER_SECOND * DAY/(dayCycleInSeconds); sunRise *= dayCycleInSeconds; sunSet *= dayCycleInSeconds; }
public override void OnInspectorGUI() { globalLists myGlobalLists = (globalLists)target; typeToAdd = (listType)EditorGUILayout.EnumPopup("Type to Add:", typeToAdd); switch (typeToAdd) { case listType.species: #region Add Species speciesName = EditorGUILayout.TextField("Species Name:", speciesName); speciesDesc = EditorGUILayout.TextField("Species Description:", speciesName); baseStats[4] = EditorGUILayout.IntField("Base Max HP Stat:", baseStats[4]); baseStats[5] = EditorGUILayout.IntField("Base Attack Stat:", baseStats[5]); baseStats[6] = EditorGUILayout.IntField("Base Defense Stat:", baseStats[6]); baseStats[7] = EditorGUILayout.IntField("Base Speed Stat:", baseStats[7]); overworldSprite = EditorGUILayout.ObjectField("Overworld Sprite", overworldSprite, typeof(Sprite), allowSceneObjects: false) as Sprite; speciesPortrait = EditorGUILayout.ObjectField("Species Portrait Sprite", speciesPortrait, typeof(Sprite), allowSceneObjects: false) as Sprite; EditorGUI.BeginChangeCheck(); evoNum = EditorGUILayout.DelayedIntField("Number of Evolutions:", evoNum); if (EditorGUI.EndChangeCheck()) { evos = new int[evoNum]; } if (evos != null && evos.Length > 0) { for (int i = 0; i < evos.Length; i++) { evos[i] = EditorGUILayout.IntField("Evolution " + i + ":", evos[i]); } } statReqs[4] = EditorGUILayout.IntField("Minimum Max HP:", statReqs[4]); statReqs[5] = EditorGUILayout.IntField("Minimum Attack:", statReqs[5]); statReqs[6] = EditorGUILayout.IntField("Minimum Defense:", statReqs[6]); statReqs[7] = EditorGUILayout.IntField("Minimum Speed:", statReqs[7]); decReq = EditorGUILayout.ObjectField("Required Decoration", decReq, typeof(decorationObject), allowSceneObjects: false) as decorationObject; timeReq = (timeOfDay)EditorGUILayout.EnumPopup("Time Requirement:", timeReq); levelCoefficient = EditorGUILayout.Slider("Level Coefficient:", levelCoefficient, .5f, 2f); seenMon = EditorGUILayout.ObjectField("Required Decoration", decReq, typeof(baseSpecies), allowSceneObjects: false) as baseSpecies; egg = EditorGUILayout.Toggle("Is Egg:", egg); if (egg) { hatchTime = EditorGUILayout.IntField("Hatch Time in Sec:", hatchTime); } if (overworldSprite != null && speciesPortrait != null) { if (GUILayout.Button("New Species")) { baseSpecies newSpecies = ScriptableObject.CreateInstance("baseSpecies") as baseSpecies; newSpecies.speciesNumber = myGlobalLists.speciesList.Count; newSpecies.speciesName = speciesName == "" ? "Error" : speciesName; newSpecies.speciesDesc = speciesDesc == "" ? "Error" : speciesDesc; for (int i = 0; i < 9; i++) { newSpecies.baseStats[i] = baseStats[i] < 0 ? 0: baseStats[i]; } newSpecies.overworld = overworldSprite; newSpecies.speciesPortrait = speciesPortrait; newSpecies.evolutions = new int[evoNum]; for (int i = 0; i < evoNum; i++) { newSpecies.evolutions[i] = evos[i] < 0 ? 0: evos[i]; } for (int i = 0; i < 9; i++) { newSpecies.statReqs[i] = statReqs[i] < 0 ? 0: statReqs[i]; } newSpecies.decReq = decReq; newSpecies.timeReq = (int)timeReq; newSpecies.levelCoefficient = levelCoefficient; newSpecies.seenMon = seenMon; newSpecies.egg = egg; if (egg) { newSpecies.hatchtime = hatchTime < 0? 0:hatchTime; } else { newSpecies.hatchtime = 0; } myGlobalLists.speciesList.Add(newSpecies); if (speciesName != "") { AssetDatabase.CreateAsset(newSpecies, "Assets/Monsters/" + speciesName + ".asset"); } else { AssetDatabase.CreateAsset(newSpecies, "Assets/Monsters/Error.asset"); } } } #endregion break; case listType.decoration: #region Add Decoration decName = EditorGUILayout.TextField("Decoration Name:", decName); decDescription = EditorGUILayout.TextField("Decoration Description:", decDescription); statBoosts[2] = EditorGUILayout.IntField("XP Boost:", statBoosts[2]); statBoosts[4] = EditorGUILayout.IntField("Max HP Boost:", statBoosts[4]); statBoosts[5] = EditorGUILayout.IntField("Attack Boost:", statBoosts[5]); statBoosts[6] = EditorGUILayout.IntField("Defense Boost:", statBoosts[6]); statBoosts[7] = EditorGUILayout.IntField("Speed Boost:", statBoosts[7]); statBoosts[8] = EditorGUILayout.IntField("Happiness Boost:", statBoosts[8]); decSprite = EditorGUILayout.ObjectField("Overworld Sprite", decSprite, typeof(Sprite), allowSceneObjects: false) as Sprite; if (decSprite != null) { if (GUILayout.Button("New Decoration")) { decorationObject newDecoration = ScriptableObject.CreateInstance("decorationObject") as decorationObject; newDecoration.decorationNumber = myGlobalLists.decorationList.Count; newDecoration.decName = decName == "" ? "Error" : decName; newDecoration.decDescription = decDescription == "" ? "Error" : decDescription; for (int i = 0; i < 9; i++) { newDecoration.statBoosts[i] = statBoosts[i] < 0 ? 0: statBoosts[i]; } newDecoration.decSprite = decSprite; if (decName != "") { AssetDatabase.CreateAsset(newDecoration, "Assets/Decorations/" + decName + ".asset"); } else { AssetDatabase.CreateAsset(newDecoration, "Assets/Decorations/Error.asset"); } myGlobalLists.decorationList.Add(newDecoration); } } #endregion break; case listType.none: break; } DrawDefaultInspector(); }
// Update is called once per frame void Update() { for(int cnt = 0;cnt <sun.Length;cnt++) sun[cnt].Rotate(new Vector3(_degreeRotation,0,0)*Time.deltaTime); _timeOfDay += Time.deltaTime; if(_timeOfDay > dayCycleInSeconds) _timeOfDay -= dayCycleInSeconds; // Debug.Log(_timeOfDay); if(_timeOfDay>sunRise && _timeOfDay<sunSet && RenderSettings.skybox.GetFloat("_Blend")<1) { _tod = timeOfDay.SunRise; BlendSkybox(); } else if(_timeOfDay > sunSet && RenderSettings.skybox.GetFloat("_Blend")>0) { _tod = GameTime.timeOfDay.SunSet; BlendSkybox(); } else { _tod = GameTime.timeOfDay.Idle; } }
// Timebased checking for what NPC is doing private void timeStep() { // NPC goes to work if (currentTime == timeOfDay.morning && Time.time - timeloc > movementSpeed) { // NPC wakes up asleep = false; atHome = false; timeloc = Time.time; // NPC begins walking to work if (!atWork && goTowards(workTile)) { // enter work atWork = true; } } // NPC goes home if (currentTime == timeOfDay.evening && Time.time - timeloc > movementSpeed) { // NPC stops working atWork = false; timeloc = Time.time; // NPC begins walking home if (!atHome && goTowards(homeTile)) { // enter home atHome = true; } } // NPC goes to sleep if (currentTime == timeOfDay.night) { atWork = false; timeloc = Time.time; // NPC begins walking home (if not already there) if (!atHome && goTowards(homeTile)) { // enter home and start sleeping atHome = true; asleep = true; } } // Change the time of day if (Time.time - time > timeOfDayLength * 60) { time = Time.time; if (currentTime == timeOfDay.morning) { currentTime = timeOfDay.evening; } else if (currentTime == timeOfDay.evening) { currentTime = timeOfDay.night; } else { currentTime = timeOfDay.morning; } } }