コード例 #1
0
    // Use this for initialization
    void Start()
    {
        _instance = this;
        isShowPanel = false;
        npcManager =NPCManager._instance;
        NPCDictionary = npcManager.GetNPCDctionary();
        playerState = PlayerState._instance;
        mainControllerUI = UIController._instance;

        foreach (KeyValuePair<int, GameObject> item in NPCDictionary)
        {
            item.Value.GetComponent<NPCInfomation>().CommunicationStart += CommunicationTalk;
        }

        #region UI
        containItems = transform.Find("TalkContainer").Find("Scroll View").Find("Items").gameObject;


        talkLabel = containItems.transform.Find("TalkLabel").GetComponent<UILabel>();
        shopButton = containItems.transform.Find("ShopButton").GetComponent<UIButton>();
        questButton = containItems.transform.Find("QuestButton").GetComponent<UIButton>();
        bagManagerUI = GameObject.FindGameObjectWithTag(Tags.UIRoot).transform.Find("EquepMenu").GetComponent<UIBagManager>();
        npcQuestManagerUI = GameObject.FindGameObjectWithTag(Tags.UIRoot).transform.Find("NPCQuestPanel").GetComponent<UINPCQuestManager>();
        #endregion

        gameObject.SetActive(false);
    }
コード例 #2
0
ファイル: NPCManager.cs プロジェクト: tsss-t/SimpleStory
    // Use this for initialization
    void Start()
    {
        _instance = this;
        NPCDictionary = new Dictionary<int, NPCDATA>();

        Init();
    }
コード例 #3
0
	public void Start() {

		this.tag = "NPC";
		BoxCollider2D[] cs = this.GetComponents<BoxCollider2D>();
		BoxCollider2D largest = null;
		for(int i=0;i<cs.Length;i++) {
			if((largest==null)||(cs[i].bounds.size.magnitude>largest.bounds.size.magnitude)) {
				largest = cs[i];
			}
		}
		if(largest!=null)
			largest.isTrigger = true;
		SpriteRenderer[] sr = this.GetComponentsInChildren<SpriteRenderer>();
		for(int i = 0;i<sr.Length;i++) {
			if(sr[i].gameObject.name.ToLower().StartsWith("shadow")) {
				
				sr[i].sortingLayerName = "UnderneathBuildings";
			} else
			sr[i].sortingLayerName = defaultLayer;
		}

		if(GameObject.FindGameObjectWithTag("NPCManager")!=null) {
			_npcManager = GameObject.FindGameObjectWithTag("NPCManager").GetComponent<NPCManager>();
			_npcManager.onConversationEnded += onConversationEnded;
			onConversationEnded(true);
			if(mover!=null) {
				mover.firstUpdate = false;
			}
		}
	}
コード例 #4
0
 // Use this for initialization
 void Awake()
 {
     npcManager = gameObject.AddComponent<NPCManager>();
     playerManager = gameObject.AddComponent<PlayerManager>();
     foreach (GameObject go in GameObject.FindObjectsOfType(typeof(GameObject)))
     {
         go.SendMessage("OnMasterGameLogicAdded",SendMessageOptions.DontRequireReceiver);
     }
 }
コード例 #5
0
	// Use this for initialization
	void Start () {
		if(GameObject.FindGameObjectWithTag("NPCManager")!=null) {
			_npcManager = GameObject.FindGameObjectWithTag("NPCManager").GetComponent<NPCManager>();
			_npcManager.onConversationEnded += onConversationEnded;
			onConversationEnded(true);

		}
		this.gameObject.tag = "NPC";
	}
コード例 #6
0
	// Use this for initialization
	void Start () {
		if(GameObject.FindGameObjectWithTag("NPCManager")!=null) {
			_npcManager = GameObject.FindGameObjectWithTag("NPCManager").GetComponent<NPCManager>();
		//	_npcManager.onConversationEnded += onConversationEnded;
		//	onConversationEnded();
		}
		forceAfterQuest = forceAfterQuest.Replace(" ","_");
		forceBeforeQuest = forceBeforeQuest.Replace(" ","_");
		forceWhileQuestActive = forceWhileQuestActive.Replace(" ","_");
		if(chatPositionOffsetY<=0&&chatPositionOffsetY>-3) {
			chatPositionOffsetY = -2.7f;
		}
	//	forceAfterBattle = forceAfterBattle.Replace(" ","_");
//		forceBeforeBattle = forceBeforeBattle.Replace(" ","_");
	}
コード例 #7
0
ファイル: UIQuestManager.cs プロジェクト: tsss-t/SimpleStory
    // Use this for initialization
    void Start()
    {
        isShowPanel = false;
        questShowList = new List<GameObject>();
        stepShowList = new List<GameObject>();
        playerQuest = PlayerState._instance.GetPlayerQuest();

        npcManager =NPCManager._instance;
        mainControllerUI =UIController._instance;


        containQuestGrid = transform.Find("QuestBG").Find("Scroll View").Find("Items").gameObject;
        containStepGrid = transform.Find("StepBG").Find("Scroll View").Find("Items").gameObject;
        this.gameObject.SetActive(false);
    }
コード例 #8
0
    // Use this for initialization
    void Start()
    {
        manager = FindObjectOfType<NPCManager>();

        transform.position = new Vector3(transform.position.x, 0, transform.position.z);

        SpawnDistanceScale = transform.localScale.x / 2;

        for (int i = 0; i < population; i++)
        {
            SpawnNeutralCell();
        }

        canSpawn = true;
        spawnTimer = 5.0f;
    }
コード例 #9
0
    // Use this for initialization
    void Start()
    {
        isShowPanel = false;
        playerState = PlayerState._instance;
        npcManager =NPCManager._instance;

        questDictionary = new Dictionary<int, GameObject>();
        mainControllerUI = UIController._instance;

        containQuestList = transform.Find("QuestList").Find("Scroll View").Find("Items").gameObject;
        containQuestInfo = transform.Find("QuestInfo").Find("Scroll View").Find("Items").gameObject;

        acceptButton = transform.Find("AcceptButton").gameObject;
        overButton = transform.Find("OverButton").gameObject;
        questInfoLabel = containQuestInfo.transform.Find("QuestInfoLabel").GetComponent<UILabel>();
        this.gameObject.SetActive(false);
    }
コード例 #10
0
ファイル: NPC.cs プロジェクト: onewheelstudio/TradeCraft
	void Start()
	{
		navAgent = this.GetComponent<NavMeshAgent>();

		if(navAgent != null)
		{
			navAgent.speed = walkSpeed;
		}

		if(npcManagerScript == null)
		{
			npcManagerScript = GameObject.Find ("NPC Manager").GetComponent<NPCManager>();
			npcManagerScript.AddNPC(this.gameObject);
		}

		FindHouse();
	}
コード例 #11
0
	// Use this for initialization
	void Start () {
		this.tag = "NPC";
		SpriteRenderer[] sr = this.GetComponentsInChildren<SpriteRenderer>();
		for(int i = 0;i<sr.Length;i++) {
			sr[i].sortingLayerName = "MainPlayer";
		}
		if(GameObject.FindGameObjectWithTag("NPCManager")!=null) {
			_npcManager = GameObject.FindGameObjectWithTag("NPCManager").GetComponent<NPCManager>();
			_npcManager.onConversationEnded += onConversationEnded;
			onConversationEnded(true);
		}
		if(mover!=null) {
			if(mover.enabled==false) {
			//	mover.enabled = true;
				mover.walkInDirection(new Vector3(0f,-0.01f,0f));
			//	mover.enabled = false;
			}
		}
		
	}
コード例 #12
0
ファイル: GameManager.cs プロジェクト: tegates/Warzone
    private void Initialize()
    {
        Inst = this;

        //Initializing CsDebug
        CsDebug debug = GetComponent<CsDebug>();
        debug.Initialize();

        //Initializing DBManager
        DBManager = new DBManager();
        DBManager.Initialize();

        //Initializing Event Manager
        EventManager = new EventManager();
        EventManager.Initialize();

        //Initializing NPC Manager
        NPCManager = new NPCManager();
        NPCManager.Initialize();

        //SelectedPC = GameObject.Find("HumanCharacter").GetComponent<HumanCharacter>();
        //SelectedPC.Initialize();
        PlayerControl = new PlayerControl();
        PlayerControl.Initialize();
        GameObject.Find("HumanCharacter2").GetComponent<HumanCharacter>().Initialize();
        //GameObject.Find("HumanCharacter3").GetComponent<HumanCharacter>().Initialize();

        CameraController = GameObject.Find("CameraController").GetComponent<CameraController>();
        CameraController.Initialize();

        FXManager = new FXManager();
        FXManager.Initialize(50);

        AIScheduler = new AIScheduler();
        AIScheduler.Initialize();

        StartCoroutine(DoPerSecond());
    }
コード例 #13
0
ファイル: LoadMap.cs プロジェクト: ericamccowan/ILS
        // Loading map with two player references:
        public void loadNewMap( ref AssistManager assistManager, ref AnimationManager animationManager, ref ArtManager artManager, ref DoorManager doorManager, ref Map currentMap, ref World world, ref Camera camera, ref Collision collision, ref TimerManager timerManager, ref NPCManager npcManager, ref Player player1, ref Player player2 )
        {
            // Start loadNewMap.

            // Getting the nextRoom/Map data then wiping it:
            string mapToLoad = world.nextMap;
            Vector2 nextRoomSize = world.nextRoomSize;
            Vector2 nextRoomStart = world.nextRoomStart;
            Vector2 exitPosition = world.nextExitPosition;
            bool localMultiplayer = Game1.Instance.LocalMultiplayer;
            world.resetNextMapData();

            // Resetting major classes:
            camera = new Camera();
            currentMap = new Map( );
            camera.resetSingletonData();
            collision = new Collision();

            player1.spriteAnimation.resetSingletonReferences(); // Reseting the draw variables (IE camera) for the player.
            if ( localMultiplayer )
            {
                player2.spriteAnimation.resetSingletonReferences();
            }

            animationManager = new AnimationManager( );
            artManager.tilesetList = new TilesetList();
            doorManager = new DoorManager();

            // Checking if we should initalize the asset manager with more than one player.
            if ( localMultiplayer )
            {
                assistManager = new AssistManager( ref player1, ref player2 );
            }
            else
            {
                assistManager = new AssistManager( ref player1 );
            }

            assistManager.initalizeSingletonData();
            npcManager = new NPCManager();

            // Reloading data:
            tmxLoading( ref mapToLoad, ref nextRoomSize, ref nextRoomStart, ref currentMap, ref camera, ref collision, ref assistManager, ref animationManager, ref doorManager, ref timerManager, ref npcManager, ref player1, ref player2 );
            artManager.tilesetList.loadAll( );

            // Reseting the starting position if need be:
            if ( exitPosition != Vector2.Zero )
            { // Start Exit Position if.

                // Adding the screenoffset to the position since it was not calculated when the exit position was read in.
                //player1.spriteAnimation.position = exitPosition + camera.screenOffset;
                player1.spriteAnimation.position = exitPosition;

                if ( localMultiplayer )
                {
                    //player2.spriteAnimation.position = exitPosition + camera.screenOffset;
                    player2.spriteAnimation.position = exitPosition;
                }

            } // Start Exit Position if.
            else
            { // Start exitPosition is zero else.

                player1.spriteAnimation.position = currentMap.playerOneStart;

                if ( localMultiplayer )
                {
                    player2.spriteAnimation.position = currentMap.playerTwoStart;
                }

            } // End exitPosition is zero else.
        }
