示例#1
0
 public static void ClearEvents()
 {
     if (Instance == null)
     {
         Instance = new COTFEvents();
     }
     try
     {
         var i      = Instance.GetType();
         var fields = i.GetFields();
         foreach (var item in fields)
         {
             var field = item.GetValue(Instance);
             if (field is UnityEvent)
             {
                 var fieldUE = (field as UnityEvent);
                 fieldUE.RemoveAllListeners();
                 //fieldUE.AddListener(new UnityAction(() => Debug.Log("Event triggered: " + item.Name)));
             }
             else if (field is HitOtherEvent)
             {
                 var fieldUE = (field as HitOtherEvent);
                 fieldUE.RemoveAllListeners();
                 //fieldUE.AddListener(new UnityAction<HitOtherParams>((x) => Debug.Log("Event triggered: " + item.Name)));
             }
             else if (field is GotHitEvent)
             {
                 var fieldUE = (field as GotHitEvent);
                 fieldUE.RemoveAllListeners();
                 //fieldUE.AddListener(new UnityAction<GotHitParams>((x) => Debug.Log("Event triggered: " + item.Name)));
             }
             else if (field is GotHitByEnemyEvent)
             {
                 var fieldUE = (field as GotHitByEnemyEvent);
                 fieldUE.RemoveAllListeners();
                 //fieldUE.AddListener(new UnityAction<GotHitByEnemyParams>((x) => Debug.Log("Event triggered: " + item.Name)));
             }
             else if (field is HeadshotEvent)
             {
                 var fieldUE = (field as HeadshotEvent);
                 fieldUE.RemoveAllListeners();
                 //fieldUE.AddListener(new UnityAction<HeadshotParams>((x) => Debug.Log("Event triggered: " + item.Name)));
             }
         }
     }
     catch (Exception e)
     {
         ModAPI.Log.Write("Exception while resetting events " + e.Message);
     }
 }
示例#2
0
        public static void Initialize()
        {
            try
            {
                ModSettings.Version = ModAPI.Mods.LoadedMods["ChampionsOfForest"].Version;
                if (SteamDSConfig.isDedicated)
                {
                    ModAPI.Log.Write("isDedicated true");
                    ModSettings.IsDedicated = true;
                }

                if (ModSettings.IsDedicated)
                {
                    DedicatedServer.COTFDS.ReadDediServerConfig();
                    new GameObject("NetworkManagerObj").AddComponent <Network.NetworkManager>();
                    GameObject go = new GameObject("Playerobj");
                    go.AddComponent <ModReferences>();
                    ItemDataBase.Initialize();
                    EnemyManager.Initialize();
                    Network.NetworkManager.instance.onGetMessage += Network.CommandReader.OnCommand;
                    ExpEvents.Initialize();
                    return;
                }

                ModSettings.DifficultyChosen = false;
                if (SceneManager.GetActiveScene().name == "TitleScene")
                {
                    new GameObject("Resource Manager").AddComponent <ResourceLoader>();
                    ResourceLoader.InMainMenu = true;
                    MainMenuVisual.Create();
                }
                else
                {
                    ResourceLoader.InMainMenu = false;
                    NetworkPlayerStats.Reset();
                    COTFEvents.ClearEvents();

                    new GameObject("NetworkManagerObj").AddComponent <Network.NetworkManager>();
                    GameObject go           = new GameObject("__COTFPlayerobj__");
                    var        moddedPlayer = go.AddComponent <ModdedPlayer>();
                    moddedPlayer.SetStats();
                    go.AddComponent <Inventory>();
                    go.AddComponent <ModReferences>();
                    go.AddComponent <SpellCaster>();
                    go.AddComponent <ClientItemPicker>();
                    go.AddComponent <MeteorSpawner>();
                    go.AddComponent <BlackFlame>();
                    go.AddComponent <AsyncHit>();
                    go.AddComponent <GlobalSFX>();
                    go.AddComponent <TheFartCreator>();
                    go.AddComponent <RCoroutines>();
                    go.AddComponent <ActiveSpellManager>();
                    new GameObject("MainMenuObj").AddComponent <MainMenu>();


                    // go.AddComponent<Crafting>();
                    Network.CommandInitializer.Init();
                    CustomCrafting.Init();
                    BuffDB.FillBuffList();
                    ItemDataBase.Initialize();
                    SpellDataBase.Initialize();
                    EnemyManager.Initialize();
                    Network.NetworkManager.instance.onGetMessage += Network.CommandReader.OnCommand;
                    Buildings.InitBuildings();
                    PerkDatabase.FillPerkList();
                    ExpEvents.Initialize();
                    Portal.InitializePortals();
                    CoopCustomWeapons.Init();
                    BallLightning.InitPrefab();
                    ResourceInitializer.SetupMeshesFromOtherAssets();
                    Cataclysm.AssignPrefabs();
                    MarkEnemy.AssignTextures();
                }
            }
            catch (Exception ex)
            {
                ModAPI.Log.Write(ex.ToString());
            }
        }