示例#1
0
    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);
    }
示例#2
0
    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();
    }
示例#3
0
	// Use this for initialization
	public static void Start ()
    {
        chaos = 0;
        numPsychopaths = 0;
        numKilled = 0;
        numUnhappy = 0;
        timeStart = Time.time;
        dayTime = timeOfDay.morning;
	}
示例#4
0
 // Use this for initialization
 public static void Start()
 {
     chaos          = 0;
     numPsychopaths = 0;
     numKilled      = 0;
     numUnhappy     = 0;
     timeStart      = Time.time;
     dayTime        = timeOfDay.morning;
 }
示例#5
0
    // 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;
    }
示例#6
0
    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();
    }
示例#7
0
    // 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;
        }
    }
示例#8
0
    // 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;
            }
        }
    }