コード例 #14
0
ファイル: Engine.cs プロジェクト: janPierdolnikParda/RPG
        public void Initialise()
        {
            Root = new Root();
            ConfigFile cf = new ConfigFile();
            cf.Load("Resources.cfg", "\t:=", true);

            ConfigFile.SectionIterator seci = cf.GetSectionIterator();

            while (seci.MoveNext())
            {
                ConfigFile.SettingsMultiMap settings = seci.Current;
                foreach (KeyValuePair<string, string> pair in settings)
                    ResourceGroupManager.Singleton.AddResourceLocation(pair.Value, pair.Key, seci.CurrentKey);
            }

            if (!Root.RestoreConfig())
                if (!Root.ShowConfigDialog())
                    return;

            Root.RenderSystem.SetConfigOption("VSync", "Yes");
            RenderWindow = Root.Initialise(true, "Kolejny epicki erpeg");  // @@@@@@@@@@@@@@@ Nazwa okna gry.

            ResourceGroupManager.Singleton.InitialiseAllResourceGroups();

            SceneManager = Root.CreateSceneManager(SceneType.ST_GENERIC);
            Camera = SceneManager.CreateCamera("MainCamera");
            Viewport = RenderWindow.AddViewport(Camera);
            Camera.NearClipDistance = 0.1f;
            Camera.FarClipDistance = 1000.0f;
            Camera.AspectRatio = ((float)RenderWindow.Width / (float)RenderWindow.Height);

            MOIS.ParamList pl = new MOIS.ParamList();
            IntPtr windowHnd;
            RenderWindow.GetCustomAttribute("WINDOW", out windowHnd);
            pl.Insert("WINDOW", windowHnd.ToString());

            InputManager = MOIS.InputManager.CreateInputSystem(pl);

            Keyboard = (MOIS.Keyboard)InputManager.CreateInputObject(MOIS.Type.OISKeyboard, true);
            Mouse = (MOIS.Mouse)InputManager.CreateInputObject(MOIS.Type.OISMouse, true);

            NewtonWorld = new World();
            NewtonDebugger = new Debugger(NewtonWorld);
            NewtonDebugger.Init(SceneManager);

            GameCamera = new GameCamera();
            ObjectManager = new ObjectManager();

            MaterialManager = new MaterialManager();
            MaterialManager.Initialise();

            Items = new Items();
            PrizeManager = new PrizeManager();  //////////////////// @@ Brand nju staff. Nawet trochę działa :Δ
            CharacterProfileManager = new CharacterProfileManager();
            Quests = new Quests();
            NPCManager = new NPCManager();

            Labeler = new TextLabeler(5);
            Random = new Random();
            HumanController = new HumanController();

            TypedInput = new TypedInput();

            SoundManager = new SoundManager();

            Dialog = new Dialog();
            Mysz = new MOIS.MouseState_NativePtr();
            Conversations = new Conversations();

            TriggerManager = new TriggerManager();

            Engine.Singleton.Keyboard.KeyPressed += new MOIS.KeyListener.KeyPressedHandler(TypedInput.onKeyPressed);
            Mouse.MouseReleased += new MOIS.MouseListener.MouseReleasedHandler(MouseReleased);

            IngameConsole = new IngameConsole();
            IngameConsole.Init();
            IngameConsole.AddCommand("dupa", "soundOddawajPiec");
            IngameConsole.AddCommand("tp", "ZejscieDoPiwnicy");
            IngameConsole.AddCommand("exit", "Exit", "Wychodzi z gry. Ale odkrywcze. Super. Musze sprawdzic jak sie zachowa konsola przy duzej dlugosci linii xD llllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmiiiiiiiiiiiiiiii");
            IngameConsole.AddCommand("play", "playSound", "Odtwarza dzwiek. Skladnia: play <sciezka do pliku>. Np. play other/haa.mp3");
            IngameConsole.AddCommand("map", "ChangeMap");
            IngameConsole.AddCommand("save", "SaveGame");
            IngameConsole.AddCommand("load", "LoadGame");
            IngameConsole.AddCommand("help", "ConsoleHelp");
            IngameConsole.AddCommand("h", "CommandHelp");
        }
コード例 #15
0
ファイル: Program.cs プロジェクト: XCBOSA/ForgetiveServer
        static void Main(string[] args)
        {
            __InitExceptionEventer();

            #region 主要环境初始化和硬件检查
            StartTime               = DateTime.Now;
            Console.Title           = "XCWorld Server - Forgetive";
            ItemStorage.OpenedFiles = new List <FileStream>();
            if (args.Length != 0)
            {
                Data.InitData(args[0]);
            }
            else
            {
                return;
            }
            Logger.Init();

#if !__LINUX_ARM
            CheckHardware();
#endif

            #endregion

            #region 参数处理
            if (args.Length == 1)
            {
            }
            else if (args.Length == 2)
            {
#if DEBUG
                sudoExecutionContent = args[1];
                isDebugMode          = true;
                Logger.WriteLine(LogLevel.Info, "已启用Debug模式");
#else
                Logger.WriteLine(LogLevel.Error, "正式版不允许手动设置权限");
                return;
#endif
            }
            else
            {
                Logger.WriteLine(LogLevel.Error, "仅允许添加一个具有完全权限执行体的名称");
                return;
            }

#if DEBUG
            Logger.WriteLine(LogLevel.Warning, "Forgetive Server SDK版");
            Logger.WriteLine(LogLevel.Warning, "测试版支持对应版本的 Forgetive Developer For Win10 客户端");
#endif
            if (!Environment.Is64BitProcess)
            {
                Logger.WriteLine(LogLevel.Error, "Forgetive Server 运行在32位进程下,进程仅允许最高1.5GB内存,这将导致不可恢复的错误。");
            }
            #endregion

            Logger.WriteLine("Forgetive Server 初始化网络...");

            key_device         = Data.GetTable("key", "device");
            key_banned         = Data.GetTable("key", "banned");
            key_nick           = Data.GetTable("key", "nick");
            nick_xcoin         = Data.GetTable("nick", "xcoin");
            nick_bp            = Data.GetTable("nick", "bp");
            nick_isop          = Data.GetTable("nick", "isop");
            nick_newplayerstep = Data.GetTable("nick", "newplayerstep");

            ForgetiveServer.Init();
            ItemUsage.Init();
            ItemStorage.Init();
            ServerVersion.Init();
            engine = new CommandEngine();

            assemblies = new List <Assembly>();
            assemblies.Add(Assembly.GetAssembly(typeof(Program)));
            assembliesMd5 = new List <string>();
            assembliesMd5.Add("INNEREXT");
            Logger.WriteLine(LogLevel.Info, "加载 Forgetive EXT {0}", "ForgetiveServer [Inner]");

            DirectoryInfo info = new DirectoryInfo(Data.RootPath + "/Extension");
            if (!info.Exists)
            {
                info.Create();
            }
            FileInfo[] files = info.GetFiles();
            for (int i = 0; i < files.Length; i++)
            {
                if (files[i].Extension == ".dll")
                {
                    try
                    {
                        assembliesMd5.Add(Hash(files[i].FullName));
                        Assembly assembly = Assembly.LoadFile(files[i].FullName);
                        assemblies.Add(assembly);
                    }
                    catch
                    {
                        Logger.WriteLine(LogLevel.Warning, "无法加载 {0} : 无效的 Forgetive EXT 文件", files[i].Name);
                        assembliesMd5.RemoveAt(assembliesMd5.Count - 1);
                    }
                    Logger.WriteLine(LogLevel.Info, "加载 Forgetive EXT {0}", files[i].Name);
                }
            }
            ExecutionContent.Load(assemblies.ToArray());

            List <Assembly> ass = new List <Assembly>(assemblies);
            ass.Add(Assembly.GetEntryAssembly());
            GlobalServer.Init(ass.ToArray());
            NPCManager.Init();

            TimeSpan total = DateTime.Now - StartTime;
            Logger.WriteLine(LogLevel.Default, "初始化完成({0}s),使用help查看指令列表", total.TotalSeconds);

            while (true)
            {
                string cmd = Console.ReadLine();
                engine.Execute(cmd);
            }
        }
コード例 #16
0
 public string GetSaveString(AreaManager areaManager, FollowerManager followerManager, NPCManager npcManager, BuildingManager buildingManager, BattleManager battleManager)
 {
     return(GetSaveStringEncrypted(areaManager, followerManager, npcManager, buildingManager, battleManager, true));
 }
コード例 #17
0
 private void Awake()
 {
     _intance = this;
 }
コード例 #18
0
 void Start()
 {
     npc         = NPCManager.instance;
     audio       = GetComponent <AudioSource>();
     alarmSwitch = false;
 }
コード例 #19
0
 // Use this for initialization
 void Start()
 {
     theTextBox = FindObjectOfType <TextBoxManagerXML>();
     npcManager = FindObjectOfType <NPCManager>();
 }
コード例 #20
0
ファイル: Ennemy.cs プロジェクト: PoCInnovation/Pool2018
 public Boss(GameObject go, NPCManager npcManager)
     : base(go, npcManager, Hp.Boss, Damage.CannonFodder, MovementSpeed.Slow)
 {
 }
コード例 #21
0
 private void Awake()
 {
     npcManager = this;
 }
コード例 #22
0
ファイル: Ennemy.cs プロジェクト: PoCInnovation/Pool2018
 public Runner(GameObject go, NPCManager npcManager)
     : base(go, npcManager, Hp.SmallEnnemy, Damage.CannonFodder, MovementSpeed.Fast)
 {
 }
コード例 #23
0
ファイル: Ennemy.cs プロジェクト: PoCInnovation/Pool2018
 protected Ennemy(GameObject go, NPCManager npcManager, float hp, float damage, float speed)
     : base(go, npcManager, hp, ReloadTime.Ennemy, damage, speed, ShootPrecisionMalus.ContactWeapon)
 {
 }
コード例 #24
0
ファイル: Ennemy.cs プロジェクト: PoCInnovation/Pool2018
 public CannonFodder(GameObject go, NPCManager npcManager)
     : base(go, npcManager, Hp.RegularEnnemy, Damage.CannonFodder, MovementSpeed.Normal)
 {
 }
コード例 #25
0
 public void PhysicsUpdate()
 {
     NPCManager.PhysicsUpdate();
     PedestrianManager.PhysicsUpdate();
 }
コード例 #26
0
 public NPCManager()
 {
     m_inst = this;
 }
コード例 #27
0
        public void Initialise()
        {
            Root = new Root();
            ConfigFile cf = new ConfigFile();
            cf.Load("Resources.cfg", "\t:=", true);

            ConfigFile.SectionIterator seci = cf.GetSectionIterator();

            while (seci.MoveNext())
            {
                ConfigFile.SettingsMultiMap settings = seci.Current;
                foreach (KeyValuePair<string, string> pair in settings)
                    ResourceGroupManager.Singleton.AddResourceLocation(pair.Value, pair.Key, seci.CurrentKey);
            }

            if (!Root.RestoreConfig())
                if (!Root.ShowConfigDialog())
                    return;

            Root.RenderSystem.SetConfigOption("VSync", "Yes");
            RenderWindow = Root.Initialise(true, "WorldCreator");  // @@@@@@@@@@@@@@@ Nazwa okna gry.
            ResourceGroupManager.Singleton.InitialiseAllResourceGroups();

            SceneManager = Root.CreateSceneManager(SceneType.ST_GENERIC);
            Camera = SceneManager.CreateCamera("MainCamera");
            Viewport = RenderWindow.AddViewport(Camera);
            Camera.NearClipDistance = 0.1f;
            Camera.FarClipDistance = 1000.0f;
            Camera.AspectRatio = ((float)RenderWindow.Width / (float)RenderWindow.Height);

            MOIS.ParamList pl = new MOIS.ParamList();
            IntPtr windowHnd;
            RenderWindow.GetCustomAttribute("WINDOW", out windowHnd);
            pl.Insert("WINDOW", windowHnd.ToString());

            InputManager = MOIS.InputManager.CreateInputSystem(pl);

            Keyboard = (MOIS.Keyboard)InputManager.CreateInputObject(MOIS.Type.OISKeyboard, false);
            Mouse = (MOIS.Mouse)InputManager.CreateInputObject(MOIS.Type.OISMouse, false);

            NewtonWorld = new World();
            NewtonDebugger = new Debugger(NewtonWorld);
            NewtonDebugger.Init(SceneManager);

            ObjectManager = new ObjectManager();

            MaterialManager = new MaterialManager();
            MaterialManager.Initialise();

            //CharacterProfileManager = new CharacterProfileManager();
            Items = new Items();
            //PrizeManager = new PrizeManager();  //////////////////// @@ Brand nju staff. Nawet trochę działa :Δ
            //Quests = new Quests();
            //NPCManager = new NPCManager();

            Labeler = new TextLabeler(5);

            User = new Player();

            CharacterProfileManager = new CharacterProfileManager();

            NPCManager = new NPCManager();

            HumanController = new HumanController();

            TypedInput = new TypedInput();

            //SoundManager = new SoundManager();
        }
コード例 #28
0
 void Awake()
 {
     Instance = this;
 }
コード例 #29
0
    void Start()
    {
        instance = this;

        actualizeNPCText();
        addNewNeeds(level0);
    }
コード例 #30
0
    public string GetSaveString(AreaManager areaManager, FollowerManager followerManager, NPCManager npcManager, BuildingManager buildingManager)
    {
        string data = "";

        //Bank 0
        data += "" + GetPlayerBank().GetInventory().ToString();
        //Skills 1
        data += "#" + GetPlayer().GetSkillString();
        //Inventory 2
        data += "#" + GetPlayerInventory().ToString();
        //Areas 3
        data += "#" + areaManager.SaveAreas();
        //Followers 4
        data += "#" + followerManager.ToString();
        //HP 5
        data += "#" + GetPlayer().CurrentHP.ToString();
        //ActiveFollower 6
        if (GetPlayer().activeFollower != null)
        {
            data += "#" + GetPlayer().activeFollower.id;
        }
        else
        {
            data += "#";
        }
        //Recipes 7
        data += "#";
        foreach (string s in GetPlayer().GetRecipes())
        {
            data += s + "/";
        }
        //EquippedItems 8
        data += "#";
        foreach (KeyValuePair <GameItem, int> pair in GetPlayerInventory().GetEquippedItems())
        {
            data += pair.Key.Id + "/";
        }
        //Settings 9
        data += "#";
        data += isSplitView.ToString();
        data += ",";
        data += compactBankView.ToString();
        //NPC data 10
        data += "#";
        data += npcManager.GetNPCData();
        //Sushi House Data 11
        data += "#";
        data += sushiHouseRice + "," + sushiHouseSeaweed;
        //Tannery Data 12
        data += "#";
        foreach (Building b in buildingManager.GetBuildings())
        {
            if (b.Salt > 0)
            {
                data += "" + b.ID + "," + b.Salt + "/";
            }
        }
        //Tannery Slot Data 13
        data += "#";
        foreach (Building b in buildingManager.GetBuildings())
        {
            if (b.IsTannery)
            {
                data += b.ID + ">";
                foreach (TanningSlot slot in b.TanneryItems)
                {
                    data += slot.GetString() + "_";
                }
                data += "@";
            }
        }
        //GameState.isHunting 14
        data += "#";
        data += isHunting.ToString() + ",";
        data += huntingAreaID + ",";
        data += huntingStartTime.ToString() + ",";
        data += huntingEndTime.ToString();
        data  = Encryptor.EncryptToString(data);
        return(data);
    }
コード例 #31
0
ファイル: NPCManager.cs プロジェクト: RealLucas/Dusty2
 private void OnDestroy()
 {
     _instance = null;
 }
コード例 #32
0
    public void Init(int?seed = null)
    {
        if (ApiManager.Instance != null)
        {
            FixedUpdateManager = ApiManager.Instance;
            IsAPI = true;
        }
        else
        {
            FixedUpdateManager = Instance;
            IsAPI = false;
        }

        controls = new SimulatorControls();
        controls.Enable();

        SimulationConfig config = null;

        if (Loader.Instance != null)
        {
            config = Loader.Instance.SimConfig;
        }

        var masterSeed = seed ?? config?.Seed ?? new System.Random().Next();

        RandomGenerator = new System.Random(masterSeed);

        //Calculate map bounds and limit position compression
        if (Loader.Instance != null && Loader.Instance.Network.IsClusterSimulation)
        {
            var mapBounds = CalculateMapBounds();
            //Add margin to the bounds
            mapBounds.size += Vector3.one * 50;
            ByteCompression.SetPositionBounds(mapBounds);
        }

        ManagerHolder = new GameObject("ManagerHolder");
        ManagerHolder.transform.SetParent(transform);
        BridgeMessageDispatcher = new BridgeMessageDispatcher();
        AnalysisManager         = Instantiate(analysisManagerPrefab, ManagerHolder.transform);
        AgentManager            = Instantiate(agentManagerPrefab, ManagerHolder.transform);
        CameraManager           = Instantiate(cameraManagerPrefab, ManagerHolder.transform);
        ControllableManager     = Instantiate(controllableManagerPrefab, ManagerHolder.transform);
        MapManager = Instantiate(mapManagerPrefab, ManagerHolder.transform);
        NPCManager = Instantiate(npcManagerPrefab, ManagerHolder.transform);
        NPCManager.InitRandomGenerator(RandomGenerator.Next());
        PedestrianManager = Instantiate(pedestrianManagerPrefab, ManagerHolder.transform);
        PedestrianManager.InitRandomGenerator(RandomGenerator.Next());
        EnvironmentEffectsManager = Instantiate(environmentEffectsManagerPrefab, ManagerHolder.transform);
        EnvironmentEffectsManager.InitRandomGenerator(RandomGenerator.Next());
        CustomPassManager = Instantiate(customPassManagerPrefab, ManagerHolder.transform);
        UIManager         = Instantiate(uiManagerPrefab, ManagerHolder.transform);

        if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux && Application.isEditor)
        {
            // empty
        }
        else
        {
            controls.Simulator.ToggleNPCS.performed        += ctx => NPCManager.NPCActive = !NPCManager.NPCActive;
            controls.Simulator.TogglePedestrians.performed += ctx => PedestrianManager.PedestriansActive = !PedestrianManager.PedestriansActive;
            controls.Simulator.ToggleAgent.performed       += ctx =>
            {
                if (int.TryParse(ctx.control.name, out int index))
                {
                    AgentManager.SetCurrentActiveAgent(index - 1);
                }
            };
            controls.Simulator.ToggleReset.performed      += ctx => AgentManager.ResetAgent();
            controls.Simulator.ToggleControlsUI.performed += ctx => UIManager.UIActive = !UIManager.UIActive;
        }

        if (config != null)
        {
            simulationName       = config.Name;
            clusterName          = config.ClusterName;
            mapName              = config.MapName;
            NPCManager.NPCActive = config.UseTraffic;
            PedestrianManager.PedestriansActive = config.UsePedestrians;
            if (config.Agents != null)
            {
                AgentManager.SpawnAgents(config.Agents);
            }
            apiMode     = config.ApiOnly;
            headless    = config.Headless;
            interactive = config.Interactive;
            useSeed     = config.Seed.HasValue;
            npc         = config.UseTraffic;
            pedestrian  = config.UsePedestrians;
            timeOfDay   = config.TimeOfDay.ToString("HH:mm");
            rain        = config.Rain;
            wet         = config.Wetness;
            fog         = config.Fog;
            cloud       = config.Cloudiness;
            Damage      = config.Damage;

            if (headless)
            {
                controls.Disable();
            }
        }
        InitSegmenationColors();
        WireframeBoxes = gameObject.AddComponent <WireframeBoxes>();
        if (Loader.Instance != null)
        {
            TimeManager.Initialize(Loader.Instance.Network.MessagesManager);
        }
        Sensors.Initialize();
        IsInitialized = true;
    }
コード例 #33
0
 private void Awake()
 {
     _instance = this;
     init();
 }
コード例 #34
0
 private void Start()
 {
     manager = FindObjectOfType <NPCManager>();
 }
コード例 #35
0
 public void LifeOver()
 {
     m_instance = null;
 }
コード例 #36
0
 private void Awake()
 {
     Instance = this;
 }
コード例 #37
0
ファイル: LoadMap.cs プロジェクト: ericamccowan/ILS
        public void tmxLoading( ref string mapName, ref Vector2 nextRoomSize, ref Vector2 nextRoomStart, ref Map currentMap, ref Camera camera, ref Collision collision, ref AssistManager assistManager, ref AnimationManager animationManager, ref DoorManager doorManager, ref TimerManager timerManager, ref NPCManager npcManager, ref Player player1, ref Player player2 )
        {
            // Start tmxloading Class.

            #region Setting up variables, ect.

            // Temp Map variables:
            byte row;
            byte column;
            int layerHeight;
            currentMap.layerNumber = -1; // Setting this to -1 so that the case statement will start at 0 without the need for a if statement.
            int tempLayerNumber;
            int tempTileGID;
            int tempMapWidth = 0;

            // Temp data to reduce function calls:
            int currentMapTileHeight;
            Vector2 screenOffset;

            // Temp values for Tileset and Image data:
            int tilesetOffset;
            string tilesetName;
            int tilesetWidth;
            int tilesetHeight;
            int tileWidth;
            int tileHeight;
            ulong trans;

            // Initializing object variables:

            // Basic object data:
            string tempName;
            string tempType;
            Vector2 tempPosition;
            int tempWidth;
            int tempHeight;
            bool tempHighlightAble;
            bool tempGlow;
            bool tempDraw;
            int tempLayer;
            bool tempCollidable;

            // Tileset & tileID data:
            string tempTileset;
            int tempTileID;
            int tempDestroyedTileID;
            int tempOpenTileID;
            int tempEmptyTileID;

            // Transition & Door specific data:
            string tempNextMap;
            Vector2 tempExitPosition;
            string tempExitDirection;
            Vector2 tempNextRoomSize;
            Vector2 tempNextRoomStart;
            string tempKey;
            bool tempAutoOpen;

            // Container specific data:
            bool tempIsFull;
            bool tempIsOpen;

            // Readable specific data:
            string tempConvoIndex;

            // Destroyable specific data:
            bool tempIsDestroyed;
            float tempHP;

            // Movable specific data:
            bool tempMovable;
            bool tempThrowable;

            // Switch specific data:
            string tempActivatable;

            // Actavatable specific data:
            Vector2 tempSlideEnd;
            float tempSlideTime;

            // Animation specific data:
            bool tempRunning;
            bool tempContinuous;
            int tempPlayCountMax;
            bool tempReverse;

            // NPC Specific data:
            int tempAge;
            bool tempMale;
            float tempWalkSpeed;
            float tempRunSpeed;

            #endregion

            currentMap.mapName = mapName; // Setting the map name.
            camera.currentRoomSize = nextRoomSize;
            camera.currentRoomStart = nextRoomStart;
            currentMap.currentRoomStart = nextRoomStart;

            // Default information that must be set because I am using a switch to load information:
            currentMapTileHeight = Globals.tileSize;
            screenOffset = Vector2.Zero;

            // Opening the map then reading it:
            using ( XmlReader reader = XmlReader.Create( content.RootDirectory + @"\Maps\" + mapName + ".tmx" ))

                while ( reader.Read() )
                { // Start read file while.

                    // Only detect start elements.
                    if ( reader.IsStartElement() )
                    { // Start IsStartElement if.

                        // Get element name and switch on it.
                        switch( reader.Name )
                        { // Start reader.Name switch.

                            #region Map Case.
                            case "map":

                                // Map Data attributes:
                                currentMap.mapVersion = Convert.ToSingle( reader["version"] );
                                currentMap.mapOrientation = reader["orientation"];
                                currentMap.mapWidth =  Convert.ToUInt16( reader["width"] );
                                currentMap.mapHeight = Convert.ToUInt16( reader["height"] );
                                currentMap.mapTileWidth = Convert.ToUInt16(reader["tilewidth"]);
                                currentMap.mapTileHeight = Convert.ToUInt16(reader["tileheight"]);
                                if ( currentMap.Rows.Count == 0 ) // Making sure the cell list has not been initialized yet;
                                {
                                    currentMap.initalizeCellList(); // Setting the map list to the correct size.
                                }

                                camera.resetCamera( ref nextRoomSize );

                                // Temp data to reduce function calls:
                                currentMapTileHeight = currentMap.mapTileHeight;

                                tempMapWidth = currentMap.mapWidth - 1;

                                screenOffset = camera.screenOffset;

                                collision.screenOffset = screenOffset;

                                break; // End Map Data case.
                            #endregion

                            #region Tileset Case
                            case "tileset":

                                #region Initalizing variables

                                // Initializing variables:
                                //tOffset = 0;
                                //tName = "";
                                //tWidth = 0;
                                //tHeight = 0;
                                //tsWidth = 0;
                                //tsHeight = 0;
                                //trans = 0;

                                #endregion

                                // Reading the "tileset" attributes:
                                tilesetOffset = Convert.ToUInt16(reader["firstgid"]);
                                tilesetName = reader["name"];

                                // Breaking if a tileset should not be loaded:
                                if ( tilesetName == "Animation" )
                                {
                                    break;
                                }

                                tileWidth = Convert.ToUInt16(reader["tilewidth"]);
                                tileHeight = Convert.ToUInt16(reader["tileheight"]);

                                // Moving to the "image" element:
                                reader.ReadToFollowing("image");

                                // REading the "image" attributes:
                                trans = Convert.ToUInt64(reader["trans"], 16);
                                tilesetWidth = Convert.ToUInt16(reader["width"]);
                                tilesetHeight = Convert.ToUInt16(reader["height"]);

                                // Adding the tileset and image information to the dictionary:
                                artManager.tilesetList.addTilesetToLoad( ref tilesetName, ref tilesetOffset, ref tileWidth, ref tileHeight, ref tilesetWidth, ref tilesetHeight, ref trans );

                                break; // End tileset case.
                            #endregion

                            #region Layer Case
                            case "layer":

                                #region Initalizing variables

                                // Initializing variables:
                                currentMap.layerNumber += 1;
                                tempLayerNumber = currentMap.layerNumber;
                                column = 0;
                                row = 0;
                                tileWidth = Globals.tileSize;

                                #endregion

                                switch( reader["name"] )
                                { // Start Layer validation switch.

                                    #region case List for layers (1 case per map layer)
                                    case "Ground Layer 1":
                                    case "Ground Layer 2":
                                    case "Impassable Layer":
                                    case "Upper Layer":
                                    case "Roof Layer":
                                    case "Sky Layer 1":
                                    case "Sky Layer 2":
                                    #endregion

                                    // Getting the height of this layer:
                                    layerHeight = Convert.ToUInt16( reader["height"] );

                                    while ( row < layerHeight - 0 )
                                    { // Start layer while.

                                        reader.ReadToFollowing("tile");
                                        tempTileGID = Convert.ToInt32( reader["gid"] );

                                        #region Start Layer 2 ( Collision Layer ) If.
                                        if (tempLayerNumber == 2)
                                        { // Start layer 2 if.

                                            switch (tempTileGID)
                                            { // Start tempTileGID switch.

                                                #region Do nothing (0)
                                                case 0:

                                                    break;
                                                #endregion

                                                #region Grass ( 264 )
                                                case 264:

                                                    assistManager.addGrass(new Vector2(column * tileWidth, row * tileWidth));
                                                    currentMap.Rows[row].Columns[column].layerList[tempLayerNumber] = tempTileGID;

                                                    break;
                                                #endregion

                                                #region Cut Grass ( 265 )
                                                case 265:

                                                    assistManager.addCutGrass(new Vector2(column * tileWidth, row * tileWidth));
                                                    currentMap.Rows[row].Columns[column].layerList[tempLayerNumber] = tempTileGID;

                                                    break;
                                                #endregion

                                                #region Water Cases

                                                #region Water - ShoreTop1 ( 942 )
                                                case 942:

                                                    animationManager.addWaterToRunning( "ShoreTop1", "ShoreTop1", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreTop2 ( 943 )
                                                case 943:

                                                    animationManager.addWaterToRunning( "ShoreTop2", "ShoreTop2", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShallowLeft ( 944 )
                                                case 944:

                                                    animationManager.addWaterToRunning( "ShallowLeft", "ShallowLeft", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShallowTop ( 945 )
                                                case 945:

                                                    animationManager.addWaterToRunning( "ShallowTop", "ShallowTop", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShallowRight ( 946 )
                                                case 946:

                                                    animationManager.addWaterToRunning( "ShallowRight", "ShallowRight", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreAngleLeft1 ( 975 )
                                                case 975:

                                                    animationManager.addWaterToRunning( "ShoreAngleLeft1", "ShoreAngleLeft1", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreAngleLeft2 ( 976 )
                                                case 976:

                                                    animationManager.addWaterToRunning( "ShoreAngleLeft2", "ShoreAngleLeft2", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreAngleAngleRight1 ( 974 )
                                                case 974:

                                                    animationManager.addWaterToRunning( "ShoreAngleAngleRight1", "ShoreAngleAngleRight1", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreAngleAngleRight2 ( 977 )
                                                case 977:

                                                    animationManager.addWaterToRunning( "ShoreAngleAngleRight2", "ShoreAngleAngleRight2", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreRight ( 978 )
                                                case 978:

                                                    animationManager.addWaterToRunning( "ShoreRight", "ShoreRight", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - ShoreLeft ( 1016 )
                                                case 1016:

                                                    animationManager.addWaterToRunning( "ShoreLeft", "ShoreLeft", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - Deep1 ( 1017 )
                                                case 1017:

                                                    animationManager.addWaterToRunning( "Deep1", "Deep1", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - Deep2 ( 1018 )
                                                case 1018:

                                                    animationManager.addWaterToRunning( "Deep2", "Deep2", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - Deep3 ( 1019 )
                                                case 1019:

                                                    animationManager.addWaterToRunning( "Deep3", "Deep3", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - Deepst1 ( 1020 )
                                                case 1020:

                                                    animationManager.addWaterToRunning( "Deepst1", "Deepst1", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #region Water - Deepst2 ( 1021 )
                                                case 1021:

                                                    animationManager.addWaterToRunning( "Deepst2", "Deepst2", false, false, false, new Vector2( column * tileWidth, row * tileWidth ), true, true, 0, true, 1, false );
                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = 266;

                                                    break;
                                                #endregion

                                                #endregion

                                                #region Evrything else
                                                default:

                                                    currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = tempTileGID;

                                                    break;
                                                #endregion

                                            } // End tempTileGID switch.
                                        } // End layer 2 if.
                                        #endregion
                                        else
                                        { // Start not layer 2 else.

                                            currentMap.Rows[ row ].Columns[ column ].layerList[ tempLayerNumber ] = tempTileGID;

                                        } // End not layer 2 else.

                                        column++; // Increasing the column position.

                                        if ( column > tempMapWidth ) // Checking to see if we have exceeded the total number of columns.
                                        {
                                            column = 0; // Reseting column count.
                                            row++; // Moving to the next row.
                                        }
                                    } // End layer while.

                                    break; // End of layer case's.

                                } // End Layer validation switch.

                                break; // End layer case.
                            #endregion

                            #region Object Case
                            case "object":

                                switch( reader[ "type" ] )
                                { // Start reader type case.

                                    #region Object Loading

                                    #region Object Type case List (1 case for each object):
                                    case "Object":
                                    case "Readable":
                                    case "Destroyable":
                                    case "Switch":
                                    case "Container":
                                    case "Grass":
                                    case "Decoration":
                                    #endregion

                                        #region Initalizing variables:

                                        // Basic object data:
                                            tempName = "";
                                            tempType = "";
                                            tempPosition = Vector2.Zero;
                                            tempWidth = 0;
                                            tempHeight = 0;

                                        // Other Object Data:
                                            tempActivatable = "";
                                            tempConvoIndex = "";
                                            tempDestroyedTileID = 0;
                                            tempDraw = true;
                                            tempEmptyTileID = 0;
                                            tempGlow = false;
                                            tempHighlightAble = true;
                                            tempCollidable = true;
                                            tempHP = 1.0f;
                                            tempIsDestroyed = false;
                                            tempIsFull = false;
                                            tempIsOpen = false;
                                            tempLayer = 0;
                                            tempMovable = false;
                                            tempOpenTileID = 0;
                                            tempThrowable = false;
                                            tempTileID = 0;
                                            tempTileset = "";

                                        #endregion

                                        // Reading generic object information:
                                        tempName = reader[ "name" ];
                                        tempType = reader[ "type" ];
                                        tempPosition.X = float.Parse( reader[ "x" ]);
                                        tempPosition.Y = float.Parse( reader[ "y" ]);
                                        tempWidth = Convert.ToUInt16( reader[ "width" ]);
                                        tempHeight = Convert.ToUInt16( reader[ "height" ]);

                                        // Reading the "activatable" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempActivatable = reader["value"];
                                        }

                                        // Reading the collidable element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute( "collidable" );
                                        if ( reader["value"] == "False" || reader["value"] == "false")
                                        {
                                            tempCollidable = false;
                                        }

                                        // Reading the "convoIndex" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempConvoIndex = reader["value"];
                                        }

                                        // Reading the "destroyedTileID"
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempDestroyedTileID = Convert.ToUInt16( reader[ "value" ]);
                                        }

                                        // Reading the draw element:
                                        reader.ReadToFollowing( "property" );
                                        reader.MoveToAttribute( "draw" );
                                        if ( reader[ "value" ] == "False" || reader[ "value" ] == "false" )
                                        {
                                            tempDraw = false;
                                        }

                                        // Reading the "emptyTileID"
                                        reader.ReadToFollowing( "property" );
                                        if (reader["value"] != "")
                                        {
                                            tempEmptyTileID = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the Glow element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("glow");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempGlow = true;
                                        }

                                        // Reading the HighlightAble element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("highlightAble");
                                        if ( reader["value"] == "False" || reader["value"] == "false" )
                                        {
                                            tempHighlightAble = false;
                                        }

                                        // Reading the "hp" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempHP = float.Parse(reader["value"]);
                                        }

                                        // Reading the isDestroyed" element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("isDestroyed");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempIsDestroyed = true;
                                        }

                                        // Reading the isFull element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("isFull");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempIsFull = true;
                                        }

                                        // Reading the isOpen element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("isOpen");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempIsOpen = true;
                                        }

                                        // Reading the "layer" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempLayer = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the Movable element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("movable");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempMovable = true;
                                        }

                                        // Reading the "openTileID" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempOpenTileID = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the throwable element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("throwable");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempThrowable = true;
                                        }

                                        // Reading the "tileID" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileID = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the "tileset" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileset = reader["value"];
                                        }

                                        //Adding the Destructible to the list:
                                        if (player2 == null)
                                        {
                                           assistManager.addObject( ref tempName, ref tempType, ref tempPosition, ref tempWidth, ref tempHeight, ref tempConvoIndex, ref tempDestroyedTileID, ref tempEmptyTileID, ref tempGlow, ref tempHighlightAble, ref tempCollidable, ref tempHP, ref tempIsDestroyed, ref tempIsFull, ref tempIsOpen, ref tempMovable, ref tempOpenTileID, ref tempThrowable, ref tempTileID, ref tempTileset, ref tempActivatable, ref tempDraw, ref tempLayer, ref player1);
                                        }
                                        else
                                        {
                                            assistManager.addObject( ref tempName, ref tempType, ref tempPosition, ref tempWidth, ref tempHeight, ref tempConvoIndex, ref tempDestroyedTileID, ref tempEmptyTileID, ref tempGlow, ref tempHighlightAble, ref tempCollidable, ref tempHP, ref tempIsDestroyed, ref tempIsFull, ref tempIsOpen, ref tempMovable, ref tempOpenTileID, ref tempThrowable, ref tempTileID, ref tempTileset, ref tempActivatable, ref tempDraw, ref tempLayer, ref player1, ref player2);

                                        }

                                        break;
                                    #endregion

                                    #region Starting Point
                                        case "Starting Point":

                                            #region Initalizing variables:

                                            // Temp data to reduce function calls:
                                            screenOffset = camera.screenOffset;

                                            #endregion

                                            // Reading the players starting points:
                                            if( reader[ "name" ] == "P1" )
                                            { // Start P1 starting point if.

                                                //currentMap.playerOneStart = new Vector2( float.Parse( reader["x"] ) + screenOffset.X, float.Parse( reader[ "y" ]) + screenOffset.Y );
                                                currentMap.playerOneStart = new Vector2( float.Parse( reader["x"] ), float.Parse( reader[ "y" ] ) );

                                            } // End P1 starting point if.
                                            else if( player2 != null && reader[ "name" ] == "P2" )
                                            { // Start P2 starting point else if.

                                                //currentMap.playerTwoStart = new Vector2( float.Parse( reader["x"] ) + screenOffset.X, float.Parse( reader[ "y" ] ) + screenOffset.Y );
                                                currentMap.playerTwoStart = new Vector2( float.Parse( reader["x"] ), float.Parse( reader[ "y" ] ) );

                                            } // End P2 starting point else if.

                                            break;
                                    #endregion

                                    #region Activatable

                                    case "Activatable":

                                        #region Initalizing variables:

                                        // Basic object data:
                                        tempName = "";
                                        tempType = "";
                                        tempPosition = Vector2.Zero;
                                        tempWidth = 0;
                                        tempHeight = 0;

                                        // Other Object Data:
                                        tempDraw = true;
                                        tempGlow = false;
                                        tempHighlightAble = false;
                                        tempTileID = 0;
                                        tempTileset = "";

                                        // Actavatable specific data:
                                        tempSlideEnd = Vector2.Zero;
                                        tempSlideTime = 0.0f;

                                        // Temp data to reduce function calls:
                                        currentMapTileHeight = currentMap.mapTileHeight;
                                        screenOffset = camera.screenOffset;

                                        #endregion

                                        // Reading generic object information:
                                        tempName = reader["name"];
                                        tempPosition.X = float.Parse(reader["x"]);
                                        tempPosition.Y = float.Parse(reader["y"]);
                                        tempWidth = Convert.ToUInt16(reader["width"]);
                                        tempHeight = Convert.ToUInt16(reader["height"]);

                                        // Reading the "tempType" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempType = reader["value"];
                                        }

                                        // Reading the draw element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("draw");
                                        if ( reader["value"] == "False" || reader["value"] == "false" )
                                        {
                                            tempDraw = false;
                                        }

                                        // Reading the Glow element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("glow");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempGlow = true;
                                        }
                                        else
                                        {
                                            tempGlow = false;
                                        }

                                        // Reading the HighlightAble element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("highlightAble");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempHighlightAble = true;
                                        }

                                        // Reading the "Slide End X" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            //tempSlideEnd.X = ( ( float.Parse(reader["value"]) * currentMapTileHeight ) + screenOffset.X );
                                            tempSlideEnd.X = ( (float.Parse(reader["value"]) * currentMapTileHeight) );
                                        }

                                        // Reading the "Slide End Y" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            //tempSlideEnd.Y = ( ( float.Parse(reader["value"]) * currentMapTileHeight ) + screenOffset.Y );
                                            tempSlideEnd.Y = (( float.Parse( reader["value"] ) * currentMapTileHeight) );
                                        }

                                        // Reading the "Slide Time" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempSlideTime = (float.Parse(reader["value"]) );
                                        }

                                        // Reading the "tileID" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileID = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the "tileset" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileset = reader["value"];
                                        }

                                        // Adding the Actavatable to the list:
                                        if ( player2 == null )
                                        {
                                            assistManager.addActivatable( ref tempName, ref tempType, ref tempPosition, ref tempWidth,
                                                ref tempHeight, ref tempHighlightAble, ref tempGlow, ref tempSlideTime,
                                                ref tempSlideEnd, ref tempTileset, ref tempTileID,
                                                player1 );

                                        }
                                        else
                                        {
                                            assistManager.addActivatable( ref tempName, ref tempType, ref tempPosition, ref tempWidth,
                                                ref tempHeight, ref tempHighlightAble, ref tempGlow, ref tempSlideTime,
                                                ref tempSlideEnd, ref tempTileset, ref tempTileID, player1, player2 );

                                        }

                                        break;
                                    #endregion Activatable

                                    #region Animation

                                    case "Animation":

                                        #region Initalizing variables:

                                        // Basic object data:
                                        tempName = "";
                                        tempType = "";
                                        tempPosition = Vector2.Zero;

                                        // Other Object Data:
                                        tempDraw = true;
                                        tempGlow = false;
                                        tempHighlightAble = false;
                                        tempCollidable = true;
                                        tempLayer = 0;
                                        tempTileset = "";

                                        // Animation specific data:
                                        tempReverse = false;
                                        tempRunning = false;
                                        tempContinuous = false;
                                        tempPlayCountMax = 0;

                                        // Temp data to reduce function calls:
                                        screenOffset = camera.screenOffset;

                                        #endregion

                                        // Reading generic object information:
                                        tempName = reader["name"];
                                        tempPosition.X = float.Parse( reader["x"] );
                                        tempPosition.Y = float.Parse( reader["y"] );

                                        // Reading the "Type" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempType = reader["value"];
                                        }

                                        // Reading the collidable element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("collidable");
                                        if (reader["value"] == "False" || reader["value"] == "false")
                                        {
                                            tempCollidable = false;
                                        }

                                        // Reading the continuous element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("continuous");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempContinuous = true;
                                        }

                                        // Reading the draw element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("draw");
                                        if ( reader["value"] == "False" || reader["value"] == "false" )
                                        {
                                            tempDraw = false;
                                        }

                                        // Reading the Glow element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("glow");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempGlow = true;
                                        }

                                        // Reading the HighlightAble element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("highlightAble");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempHighlightAble = true;
                                        }

                                        // Reading the "layer" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempLayer = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the "playCountMax" element:
                                        reader.ReadToFollowing("property");
                                        if ( reader["value"] != "" )
                                        {
                                            tempPlayCountMax = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the reverse element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("continuous");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempReverse = true;
                                        }

                                        // Reading the running element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("running");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempRunning = true;
                                        }

                                        // Reading the "tileset" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileset = reader["value"];
                                        }

                                        // Adding the new animation:
                                        animationManager.addAnimationToRunning( ref tempType, ref tempName, ref tempGlow, ref tempHighlightAble, tempCollidable, ref tempPosition, ref tempRunning, ref tempContinuous, ref tempPlayCountMax, ref tempLayer, ref tempDraw, ref tempReverse );

                                        break;
                                    #endregion Animation

                                    #region Doors

                                    case "Door":

                                        #region Initalizing variables:

                                        // Basic object data:
                                        tempName = "";
                                        tempType = "";
                                        tempPosition = Vector2.Zero;

                                        // Other Object Data:
                                        tempDraw = true;
                                        tempExitPosition = Vector2.Zero;
                                        tempExitDirection = "";
                                        tempNextRoomSize = Vector2.Zero;
                                        tempNextRoomStart = Vector2.Zero;
                                        tempGlow = false;
                                        tempHighlightAble = false;
                                        tempHP = 1.0f;
                                        tempIsOpen = false;
                                        tempLayer = 0;
                                        tempNextMap = "";
                                        tempTileset = "";
                                        tempTileID = 0;
                                        tempReverse = false;
                                        tempAutoOpen = false;

                                        // Temp data to reduce function calls:
                                        screenOffset = camera.screenOffset;

                                        // Door Specific data:
                                        tempKey = "";

                                        #endregion

                                        // Reading generic object information:
                                        tempName = reader["name"];
                                        tempPosition.X = float.Parse(reader["x"]);
                                        tempPosition.Y = float.Parse(reader["y"]);

                                        // Reading the "Type" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempType = reader["value"];
                                        }

                                        // Reading the draw element:
                                        reader.ReadToFollowing( "property" );
                                        reader.MoveToAttribute( "draw" );
                                        if ( reader[ "value" ] == "True" || reader[ "value" ] == "true" )
                                        {
                                            tempAutoOpen = true;
                                        }

                                        // Reading the draw element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("draw");
                                        if ( reader["value"] == "False" || reader["value"] == "false" )
                                        {
                                            tempDraw = false;
                                        }

                                        // Reading the "exitDirection" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempExitDirection = reader["value"];
                                        }

                                        // Reading the "Exit X" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempExitPosition.X = ( float.Parse(reader["value"]) * currentMapTileHeight );
                                        }

                                        // Reading the "Exit Y" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempExitPosition.Y = ( float.Parse(reader["value"]) * currentMapTileHeight );
                                        }

                                        // Reading the Glow element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("glow");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempGlow = true;
                                        }

                                        // Reading the HighlightAble element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("highlightAble");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempHighlightAble = true;
                                        }

                                        // Reading the "hp" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempHP = float.Parse(reader["value"]);
                                        }

                                        // Reading the isOpen element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("isOpen");
                                        if ( reader["value"] == "True" || reader["value"] == "true" )
                                        {
                                            tempIsOpen = true;
                                        }

                                        // Reading the "key" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempKey = reader["value"];
                                        }

                                        // Reading the "layer" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempLayer = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the "nextMap" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempNextMap = reader["value"];
                                        }

                                        // Reading the "roomSizeX" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempNextRoomSize.X = ( float.Parse(reader["value"]) * currentMapTileHeight );
                                        }

                                        // Reading the "roomSizeY" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempNextRoomSize.Y = ( float.Parse(reader["value"]) * currentMapTileHeight );
                                        }

                                        // Reading the "roomStartX" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempNextRoomStart.X = (float.Parse(reader["value"]) * currentMapTileHeight);
                                        }

                                        // Reading the "roomStartY" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempNextRoomStart.Y = (float.Parse(reader["value"]) * currentMapTileHeight);
                                        }

                                        // Reading the "tileID" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileID = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the "tileset" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempTileset = reader["value"];
                                        }

                                        doorManager.addDoor( ref collision, ref tempName, ref tempType, ref tempAutoOpen, ref tempTileID, ref tempPosition, ref tempIsOpen, ref tempKey, ref tempGlow, ref tempHighlightAble, ref tempHP, ref tempTileset, ref tempDraw, ref tempLayer, ref tempNextMap, ref tempExitPosition, ref tempExitDirection, ref tempNextRoomStart, ref tempNextRoomSize, ref player1 );

                                        break;

                                    #endregion

                                    #region NPC

                                    case "NPC":

                                        #region Initalizing variables:

                                        // Basic object data:
                                        tempName = "";
                                        tempType = "";
                                        tempPosition = Vector2.Zero;

                                        // Other Object Data:
                                        tempConvoIndex = "";
                                        tempHP = 1.0f;

                                        // NPC specific data:
                                        tempAge = 0;
                                        tempMale = true;
                                        tempWalkSpeed = 200.0f;
                                        tempRunSpeed = 350.0f;

                                        // Temp data to reduce function calls:
                                        screenOffset = camera.screenOffset;

                                        #endregion

                                        // Reading generic object information:
                                        tempName = reader["name"];
                                        tempPosition.X = float.Parse(reader["x"]);
                                        tempPosition.Y = float.Parse(reader["y"]);

                                        // Reading the "Type" element:
                                        reader.ReadToFollowing( "property" );
                                        if (reader[ "value" ] != "" )
                                        {
                                            tempType = reader[ "value" ];
                                        }

                                        // Reading the "age" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempAge = Convert.ToUInt16(reader["value"]);
                                        }

                                        // Reading the "convoIndex" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempConvoIndex = reader["value"];
                                        }

                                        // Reading the "hp" element:
                                        reader.ReadToFollowing("property");
                                        if (reader["value"] != "")
                                        {
                                            tempHP = float.Parse(reader["value"]);
                                        }

                                        // Reading the male element:
                                        reader.ReadToFollowing("property");
                                        reader.MoveToAttribute("male");
                                        if ( reader["value"] == "False" || reader["value"] == "false" )
                                        {
                                            tempMale = false;
                                        }

                                        // Reading the "runSpeed" element:
                                        reader.ReadToFollowing("property");
                                        if ( reader["value"] != "" )
                                        {
                                            tempRunSpeed = float.Parse(reader["value"]);
                                        }

                                        // Reading the "walkSpeed" element:
                                        reader.ReadToFollowing("property");
                                        if ( reader["value"] != "" )
                                        {
                                            tempWalkSpeed = float.Parse(reader["value"]);
                                        }

                                        // Adding the new NPC:
                                        npcManager.addNPC( tempType, tempName, tempAge, tempMale, tempHP, tempConvoIndex, tempWalkSpeed, tempRunSpeed, tempPosition );

                                        break;

                                    #endregion

                                    #region Collision Object

                                    case "CollisionObject":

                                        #region Initalizing variables:

                                        // Basic object data:
                                        tempName = "";
                                        tempPosition = Vector2.Zero;
                                        tempWidth = 0;
                                        tempHeight = 0;

                                        // Temp data to reduce function calls:
                                        screenOffset = camera.screenOffset;

                                        #endregion

                                        // Reading generic collision object information:
                                        tempName = reader["name"];
                                        tempPosition.X = float.Parse(reader["x"]);
                                        tempPosition.Y = float.Parse(reader["y"]);
                                        tempWidth = Convert.ToUInt16(reader["width"]);
                                        tempHeight = Convert.ToUInt16(reader["height"]);

                                        // Adding the new NPC:
                                        assistManager.addCollisionObject( ref tempName, ref tempPosition, ref tempWidth, ref tempHeight, ref player1 );

                                        break;

                                    #endregion

                                } // End reader type case.

                                break; // End object group

                            #endregion

                        } // End reader.name switch.
                    } // End IsStartElement if.
                } // End read file while.
        }
コード例 #38
0
	public void OnDestroy() {
		if(_npcManager!=null) 
			_npcManager.onConversationEnded -= onConversationEnded;
		_npcManager = null;
	}
コード例 #39
0
 public ChaseState(NPCManager npcManager, CollisionAvoidance avoidObstacles)
 {
     NpcManager     = npcManager;
     _playerData    = Indestructibles.Player.GetComponent <PlayerDataManager>().PlayerData;
     AvoidObstacles = avoidObstacles;
 }
コード例 #40
0
	// Use this for initialization
	void Start () {
		REF = this;
		CONVO_OPEN = false;
	}
コード例 #41
0
    public void Init(int?seed = null)
    {
        if (ApiManager.Instance != null)
        {
            FixedUpdateManager = ApiManager.Instance;
            IsAPI = true;
        }
        else
        {
            FixedUpdateManager = Instance;
            IsAPI = false;
        }

        controls = new SimulatorControls();
        controls.Enable();

        var config = Loader.Instance?.SimConfig;

        var masterSeed = seed ?? config?.Seed ?? new System.Random().Next();

        System.Random rand = new System.Random(masterSeed);

        AgentManager  = Instantiate(agentManagerPrefab, transform);
        CameraManager = Instantiate(cameraManagerPrefab, transform);
        MapManager    = Instantiate(mapManagerPrefab, transform);
        NPCManager    = Instantiate(npcManagerPrefab, transform);
        NPCManager.InitRandomGenerator(rand.Next());
        PedestrianManager = Instantiate(pedestrianManagerPrefab, transform);
        PedestrianManager.InitRandomGenerator(rand.Next());
        EnvironmentEffectsManager = Instantiate(environmentEffectsManagerPrefab, transform);
        EnvironmentEffectsManager.InitRandomGenerator(rand.Next());
        UIManager = Instantiate(uiManagerPrefab, transform);

        if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux && Application.isEditor)
        {
            // empty
        }
        else
        {
            controls.Simulator.ToggleNPCS.performed        += ctx => NPCManager.NPCActive = !NPCManager.NPCActive;
            controls.Simulator.TogglePedestrians.performed += ctx => PedestrianManager.PedestriansActive = !PedestrianManager.PedestriansActive;
            controls.Simulator.ToggleAgent.performed       += ctx =>
            {
                if (int.TryParse(ctx.control.name, out int index))
                {
                    AgentManager.SetCurrentActiveAgent(index - 1);
                }
            };
            controls.Simulator.ToggleReset.performed      += ctx => AgentManager.ResetAgent();
            controls.Simulator.ToggleControlsUI.performed += ctx => UIManager.UIActive = !UIManager.UIActive;
        }

        if (config != null)
        {
            simulationName       = config.Name;
            clusterName          = config.ClusterName;
            mapName              = config.MapName;
            NPCManager.NPCActive = config.UseTraffic;
            PedestrianManager.PedestriansActive = config.UsePedestrians;
            if (config.Agents != null)
            {
                AgentManager.SpawnAgents(config.Agents);
            }
            apiMode     = config.ApiOnly;
            headless    = config.Headless;
            interactive = config.Interactive;
            useSeed     = config.Seed.HasValue;
            npc         = config.UseTraffic;
            pedestrian  = config.UsePedestrians;
            timeOfDay   = config.TimeOfDay.ToString("HH:mm");
            rain        = config.Rain;
            wet         = config.Wetness;
            fog         = config.Fog;
            cloud       = config.Cloudiness;

            if (headless)
            {
                controls.Disable();
            }

            if (config.Interactive)
            {
                SetTimeScale(0.0f);
            }
        }
        SIM.APIOnly = apiMode;
        SIM.LogSimulation(SIM.Simulation.SimulationStart, simulationName);
        SIM.LogSimulation(SIM.Simulation.ClusterNameStart, clusterName);
        SIM.LogSimulation(SIM.Simulation.MapStart, string.IsNullOrEmpty(mapName) ? UnityEngine.SceneManagement.SceneManager.GetActiveScene().name : mapName);
        SIM.LogSimulation(SIM.Simulation.HeadlessModeStart, state: headless);
        SIM.LogSimulation(SIM.Simulation.InteractiveModeStart, state: interactive);
        SIM.LogSimulation(SIM.Simulation.UsePredefinedSeedStart, state: useSeed);
        SIM.LogSimulation(SIM.Simulation.NPCStart, state: npc);
        SIM.LogSimulation(SIM.Simulation.RandomPedestrianStart, state: pedestrian);
        SIM.LogSimulation(SIM.Simulation.TimeOfDayStart, timeOfDay == "" ? string.Format("{0:hh}:{0:mm}", TimeSpan.FromHours(EnvironmentEffectsManager.currentTimeOfDay)) : timeOfDay);
        SIM.LogSimulation(SIM.Simulation.RainStart, rain == 0f ? EnvironmentEffectsManager.rain.ToString() : rain.ToString());
        SIM.LogSimulation(SIM.Simulation.WetnessStart, wet == 0f ? EnvironmentEffectsManager.wet.ToString() : wet.ToString());
        SIM.LogSimulation(SIM.Simulation.FogStart, fog == 0f ? EnvironmentEffectsManager.fog.ToString() : fog.ToString());
        SIM.LogSimulation(SIM.Simulation.CloudinessStart, cloud == 0f ? EnvironmentEffectsManager.cloud.ToString() : cloud.ToString());
        InitSemanticTags();
        WireframeBoxes = gameObject.AddComponent <WireframeBoxes>();
    }
コード例 #42
0
ファイル: HumanoidNPC.cs プロジェクト: Predatorie/QuestLike
 public HumanoidNPC(string name, string[] ids) : base(name, ids)
 {
     dialogueManager = new DialogueManager(this);
     npcManager      = new NPCManager(this);
 }
コード例 #43
0
 private void Awake()
 {
     active = this;
 }
コード例 #44
0
 // Start is called before the first frame update
 void Start()
 {
     manager = new NPCManager();
 }
コード例 #45
0
    void Start()
    {
        manager = GameObject.Find("Main Camera").GetComponent<NPCManager>();

        characterController = GetComponent<CharacterController>();
        //weaponText = canvas.GetComponentInChildren<Text>();

        shield = gameObject.GetComponentInChildren<ShieldScript>();
        laser = gameObject.GetComponentInChildren<LaserScript>();
        charge = gameObject.GetComponentInChildren<ChargeScript>();
        bomb = gameObject.GetComponentInChildren<BombScript>();

        laserSound = gameObject.GetComponent<AudioSource>();

        cameraScript = GameObject.Find("Main Camera").GetComponent<CameraFollow>();

        futurePosition = GetComponentInChildren<FuturePositionScript>().transform;

        if (Input.GetJoystickNames().Length > 0)
        {
            isControllerConnected = true;
        }

        transform.position = spawnPoint;

        if (GameObject.Find("PlayerUI"))
        {
            ui = GameObject.Find("PlayerUI").GetComponent<PlayerUI>();
        }
    }
コード例 #46
0
ファイル: GameState.cs プロジェクト: nathanb01/Quepland
    public string GetSaveString(AreaManager areaManager, FollowerManager followerManager, NPCManager npcManager, BuildingManager buildingManager)
    {
        int    pos  = 0;
        string data = "";

        try
        {
            //Bank 0
            data += "" + GetPlayerBank().GetInventory().ToString();
            pos++;
            //Skills 1
            data += "#" + GetPlayer().GetSkillString();
            pos++;
            //Inventory 2
            data += "#" + GetPlayerInventory().ToString();
            pos++;
            //Areas 3
            data += "#" + areaManager.SaveAreas();
            pos++;
            //Followers 4
            data += "#" + followerManager.ToString();
            pos++;
            //HP 5
            data += "#" + GetPlayer().CurrentHP.ToString();
            pos++;
            //ActiveFollower 6
            if (GetPlayer().activeFollower != null)
            {
                data += "#" + GetPlayer().activeFollower.id;
            }
            else
            {
                data += "#";
            }
            pos++;
            //Recipes 7
            data += "#";
            foreach (string s in GetPlayer().GetRecipes())
            {
                data += s + "/";
            }
            pos++;
            //EquippedItems 8
            data += "#";
            foreach (KeyValuePair <GameItem, int> pair in GetPlayerInventory().GetEquippedItems())
            {
                data += pair.Key.Id + "/";
            }
            pos++;
            //Settings 9
            data += "#";
            data += isSplitView.ToString();
            data += ",";
            data += compactBankView.ToString();
            data += ",";
            data += expensiveItemThreshold;
            pos++;
            //NPC data 10
            data += "#";
            data += npcManager.GetNPCData();
            pos++;
            //Sushi House Data 11
            data += "#";
            data += sushiHouseRice + "," + sushiHouseSeaweed;
            pos++;
            //Tannery Data 12
            data += "#";
            foreach (Building b in buildingManager.GetBuildings())
            {
                if (b.Salt > 0)
                {
                    data += "" + b.ID + "," + b.Salt + "/";
                }
            }
            pos++;
            //Tannery Slot Data 13
            data += "#";
            foreach (Building b in buildingManager.GetBuildings())
            {
                if (b.IsTannery)
                {
                    data += b.ID + ">";
                    foreach (TanningSlot slot in b.TanneryItems)
                    {
                        data += slot.GetString() + "_";
                    }
                    data += "@";
                }
            }
            pos++;
            //GameState.isHunting 14
            data += "#";
            data += isHunting.ToString() + ",";
            data += huntingAreaID + ",";
            data += huntingStartTime.ToString() + ",";
            data += huntingEndTime.ToString();
            //Bank Tabs 15
            data += "#";
            data += GetPlayerBank().GetTabsString();
            data  = Encryptor.EncryptToString(data);
            pos++;
        }
        catch
        {
            data = "Failed to generate save file. Please contact the developer to let him know he messed up. (Error line:" + pos + ")";
        }
        return(data);
    }
コード例 #47
0
ファイル: GameManager.cs プロジェクト: EladAbramov/PolyWars
 // Start is called before the first frame update
 private void Start()
 {
     npcMgr   = gameObject.GetComponent <NPCManager>();
     cactiMgr = gameObject.GetComponent <CactiManager>();
 }
コード例 #48
0
    private void Initialize()
    {
        Inst      = this;
        Constants = transform.GetComponent <Constants>();
        Constants.Initialize();
        MainCamera = Camera.main;
        CameraController.Initialize();

        DBManager = new DBManager();
        DBManager.Initialize();

        SaveGameManager = new SaveGameManager();
        LevelAnchor     = GameObject.FindObjectOfType <LevelAnchor>();

        if (LevelAnchor == null)
        {
            GameObject o = GameObject.Instantiate(Resources.Load("LevelAnchor")) as GameObject;
            LevelAnchor = o.GetComponent <LevelAnchor>();
        }

        MaterialManager = new MaterialManager();
        MaterialManager.Initialize();

        SoundManager = new SoundManager();
        SoundManager.Initialize();

        ItemManager = new ItemManager();
        ItemManager.Initialize();

        EconomyManager = new EconomyManager();

        if (SceneType == SceneType.Space)
        {
            Debug.Log("Loading space scene");


            NPCManager = new NPCManager();
            NPCManager.Initialize();

            UIManager = new UIManager();


            CursorManager = new CursorManager();
            CursorManager.Initialize();

            PlayerProgress = new PlayerProgress();
            PlayerProgress.Initialize();

            PlayerControl = new PlayerControl();
            PlayerControl.Initialize();

            WorldManager = new WorldManager();
            WorldManager.PreInitialize();



            //temporarily spawn player at a station to undock
            //StationBase station = GameObject.Find("PlanetColombiaLanding").GetComponent<StationBase>();
            //station.Undock(PlayerControl.PlayerShip);

            //check if there's anchor save
            StarSystem system = null;
            if (LevelAnchor != null && !LevelAnchor.IsNewGame)
            {
                //load system from anchor save
                Debug.Log("Loading from anchor!");
                system = DBManager.XMLParserWorld.GenerateSystemScene(LevelAnchor.SpawnSystem);
                SaveGameManager.GetSave(LevelAnchor.ProfileName);
            }
            else if (LevelAnchor.IsNewGame)
            {
                //load a new game
                SaveGameManager.LoadNewGameInSpace();
                system = DBManager.XMLParserWorld.GenerateSystemScene(GameManager.Inst.PlayerProgress.SpawnSystemID);
            }


            WorldManager.CurrentSystem = system;
            WorldManager.InitializeSpace();

            EconomyManager.Initialize();

            if (LevelAnchor != null && !LevelAnchor.IsNewGame)
            {
                SaveGameManager.LoadSaveInSpace();
            }

            Debug.Log("About to create the player");
            PlayerControl.CreatePlayerParty();
            PlayerControl.LoadPlayerShip();

            UIManager.Initialize();

            if (LevelAnchor != null && !LevelAnchor.IsNewGame)
            {
                PlayerControl.SpawnPlayer();
            }

            LevelAnchor.IsNewGame = false;
        }
        else if (SceneType == SceneType.SpaceTest)
        {
            NPCManager = new NPCManager();
            NPCManager.Initialize();

            UIManager = new UIManager();
            //UIManager.Initialize();

            CursorManager = new CursorManager();
            CursorManager.Initialize();

            PlayerControl = new PlayerControl();
            PlayerControl.Initialize();

            WorldManager = new WorldManager();

            //WorldManager.Initialize();

            /*
             * GameObject [] npcs = GameObject.FindGameObjectsWithTag("NPC");
             * foreach(GameObject o in npcs)
             * {
             *      AI ai = o.GetComponent<AI>();
             *      ai.Initialize();
             *      NPCManager.AddExistingShip(ai.MyShip);
             * }
             */
            //temporarily spawn player at a station to undock
            //StationBase station = GameObject.Find("PlanetColombiaLanding").GetComponent<StationBase>();
            //station.Undock(PlayerControl.PlayerShip);
        }
        else if (SceneType == SceneType.Station)
        {
            UIManager = new UIManager();
            UIManager.Initialize();

            PlayerProgress = new PlayerProgress();
            PlayerProgress.Initialize();

            WorldManager = new WorldManager();
            WorldManager.PreInitialize();
            WorldManager.InitializeDocked();

            EconomyManager.Initialize();

            NPCManager = new NPCManager();
            NPCManager.InitializeDocked();

            if (LevelAnchor != null && !LevelAnchor.IsNewGame)
            {
                SaveGameManager.GetSave(LevelAnchor.ProfileName);
                SaveGameManager.LoadSaveInStation();
            }
            else if (LevelAnchor.IsNewGame)
            {
                SaveGameManager.LoadNewGameInStation();
            }

            LevelAnchor.IsNewGame = false;
        }
    }
コード例 #49
0
ファイル: NPCManager.cs プロジェクト: KithM/Unity2D-Horizon
 void Awake()
 {
     current = this;
 }
コード例 #50
0
    public string GetSaveStringEncrypted(AreaManager areaManager, FollowerManager followerManager, NPCManager npcManager, BuildingManager buildingManager, BattleManager battleManager, bool encrypt)
    {
        int    pos  = 0;
        string data = "";

        //Bank 0
        data += "" + GetPlayerBank().GetInventory().ToString();
        pos++;
        //Skills 1
        data += "#" + GetPlayer().GetSkillString();
        pos++;
        //Inventory 2
        data += "#" + GetPlayerInventory().ToStringSorted();
        pos++;
        //Areas 3
        data += "#" + areaManager.SaveAreas();
        pos++;
        //Followers 4
        data += "#" + followerManager.ToString();
        pos++;
        //HP 5
        data += "#" + GetPlayer().CurrentHP.ToString();
        pos++;
        //ActiveFollower 6
        if (GetPlayer().activeFollower != null)
        {
            data += "#" + GetPlayer().activeFollower.id;
        }
        else
        {
            data += "#";
        }
        pos++;
        //Recipes 7
        data += "#";

        /*foreach (string s in GetPlayer().GetRecipes())
         * {
         *  data += s + "/";
         * }*/
        pos++;
        //EquippedItems 8
        data += "#";
        foreach (KeyValuePair <GameItem, int> pair in GetPlayerInventory().GetEquippedItems())
        {
            data += pair.Key.Id + "/";
        }
        pos++;
        //Settings 9
        data += "#";
        data += isSplitView.ToString();
        data += ",";
        data += compactBankView.ToString();
        data += ",";
        data += expensiveItemThreshold;
        data += ",";
        data += totalKills;
        data += ",";
        data += PetShopUnlocked.ToString();
        data += ",";
        data += autoBuySushiSupplies.ToString();
        data += ",";
        data += totalCoinsEarned;
        data += ",";
        data += totalDeaths;
        data += ",";
        data += submitHighScores.ToString();
        pos++;
        //NPC data 10
        data += "#";
        data += npcManager.GetNPCData();
        pos++;
        //Sushi House Data 11
        data += "#";
        data += sushiHouseRice + "," + sushiHouseSeaweed;
        pos++;
        //Tannery Data 12
        data += "#";
        foreach (Building b in buildingManager.GetBuildings())
        {
            if (b.Salt > 0)
            {
                data += "" + b.ID + "," + b.Salt + "/";
            }
        }
        pos++;
        //Tannery Slot Data 13
        data += "#";
        foreach (Building b in buildingManager.GetBuildings())
        {
            if (b.IsTannery)
            {
                data += b.ID + ">";
                foreach (TanningSlot slot in b.TanneryItems)
                {
                    data += slot.GetString() + "_";
                }
                data += "@";
            }
        }
        pos++;
        //GameState.isHunting 14
        data += "#";
        data += isHunting.ToString() + ",";
        data += huntingAreaID + ",";
        data += huntingStartTime.ToString() + ",";
        data += huntingEndTime.ToString();
        pos++;
        //Bank Tabs 15
        data += "#";
        data += GetPlayerBank().GetTabsString();
        pos++;
        //Pets 16
        data += "#";
        data += GetPlayer().GetPetString();
        pos++;
        //KC 17
        data += "#";
        data += GetKCString();
        pos++;
        //Dojos 18
        data += "#";
        data += battleManager.GetDojoSaveData();
        pos++;
        if (encrypt)
        {
            data = Encryptor.EncryptToString(data);
        }

        return(data);
    }
コード例 #51
0
	void Awake()
	{
		_instance = this;
		Init();
	}
コード例 #52
0
ファイル: GameManager.cs プロジェクト: rotorist/Warzone
	private void Initialize()
	{
		

		Inst = this;

		//Initializing CsDebug
		CsDebug debug = GetComponent<CsDebug>();
		debug.Initialize();

		//Initializing DBManager
		DBManager = new DBManager();
		DBManager.Initialize();

		//Initializing Event Manager
		EventManager = new EventManager();
		EventManager.Initialize();

		ItemManager = new ItemManager();
		ItemManager.Initialize();

		//Initializing NPC Manager
		NPCManager = new NPCManager();
		NPCManager.Initialize();



		PlayerControl = new PlayerControl();
		PlayerControl.Initialize();



		UIManager = new UIManager();
		UIManager.Initialize();


		MutantCharacter mutant1 = GameObject.Find("MutantCharacter").GetComponent<MutantCharacter>();
		mutant1.Initialize();
		mutant1.MyStatus.MaxHealth = 200;
		mutant1.MyStatus.Health = 200;
		mutant1.MyAI.BlackBoard.PatrolLoc = new Vector3(70, 0, -54);
		mutant1.MyAI.BlackBoard.PatrolRange = new Vector3(10, 5, 10);
		mutant1.MyAI.BlackBoard.CombatRange = new Vector3(20, 5, 20);
		mutant1.MyAI.BlackBoard.HasPatrolInfo = true;




		//HumanCharacter enemy1 = GameObject.Find("HumanCharacter2").GetComponent<HumanCharacter>();
		HumanCharacter enemy2 = GameObject.Find("HumanCharacter4").GetComponent<HumanCharacter>();
		//HumanCharacter enemy3 = GameObject.Find("HumanCharacter5").GetComponent<HumanCharacter>();
		//HumanCharacter enemy4 = GameObject.Find("HumanCharacter6").GetComponent<HumanCharacter>();

		AISquad enemySquad = new AISquad();
		//enemySquad.Members.Add(enemy1);
		enemySquad.Members.Add(enemy2);
		//enemySquad.Members.Add(enemy3);
		//enemySquad.Members.Add(enemy4);

		/*
		enemy1.Initialize();
		enemy1.MyAI.Squad = enemySquad;
		ItemManager.LoadNPCInventory(enemy1.Inventory);
		enemy1.MyAI.WeaponSystem.LoadWeaponsFromInventory();
		*/
		enemy2.Initialize();
		enemy2.MyAI.Squad = enemySquad;
		ItemManager.LoadNPCInventory(enemy2.Inventory);
		enemy2.MyAI.WeaponSystem.LoadWeaponsFromInventory();

		/*
		enemy3.Initialize();
		enemy3.MyAI.Squad = enemySquad;
		ItemManager.LoadNPCInventory(enemy3.Inventory);
		enemy3.MyAI.WeaponSystem.LoadWeaponsFromInventory();


		enemy4.Initialize();
		enemy4.MyAI.Squad = enemySquad;
		ItemManager.LoadNPCInventory(enemy4.Inventory);
		enemy4.MyAI.WeaponSystem.LoadWeaponsFromInventory();
		*/

		//enemy1.MyStatus.MaxHealth = 160;
		//enemy1.MyStatus.Health = 160;
		enemy2.MyStatus.MaxHealth = 100;
		enemy2.MyStatus.Health = 100;

		/*
		enemy3.MyStatus.MaxHealth = 80;
		enemy3.MyStatus.Health = 80;

		enemy4.MyStatus.MaxHealth = 100;
		enemy4.MyStatus.Health = 100;
		*/
		enemySquad.IssueSquadCommand();


		CameraController = GameObject.Find("CameraController").GetComponent<CameraController>();
		CameraController.Initialize();

		CameraShaker = CameraController.GetComponent<CameraShaker>();
		CameraShaker.Initialize();

		FXManager = new FXManager();
		FXManager.Initialize(50);

		AIScheduler = new AIScheduler();
		AIScheduler.Initialize();



		CursorManager = new CursorManager();
		CursorManager.Initialize();

		StartCoroutine(DoPerSecond());
		StartCoroutine(DoPerHalfSecond());
	}