Esempio n. 1
0
 public void Awake()
 {
     _buildingManager = BuildingManager.Instance;
     _fightSimulator = FightSimulator.Instance;
     state = Hero.State.Idle;
     dying = false;
 }
Esempio n. 2
0
 public override void OnCreated(IThreading threading)
 {
     _citizenManager = Singleton<CitizenManager>.instance;
     _buildingManager = Singleton<BuildingManager>.instance;
     
     base.OnCreated(threading);
 }
Esempio n. 3
0
 void Start()
 {
     buildingManager = GetComponent<BuildingManager>();
     hasPlaced = true;
     Wohnwagen = 1;
     Wohnhaus = 1;
     Store = 1;
 }
Esempio n. 4
0
	// Use this for initialization
	void Start () {
		weaponhandler = GameObject.FindGameObjectWithTag ("WeaponHandler").GetComponent<WeaponHandler> ();
		itemAmount = gameObject.transform.GetChild (1).GetComponent<Text> ();
		inventory = GameObject.FindGameObjectWithTag ("Inventory").GetComponent<Inventory>();
		itemImage = gameObject.transform.GetChild (0).GetComponent<Image> ();
		buildingManager = GameObject.FindGameObjectWithTag("Player").GetComponentInChildren<BuildingManager>();
		stats = GameObject.FindGameObjectWithTag ("Player").GetComponent<PlayerStats> ();
	}
Esempio n. 5
0
    public Player()
    {
		_soundManager = SoundManager.Instance;
		_comboManager = ComboManager.Instance;
		_inputController = InputController.Instance;
        _gameManager = GameManager.Instance;
        _buildingManager = BuildingManager.Instance;
        _eventManager = EventManager.Instance;
        heroManager = new HeroManager();
    }
	void Awake ()
	{
		if (Instance == null)
		{
			Instance = this;
		}
		else
		{
			Debug.LogError ("There is more than one BuildingManager in the scene!");
		}
	}
 void Awake () {
     if(_instance == null) {
         _instance = this;
         DontDestroyOnLoad(this);
     }
     else {
         if(this != _instance) {
             Destroy(this.gameObject);
         }
     }
 }
Esempio n. 8
0
 void Start()
 {
     state = State.Idle;
     _flyingOff = false;
     lastHitTime = Time.time;
     _poweredUp = false;
     _isReadyToSend = false;
     _isWalking = false;
     _togglePose = false;
     _spriteRenderer = GetComponentInChildren<SpriteRenderer>();
     _buildingManager = BuildingManager.Instance;
     _fightSimulator = FightSimulator.Instance;        
 }
        public SeniorCitizenManager()
        {
            Logger.logInfo(LOG_SENIORS, "SeniorCitizenManager Created");
            instance = this;

            this.randomizer = new Randomizer((uint) 73);
            this.citizenManager = Singleton<CitizenManager>.instance;
            this.buildingManager = Singleton<BuildingManager>.instance;

            // TODO: This array size is excessive but will allow for never worrying about resizing, should consider allowing for resizing instead
            this.familiesWithSeniors = new uint[CitizenManager.MAX_UNIT_COUNT];

            this.seniorCitizensBeingProcessed = new HashSet<uint>();
        }
Esempio n. 10
0
    public static BuildingManager Instance()
    {
        if (_instance == null)
        {
            _instance = (BuildingManager)FindObjectOfType(typeof(BuildingManager));

            if (_instance == null)
            {
                GameObject singleton = new GameObject();
                _instance = singleton.AddComponent<BuildingManager>();
                singleton.name = "BuildingManagerContainer" + typeof(BuildingManager).ToString();

                DontDestroyOnLoad(singleton);
            }
        }

        return _instance;
    }
Esempio n. 11
0
        public StrategyManager()
        {
            Camera = new Camera2D(new Vector2(450, 450), Settings.ScreenResolution.X, Settings.ScreenResolution.Y);
            CreatureManager = new CreatureManager();
            GameField = new GameField(100, 100);
            BuildingManager = new BuildingManager();
            _guiManager = new GUIManager();
            ConstructionMenu constructionMenu = new ConstructionMenu(1,new Size(64,64));
            constructionMenu.ButtonSize = new Size(64, 64);
            constructionMenu.Position = new Vector2(0, Settings.ScreenResolution.Y - 64);
            constructionMenu.AddElement(SpriteType.SawmillMenuElement, "Sawmill", typeof(Sawmill));

            _guiManager.Add(constructionMenu);

            Castle castle = new Castle(new Point(3, 3));

            castle.ResoursesStorage.AddResourse(Resourses.Wood, 50);
            BuildingManager.Add(castle);

            Sawmill sawmill = new Sawmill(new Point(10, 10));

            BuildingManager.Add(sawmill);

            for (int i = 0; i < 6; i++)
            {
                Creature creature = CreatureFabric.CreateHuman(this, CreatureRelation.Friendly);
                creature.Position = new Vector2(RandomTool.RandInt(0, 200), RandomTool.RandInt(0, 100));
                creature.SetBehaviour(new CarpenterBehaviour());
                CreatureManager.Add(creature);
            }

            for (int i = 0; i < 40; i++)
            {
                Creature creature = CreatureFabric.CreateHuman(this, CreatureRelation.Friendly);
                creature.Position = new Vector2(RandomTool.RandInt(0, 2000), RandomTool.RandInt(0, 2000));
                creature.SetBehaviour(new WoodcutterBehavior());
                CreatureManager.Add(creature);
            }
        }
        void Awake()
        {
            renderManager = Singleton<RenderManager>.instance;
            buildingManager = Singleton<BuildingManager>.instance;

            var cameraController = FindObjectOfType<CameraController>();
            mainCamera = cameraController.GetComponent<Camera>();

            var mat = new Material(Shaders.buildingReplacementV2);
            buildingWindowsReplacement = mat.shader;

            buildingsGlowPP = new Material(Shaders.buildingGlowPPv5);
            glowBlurPP = new Material(Shaders.glowBlurPP);

            int w = Camera.main.pixelWidth/blurDownscale;
            int h = Camera.main.pixelHeight/blurDownscale;

            rt = new RenderTexture(w, h, 24, RenderTextureFormat.Default, RenderTextureReadWrite.Linear);
            rtBlurH = new RenderTexture(w, h, 0, RenderTextureFormat.Default, RenderTextureReadWrite.Linear);
            rtBlurV = new RenderTexture(w, h, 0, RenderTextureFormat.Default, RenderTextureReadWrite.Linear);

            dummyGO = new GameObject();
            dummyCamera = dummyGO.AddComponent<Camera>();
            dummyCamera.enabled = false;

            buildingsCullingMask = 1 << LayerMask.NameToLayer("Buildings");

            occludersCullingMask |= 1 << LayerMask.NameToLayer("Props");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("Terrain");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("Decoration");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("Trees");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("Vehicles");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("Citizens");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("PowerLines");
            occludersCullingMask |= 1 << LayerMask.NameToLayer("Road");

            renderManagerLateUpdate = typeof(RenderManager).GetMethod("LateUpdate", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
        }
Esempio n. 13
0
        public static void Postfix(uint citizenID, ref Citizen data)
        {
            BuildingManager instance     = Singleton <BuildingManager> .instance;
            ushort          homeBuilding = data.m_homeBuilding;
            uint            homeId       = data.GetContainingUnit(citizenID, instance.m_buildings.m_buffer[homeBuilding].m_citizenUnits, CitizenUnit.Flags.Home);

            if (homeId != 0)
            {
                //Change wealth
                if (CitizenUnitData.familyMoney[homeId] > MainDataStore.highWealth)
                {
                    data.WealthLevel = Citizen.Wealth.High;
                }
                else if (CitizenUnitData.familyMoney[homeId] < MainDataStore.lowWealth)
                {
                    data.WealthLevel = Citizen.Wealth.Low;
                }
                else
                {
                    data.WealthLevel = Citizen.Wealth.Medium;
                }
            }
        }
 protected override bool StartPathFind(ushort vehicleID, ref Vehicle vehicleData)
 {
     if ((int)vehicleData.m_leadingVehicle == 0)
     {
         Vector3         startPos    = (vehicleData.m_flags & Vehicle.Flags.Reversed) == (Vehicle.Flags) 0 ? (Vector3)vehicleData.m_targetPos0 : (Vector3)Singleton <VehicleManager> .instance.m_vehicles.m_buffer[(int)vehicleData.GetLastVehicle(vehicleID)].m_targetPos0;
         BuildingManager instance    = Singleton <BuildingManager> .instance;
         NetManager      netInstance = Singleton <NetManager> .instance;
         if ((vehicleData.m_flags & Vehicle.Flags.GoingBack) != (Vehicle.Flags) 0)
         {
             if ((int)vehicleData.m_sourceBuilding != 0)
             {
                 //begin mod
                 BuildingInfo info       = instance.m_buildings.m_buffer[(int)vehicleData.m_sourceBuilding].Info;
                 Randomizer   randomizer = new Randomizer((int)vehicleID);
                 Vector3      position;
                 Vector3      target;
                 info.m_buildingAI.CalculateUnspawnPosition(vehicleData.m_sourceBuilding, ref instance.m_buildings.m_buffer[(int)vehicleData.m_sourceBuilding], ref randomizer, this.m_info, out position, out target);
                 return(this.StartPathFind(vehicleID, ref vehicleData, startPos, position));
                 //end mod
             }
         }
         else if ((int)vehicleData.m_targetBuilding < netInstance.m_nodes.m_buffer.Length && (vehicleData.m_flags & Vehicle.Flags.DummyTraffic) != (Vehicle.Flags) 0)
         {
             if ((int)vehicleData.m_targetBuilding != 0)
             {
                 Vector3 endPos = instance.m_buildings.m_buffer[(int)vehicleData.m_targetBuilding].m_position;
                 return(this.StartPathFind(vehicleID, ref vehicleData, (Vector3)vehicleData.m_targetPos0, endPos));
             }
         }
         else if ((int)vehicleData.m_targetBuilding < netInstance.m_nodes.m_buffer.Length && (int)vehicleData.m_targetBuilding != 0)
         {
             Vector3 endPos = netInstance.m_nodes.m_buffer[(int)vehicleData.m_targetBuilding].m_position;
             return(this.StartPathFind(vehicleID, ref vehicleData, startPos, endPos));
         }
     }
     return(false);
 }
        /*
         * Private unmodified methods
         */

        private void TryCollectCrime(ushort vehicleID, ref Vehicle vehicleData, ref Vehicle.Frame frameData)
        {
            if ((vehicleData.m_flags & (Vehicle.Flags.Underground | Vehicle.Flags.Transition)) == Vehicle.Flags.Underground)
            {
                return;
            }
            Vector3         position = frameData.m_position;
            float           num      = position.x - 32f;
            float           num2     = position.z - 32f;
            float           num3     = position.x + 32f;
            float           num4     = position.z + 32f;
            int             num5     = Mathf.Max((int)((num - 72f) / 64f + 135f), 0);
            int             num6     = Mathf.Max((int)((num2 - 72f) / 64f + 135f), 0);
            int             num7     = Mathf.Min((int)((num3 + 72f) / 64f + 135f), 269);
            int             num8     = Mathf.Min((int)((num4 + 72f) / 64f + 135f), 269);
            BuildingManager instance = Singleton <BuildingManager> .instance;

            for (int i = num6; i <= num8; i++)
            {
                for (int j = num5; j <= num7; j++)
                {
                    ushort num9  = instance.m_buildingGrid[i * 270 + j];
                    int    num10 = 0;
                    while (num9 != 0)
                    {
                        this.TryCollectCrime(vehicleID, ref vehicleData, ref frameData, num9, ref instance.m_buildings.m_buffer[(int)num9]);
                        num9 = instance.m_buildings.m_buffer[(int)num9].m_nextGridBuilding;
                        if (++num10 >= 32768)
                        {
                            CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace);

                            break;
                        }
                    }
                }
            }
        }
Esempio n. 16
0
        public static ushort FindNextCargoParent(ushort sourceBuilding, ItemClass.Service service, ItemClass.SubService subService)
        {
            BuildingManager instance  = Singleton <BuildingManager> .instance;
            VehicleManager  instance2 = Singleton <VehicleManager> .instance;
            ushort          num       = instance.m_buildings.m_buffer [(int)sourceBuilding].m_ownVehicles;
            ushort          result    = 0;
            int             num2      = -1;
            int             num3      = 0;

            while (num != 0)
            {
                if ((instance2.m_vehicles.m_buffer [(int)num].m_flags & Vehicle.Flags.WaitingCargo) != Vehicle.Flags.None)
                {
                    VehicleInfo info = instance2.m_vehicles.m_buffer [(int)num].Info;
                    if (info.m_class.m_service == service && info.m_class.m_subService == subService)
                    {
                        int num4;
                        int b;
                        info.m_vehicleAI.GetSize(num, ref instance2.m_vehicles.m_buffer [(int)num], out num4, out b);
                        int num5 = Mathf.Max(num4 * 255 / Mathf.Max(1, b), (int)instance2.m_vehicles.m_buffer [(int)num].m_waitCounter);
                        if (num5 > num2)
                        {
                            result = num;
                            num2   = num5;
                        }
                    }
                }
                num = instance2.m_vehicles.m_buffer [(int)num].m_nextOwnVehicle;
                if (++num3 >= 65536)
                {
                    CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace);

                    break;
                }
            }
            return(result);
        }
Esempio n. 17
0
        public static void ProcessGarbageIncomeArriveAtTarget(ushort vehicleID, ref Vehicle data, int num)
        {
            BuildingManager instance  = Singleton <BuildingManager> .instance;
            Building        building  = instance.m_buildings.m_buffer[(int)data.m_sourceBuilding];
            Building        building1 = instance.m_buildings.m_buffer[(int)data.m_targetBuilding];
            BuildingInfo    info      = instance.m_buildings.m_buffer[(int)data.m_targetBuilding].Info;

            if ((data.m_flags & Vehicle.Flags.TransferToTarget) != (Vehicle.Flags) 0)
            {
                if (building.m_flags.IsFlagSet(Building.Flags.Untouchable))
                {
                    // Garbage income is based on distance.
                    if ((data.m_flags & Vehicle.Flags.Importing) != (Vehicle.Flags) 0)
                    {
                        if (Loader.isRealCityRunning)
                        {
                            double x = instance.m_buildings.m_buffer[(int)data.m_targetBuilding].m_position.x - instance.m_buildings.m_buffer[(int)data.m_sourceBuilding].m_position.x;
                            double z = instance.m_buildings.m_buffer[(int)data.m_targetBuilding].m_position.z - instance.m_buildings.m_buffer[(int)data.m_sourceBuilding].m_position.z;
                            x = (x > 0) ? x : -x;
                            z = (z > 0) ? z : -z;
                            double distance = (x + z);
                            int    money    = (int)(num * (distance / 4000f));
                            Singleton <EconomyManager> .instance.AddPrivateIncome(money, ItemClass.Service.Garbage, ItemClass.SubService.None, ItemClass.Level.Level3, 115333);

                            if (Loader.isRealCityV10)
                            {
                                RealCityUtil.InitDelegate();
                                if (RealCityUtil.GetRealCityV10())
                                {
                                    RealCityUtil.SetOutsideGovermentMoney(RealCityUtil.GetOutsideGovermentMoney() - money);
                                }
                            }
                        }
                    }
                }
            }
        }
Esempio n. 18
0
            public void GetAJob(uint citizenIndex)
            {
                CitizenManager citizenManager = Singleton <CitizenManager> .instance;

                if (citizenManager.m_citizens.m_buffer[citizenIndex].m_workBuilding == 0 && citizenManager.m_citizens.m_buffer[citizenIndex].m_homeBuilding != 0)
                {
                    SimulationManager simulationManager = Singleton <SimulationManager> .instance;
                    BuildingManager   buildingManager   = Singleton <BuildingManager> .instance;
                    TransferManager   transferManager   = Singleton <TransferManager> .instance;
                    Vector3           position          = buildingManager.m_buildings.m_buffer[citizenManager.m_citizens.m_buffer[citizenIndex].m_homeBuilding].m_position;

                    TransferManager.TransferOffer offer = default(TransferManager.TransferOffer);
                    offer.Priority = simulationManager.m_randomizer.Int32(8);
                    offer.Citizen  = citizenIndex;
                    offer.Position = position;
                    offer.Amount   = 1;
                    offer.Active   = true;
                    switch (citizenManager.m_citizens.m_buffer[citizenIndex].EducationLevel)
                    {
                    case Citizen.Education.Uneducated:
                        transferManager.AddOutgoingOffer(TransferManager.TransferReason.Worker0, offer);
                        break;

                    case Citizen.Education.OneSchool:
                        transferManager.AddOutgoingOffer(TransferManager.TransferReason.Worker1, offer);
                        break;

                    case Citizen.Education.TwoSchools:
                        transferManager.AddOutgoingOffer(TransferManager.TransferReason.Worker2, offer);
                        break;

                    case Citizen.Education.ThreeSchools:
                        transferManager.AddOutgoingOffer(TransferManager.TransferReason.Worker3, offer);
                        break;
                    }
                }
            }
Esempio n. 19
0
        public static void AfterPopulateGroupData(BuildingManager __instance, int groupX, int groupZ, int layer, ref int vertexIndex, ref int triangleIndex, ref Vector3 groupPosition, RenderGroup.MeshData data, ref Vector3 min, ref Vector3 max, ref float maxRenderDistance, ref float maxInstanceDistance)
        {
            if (LoadingManager.instance.m_currentlyLoading)
            {
                return;
            }

            if (WriteTheSignsMod.Controller?.BuildingPropsSingleton == null)
            {
                return;
            }
            int num  = groupX * 270 / 45;
            int num2 = groupZ * 270 / 45;
            int num3 = (groupX + 1) * 270 / 45 - 1;
            int num4 = (groupZ + 1) * 270 / 45 - 1;

            for (int i = num2; i <= num4; i++)
            {
                for (int j = num; j <= num3; j++)
                {
                    int    num5 = i * 270 + j;
                    ushort num6 = __instance.m_buildingGrid[num5];
                    int    num7 = 0;
                    while (num6 != 0)
                    {
                        WriteTheSignsMod.Controller.BuildingPropsSingleton.PopulateGroupData(num6, layer, ref vertexIndex, ref triangleIndex, groupPosition, data, ref min, ref max, ref maxRenderDistance, ref maxInstanceDistance);
                        num6 = __instance.m_buildings.m_buffer[num6].m_nextGridBuilding;
                        if (++num7 >= 49152)
                        {
                            CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + Environment.StackTrace);

                            break;
                        }
                    }
                }
            }
        }
Esempio n. 20
0
        private static ushort FindLeisure(ref ResidentAI thisAI, uint citizenID, ref Citizen person, ushort buildingID)
        {
            ushort foundLeisure = 0;

            if ((person.m_instance != 0 || NewResidentAI.DoRandomMove(thisAI)))
            {
                BuildingManager   _buildingManager   = Singleton <BuildingManager> .instance;
                SimulationManager _simulationManager = Singleton <SimulationManager> .instance;
                Building          _currentBuilding   = _buildingManager.m_buildings.m_buffer[buildingID];

                foundLeisure = _buildingManager.FindBuilding(_currentBuilding.m_position, 1000f, ItemClass.Service.Commercial, ItemClass.SubService.CommercialLeisure, Building.Flags.Created | Building.Flags.Active, Building.Flags.Deleted);

                if (foundLeisure != 0)
                {
                    if (_simulationManager.m_randomizer.Int32(0, 10) > 2)
                    {
                        thisAI.StartMoving(citizenID, ref person, buildingID, foundLeisure);
                        person.SetVisitplace(citizenID, foundLeisure, 0U);
                        person.m_visitBuilding = foundLeisure;
                        LoggingWrapper.Log("Citizen " + citizenID + " found leisure.");
                    }
                    else
                    {
                        LoggingWrapper.Log("Citizen " + citizenID + " found leisure, but chose not to bother.");
                        NewResidentAI.FindVisitPlace(thisAI, citizenID, buildingID, NewResidentAI.GetEntertainmentReason(thisAI));
                    }
                }
                else
                {
                    LoggingWrapper.Log("Citizen " + citizenID + " couldn't find leisure.");
                    NewResidentAI.FindVisitPlace(thisAI, citizenID, buildingID, NewResidentAI.GetEntertainmentReason(thisAI));
                }
            }

            return(foundLeisure);
        }
Esempio n. 21
0
        /// <summary>
        /// Saves the objects.
        /// </summary>
        public void SaveObjects()
        {
            try
            {
                Configuration config = new Configuration(Configuration.ItemTypes.Objects, Configuration.AssetTypes.Buildings, null);

                BuildingManager buildingManager = Singleton <BuildingManager> .instance;
                Building[]      buildings       = buildingManager.m_buildings.m_buffer;

                for (ushort id = 0; id < buildings.Length; id++)
                {
                    if (buildings[id].Info != null && (buildings[id].m_flags & Building.Flags.Created) != Building.Flags.None)
                    {
                        config.Add(this.NewItem(buildingManager, config, "Object", id, buildings[id].Info));
                    }
                }

                config.Save();
            }
            catch (Exception ex)
            {
                Log.Error(this, "SaveObjects", ex);
            }
        }
Esempio n. 22
0
    public void PickUpPassenger(Building fromBuilding) //Hides all requests from screen, spawns taxi and passenger relative to the fromBuilding's position
    {
        for (int i = 0; i < currentlyActiveRequests.Count; i++)
        {
            if (currentlyActiveRequests[i] == fromBuilding)
            {
                currentlyActiveRequests[i].buildingSelected = true;

                _originBuilding      = currentlyActiveRequests[i];
                _destinationBuilding = BuildingManager.GetBuildingById(currentlyActiveRequests[i].buildingIdToDriveTowards);
            }

            //Hide all taxi request indicators
            currentlyActiveRequests[i].requestIndicatorInstance.SetActive(false);
        }

        //Spawn taxi and passenger
        _taxiInstance = fromBuilding.referencedStreet.PlaceVehicle(taxiPrefab, _originBuilding.transform.position);
        _taxiInstance.GetComponent <Taxi>().callingPassenger = true;

        _passengerInstance = Instantiate(passengerPrefab, _originBuilding.pedestrianSpawnPosition.position, _originBuilding.pedestrianSpawnPosition.rotation).GetComponent <Passenger>();

        isSelectingBuilding = true;
    }
Esempio n. 23
0
        public static void CargoTruckAIArriveAtTargetForRealGasStationPost(ref Vehicle vehicleData)
        {
            BuildingManager instance = Singleton <BuildingManager> .instance;

            if (vehicleData.m_targetBuilding != 0)
            {
                Building buildingData = instance.m_buildings.m_buffer[vehicleData.m_targetBuilding];
                if (!(buildingData.Info.m_buildingAI is OutsideConnectionAI))
                {
                    if (GasStationAI.IsGasBuilding(vehicleData.m_targetBuilding) == true)
                    {
                        switch ((TransferManager.TransferReason)vehicleData.m_transferType)
                        {
                        case TransferManager.TransferReason.Petrol:

                            if (MainDataStore.petrolBuffer[vehicleData.m_targetBuilding] <= 57000)
                            {
                                MainDataStore.petrolBuffer[vehicleData.m_targetBuilding] += vehicleData.m_transferSize;
                            }

                            if (Loader.isRealCityRunning)
                            {
                                RealCityUtil.InitDelegate();
                                float productionValue = vehicleData.m_transferSize * RealCityUtil.GetResourcePrice((TransferManager.TransferReason)vehicleData.m_transferType);
                                Singleton <EconomyManager> .instance.FetchResource(EconomyManager.Resource.ResourcePrice, (int)productionValue, ItemClass.Service.PlayerIndustry, ItemClass.SubService.PlayerIndustryOil, ItemClass.Level.Level1);
                            }
                            vehicleData.m_transferSize = 0;
                            break;

                        default:
                            DebugLog.LogToFileOnly("Error: Find a import trade m_transferType = " + vehicleData.m_transferType.ToString()); break;
                        }
                    }
                }
            }
        }
Esempio n. 24
0
    void Awake()
    {
        var             buildingManagerTransform = Instantiate(buildingManagerPrefab) as Transform;
        BuildingManager buildingManager          = buildingManagerTransform.GetComponent <BuildingManager>();

        if (buildingManager != null)
        {
            buildingManager.init(this);
            buildingManager.transform.SetParent(this.transform);
            this.buildingManager = buildingManager;
        }

        var             resourceManagerTransform = Instantiate(resourceManagerPrefab) as Transform;
        ResourceManager resourceManager          = resourceManagerTransform.GetComponent <ResourceManager>();

        if (resourceManager != null)
        {
            resourceManager.init(this);
            resourceManager.transform.SetParent(this.transform);
            this.resourceManager = resourceManager;
        }

        displayPopup("C'est parti !", 3);
    }
Esempio n. 25
0
    private void OnMouseUp()
    {
        if (ScoreManager.StillPlaying() && upgradeCost > 0)
        {
            BuildingManager bm = GameObject.FindObjectOfType <BuildingManager>();
            bm.SelectInstance(this);

            switch (id)
            {
            case 0:
                GetComponent <Skeleton>().RangeGO().SetActive(true);
                //Debug.Log("set active");
                break;

            case 2:
                GetComponent <Witch>().RangeGO().SetActive(true);
                break;

            case 5:
                GetComponent <Skeleton>().RangeGO().SetActive(true);
                break;
            }
        }
    }
    /**
     * Formats the allows/required identifiers to be nice strings, coloured correctly.
     * Returns the identifiers.
     */
    private string FormatIds(List <string> allowIds, bool redIfNotPresent)
    {
        BuildingManager manager = BuildingManager.GetInstance();
        string          result  = "";

        foreach (string id in allowIds)
        {
            if (redIfNotPresent && !manager.PlayerHasBuilding(id))
            {
                result += "[ff0000]";
            }
            else
            {
                result += "[000000]";
            }
            BuildingTypeData type = manager.GetBuildingTypeData(id);
            if (type != null)
            {
                result += manager.GetBuildingTypeData(id).name + ", ";
            }
            else
            {
                Debug.LogWarning("No building type data found for id:" + id);
                result += id + ", ";
            }
        }
        if (result.Length > 2)
        {
            result = result.Substring(0, result.Length - 2);
        }
        else
        {
            return("Nothing");
        }
        return(result);
    }
    // Update is called once per frame
    void Update()
    {
        BuildingManager bm = GameObject.Find("_Scripts_").GetComponent <BuildingManager>();


        if (TowerPrefab == null)
        {
            if (healthBar != null)
            {
                healthBar.fillAmount = KinectButton.CDtTime / KinectButton.CDcTime;
                Debug.Log(healthBar.fillAmount);
            }
        }
        else
        {
            if (bm != null)
            {
                if (bm.selectedTower == TowerPrefab)
                {
                    if (healthBar != null)
                    {
                        healthBar.fillAmount = 1;
                        Debug.Log(healthBar.fillAmount);
                    }
                }
                else
                {
                    if (healthBar != null)
                    {
                        healthBar.fillAmount = KinectButton.CDtTime / KinectButton.CDcTime;
                        Debug.Log(healthBar.fillAmount);
                    }
                }
            }
        }
    }
 public override void OnAfterSimulationFrame()
 {
     base.OnAfterSimulationFrame();
     if (Loader.CurrentLoadMode == LoadMode.LoadGame || Loader.CurrentLoadMode == LoadMode.NewGame)
     {
         uint currentFrameIndex = Singleton <SimulationManager> .instance.m_currentFrameIndex;
         int  num4 = (int)(currentFrameIndex & 255u);
         if (RealConstruction.IsEnabled)
         {
             BuildingManager instance = Singleton <BuildingManager> .instance;
             if (num4 == 255)
             {
                 PlayerBuildingUI.refeshOnce     = true;
                 UniqueFactoryUI.refeshOnce      = true;
                 UniqueFactoryButton.refeshOnce  = true;
                 WarehouseButton.refeshOnce      = true;
                 WareHouseUI.refeshOnce          = true;
                 PlayerBuildingButton.refeshOnce = true;
             }
             //CustomSimulationStepImpl for 124 125 TransferReason
             CustomTransferManager.CustomSimulationStepImpl();
         }
     }
 }
Esempio n. 29
0
        public override void SimulationStep(ushort eventID, ref EventData data)
        {
            //begin mod
            var crawlerVehicle = Configuration.Get(eventID).Crawler;
            var rocketVehicle  = Configuration.Get(eventID).Rocket;
            //end mod
            VehicleManager  instance1 = Singleton <VehicleManager> .instance;
            BuildingManager instance2 = Singleton <BuildingManager> .instance;
            EventManager    instance3 = Singleton <EventManager> .instance;
            ushort          vehicleID1;
            ushort          vehicleID2;

            this.FindVehicles(eventID, ref data, out vehicleID1, out vehicleID2);
            bool flag1 = false;

            if ((data.m_flags & (EventData.Flags.Active | EventData.Flags.Expired | EventData.Flags.Completed | EventData.Flags.Disorganizing | EventData.Flags.Cancelled)) == EventData.Flags.None)
            {
                if ((data.m_flags & EventData.Flags.Ready) == EventData.Flags.None && this.m_resourceConsumption != 0)
                {
                    int num1 = (int)data.m_popularityDelta * 10;
                    int num2 = Mathf.Clamp(num1 / this.m_resourceConsumption, 0, 256);
                    data.m_startFrame  += (uint)(256 - num2);
                    data.m_expireFrame += (uint)(256 - num2);
                    int num3 = num1 - num2 * this.m_resourceConsumption;
                    data.m_popularityDelta = (short)Mathf.Clamp(num3 / 10, 0, (int)short.MaxValue);
                    int  num4 = 0;
                    uint currentFrameIndex = Singleton <SimulationManager> .instance.m_currentFrameIndex;
                    if (data.m_startFrame > currentFrameIndex)
                    {
                        num4 = ((int)data.m_startFrame - (int)currentFrameIndex) * this.m_resourceConsumption;
                    }
                    if ((int)data.m_building != 0 && num4 > num3)
                    {
                        int    num5       = 100000;
                        ushort vehicleID3 = instance2.m_buildings.m_buffer[(int)data.m_building].m_guestVehicles;
                        int    num6       = 0;
                        while ((int)vehicleID3 != 0)
                        {
                            switch ((TransferManager.TransferReason)instance1.m_vehicles.m_buffer[(int)vehicleID3].m_transferType)
                            {
                            case TransferManager.TransferReason.Coal:
                            case TransferManager.TransferReason.Petrol:
                                int size;
                                int max;
                                instance1.m_vehicles.m_buffer[(int)vehicleID3].Info.m_vehicleAI.GetSize(vehicleID3, ref instance1.m_vehicles.m_buffer[(int)vehicleID3], out size, out max);
                                num3 += Mathf.Min(size, max);
                                break;
                            }
                            vehicleID3 = instance1.m_vehicles.m_buffer[(int)vehicleID3].m_nextGuestVehicle;
                            if (++num6 > 16384)
                            {
                                CODebugBase <LogChannel> .Error(LogChannel.Core, "Invalid list detected!\n" + System.Environment.StackTrace);

                                break;
                            }
                        }
                        if (num3 <= num5 - 8000)
                        {
                            Singleton <TransferManager> .instance.AddIncomingOffer((data.m_flags & EventData.Flags.Preparing) == EventData.Flags.None?TransferManager.TransferReason.Coal : TransferManager.TransferReason.Petrol, new TransferManager.TransferOffer()
                            {
                                Priority = Mathf.Max(1, (num5 - num3) * 8 / num5),
                                Building = data.m_building,
                                Position = instance2.m_buildings.m_buffer[(int)data.m_building].m_position,
                                Amount   = 1,
                                Active   = false
                            });
                        }
                        if (num3 < 16000)
                        {
                            flag1 = true;
                        }
                    }
                }
                if ((data.m_flags & (EventData.Flags.Preparing | EventData.Flags.Ready)) != EventData.Flags.None && (int)data.m_building != 0)
                {
                    if ((int)vehicleID1 == 0 && crawlerVehicle != null)
                    {
                        Vector3 position = instance2.m_buildings.m_buffer[(int)data.m_building].CalculatePosition(this.m_rocketSpawnPosition);
                        if (instance1.CreateVehicle(out vehicleID1, ref Singleton <SimulationManager> .instance.m_randomizer, crawlerVehicle, position, TransferManager.TransferReason.None, false, false))
                        {
                            crawlerVehicle.m_vehicleAI.SetSource(vehicleID1, ref instance1.m_vehicles.m_buffer[(int)vehicleID1], data.m_building);
                            crawlerVehicle.m_vehicleAI.SetTarget(vehicleID1, ref instance1.m_vehicles.m_buffer[(int)vehicleID1], data.m_building);
                        }
                    }
                    if ((int)vehicleID1 != 0 && (int)vehicleID2 == 0 && rocketVehicle != null)
                    {
                        Vector3 position = instance2.m_buildings.m_buffer[(int)data.m_building].CalculatePosition(this.m_rocketSpawnPosition);
                        if (instance1.CreateVehicle(out vehicleID2, ref Singleton <SimulationManager> .instance.m_randomizer, rocketVehicle, position, TransferManager.TransferReason.None, false, false))
                        {
                            rocketVehicle.m_vehicleAI.SetSource(vehicleID2, ref instance1.m_vehicles.m_buffer[(int)vehicleID2], data.m_building);
                            rocketVehicle.m_vehicleAI.SetTarget(vehicleID2, ref instance1.m_vehicles.m_buffer[(int)vehicleID2], data.m_building);
                            ushort lastVehicle = instance1.m_vehicles.m_buffer[(int)vehicleID1].GetLastVehicle(vehicleID1);
                            if ((int)lastVehicle != 0)
                            {
                                instance1.m_vehicles.m_buffer[(int)vehicleID2].m_leadingVehicle   = lastVehicle;
                                instance1.m_vehicles.m_buffer[(int)lastVehicle].m_trailingVehicle = vehicleID2;
                            }
                        }
                    }
                }
            }
            if ((int)data.m_building != 0)
            {
                ushort num = instance2.m_buildings.m_buffer[(int)data.m_building].m_eventIndex;
                if ((int)num == (int)eventID)
                {
                    Notification.Problem problems = instance2.m_buildings.m_buffer[(int)data.m_building].m_problems;
                    Notification.Problem problem  = Notification.RemoveProblems(problems, Notification.Problem.NoResources);
                    if (flag1)
                    {
                        instance2.m_buildings.m_buffer[(int)data.m_building].m_incomingProblemTimer = (byte)Mathf.Min((int)byte.MaxValue, (int)instance2.m_buildings.m_buffer[(int)data.m_building].m_incomingProblemTimer + 1);
                        if ((int)instance2.m_buildings.m_buffer[(int)data.m_building].m_incomingProblemTimer >= 4)
                        {
                            problem = Notification.AddProblems(problem, Notification.Problem.NoResources);
                        }
                    }
                    else
                    {
                        instance2.m_buildings.m_buffer[(int)data.m_building].m_incomingProblemTimer = (byte)0;
                    }
                    if (problem != problems)
                    {
                        instance2.m_buildings.m_buffer[(int)data.m_building].m_problems = problem;
                        Singleton <BuildingManager> .instance.UpdateNotifications(data.m_building, problems, problem);
                    }
                    GuideController properties = Singleton <GuideManager> .instance.m_properties;
                    if (properties != null)
                    {
                        Singleton <BuildingManager> .instance.m_rocketLaunchSite.Activate(properties.m_rocketLaunchSite, data.m_building);
                    }
                }
                if ((int)num != 0 && (instance3.m_events.m_buffer[(int)num].m_flags & (EventData.Flags.Preparing | EventData.Flags.Active | EventData.Flags.Completed | EventData.Flags.Cancelled | EventData.Flags.Ready)) == EventData.Flags.None)
                {
                    num = instance3.m_events.m_buffer[(int)num].m_nextBuildingEvent;
                }
                bool flag2 = false;
                if ((int)vehicleID1 != 0 && crawlerVehicle != null)
                {
                    Vector3 position          = instance2.m_buildings.m_buffer[(int)data.m_building].CalculatePosition(this.m_doorPosition);
                    Vector3 lastFramePosition = instance1.m_vehicles.m_buffer[(int)vehicleID1].GetLastFramePosition();
                    Vector3 targetPos0        = (Vector3)instance1.m_vehicles.m_buffer[(int)vehicleID1].m_targetPos0;
                    Vector3 b = lastFramePosition + Vector3.ClampMagnitude(targetPos0 - lastFramePosition, crawlerVehicle.m_maxSpeed * 16f);
                    flag2 = (double)Vector3.Distance(position, b) < 40.0;
                }
                if (flag2)
                {
                    if ((data.m_flags & EventData.Flags.Loading) == EventData.Flags.None)
                    {
                        data.m_flags |= EventData.Flags.Loading;
                        if (this.m_doorOpenEffect != null && (int)num == (int)eventID)
                        {
                            InstanceID instance4 = new InstanceID();
                            instance4.Event = eventID;
                            EffectInfo.SpawnArea spawnArea = new EffectInfo.SpawnArea(Singleton <BuildingManager> .instance.m_buildings.m_buffer[(int)data.m_building].CalculatePosition(this.m_doorPosition), Vector3.up, 10f);
                            Singleton <EffectManager> .instance.DispatchEffect(this.m_doorOpenEffect, instance4, spawnArea, Vector3.zero, 0.0f, 1f, Singleton <AudioManager> .instance.DefaultGroup);
                        }
                    }
                }
                else if ((data.m_flags & EventData.Flags.Loading) != EventData.Flags.None)
                {
                    data.m_flags &= ~EventData.Flags.Loading;
                    if (this.m_doorCloseEffect != null && (int)num == (int)eventID)
                    {
                        InstanceID instance4 = new InstanceID();
                        instance4.Event = eventID;
                        EffectInfo.SpawnArea spawnArea = new EffectInfo.SpawnArea(Singleton <BuildingManager> .instance.m_buildings.m_buffer[(int)data.m_building].CalculatePosition(this.m_doorPosition), Vector3.up, 10f);
                        Singleton <EffectManager> .instance.DispatchEffect(this.m_doorCloseEffect, instance4, spawnArea, Vector3.zero, 0.0f, 1f, Singleton <AudioManager> .instance.DefaultGroup);
                    }
                }
            }
            base.SimulationStep(eventID, ref data);
        }
Esempio n. 30
0
 void Awake()
 {
     instance    = this;
     worker      = GetComponent <BuildingWorker> ();
     playerMoney = GetComponent <PlayerConfig>().money;
 }
Esempio n. 31
0
	public bool TryBuild(BuildingType type, Tile leftDownCorner, UnitBase builder) {
		switch (type) {
		case BuildingType.House:
			var go = (GameObject)Instantiate(Resources.Load("HouseBuilding"));
			var bm = go.GetComponent<BuildingManager>();
			bm.Data = new BuildingData();
			bm.Data.Size = new Vector2(2, 2);
			bm.Data.State = BuildingState.BeingBuilt;
			bm.builder = builder;
			bm.BuildEndCallback = MakeUnitActive;
			MakeUnitBusy(builder);
			currentBuildingPrototype = bm;
			MakeTilesBlocked(leftDownCorner,2,2);
			go.transform.localPosition = new Vector3(leftDownCorner.center.x + (Grid.tileSize/2f)
			                                         , leftDownCorner.center.y, leftDownCorner.center.z + (Grid.tileSize/2f));

			break;
		default:
			return false;
		}
		return false;
	}
Esempio n. 32
0
 public void EnterBuildingMode() {
     UnselectAllUnits();
     Situation = GameSituation.Building;
     var go = (GameObject)Instantiate(Resources.Load("TownHallBuilding"));
     var bm = go.GetComponent<BuildingManager>();
     bm.Data = new BuildingData();
     bm.Data.Size = new Vector2(5, 5);
     bm.Data.State = BuildingState.Prototype;
     currentBuildingPrototype = bm;
 }
Esempio n. 33
0
    private void Awake()
    {
        Instance = this;

        buildingTypeList = Resources.Load <BuildingTypeListSO>(typeof(BuildingTypeListSO).Name);
    }
Esempio n. 34
0
 public void SetBM(BuildingManager BM)
 {
     buildingmanager = BM;
 }
Esempio n. 35
0
    /**
     * Initializes BuildingManager as a singleton
     *
     * Initializes fields
     */
    public override void Start()
    {
        if (buildingManager == null)
        {
            DontDestroyOnLoad(gameObject);
            buildingManager = this;
        }
        else if (buildingManager != this)
        {
            Destroy(gameObject);
        }

        alreadyPlacedDownBuildings = new List<string>();
        buildings = new GameObject();
        buildings.name = "Buildings";
        buildingTypeDict = new Dictionary<string, Building>();
        existingBuildingDict = new Dictionary<Tuple, Building>();
    }
 // Use this for initialization
 void Start()
 {
     bm = GameObject.FindObjectOfType<BuildingManager>();
     tileAbove = GameObject.Find("Tile: " + (gameObject.transform.position.x + 1) + "_" + gameObject.transform.position.z);
     mr = this.gameObject.GetComponent<MeshRenderer>();
 }
 public void SetManager(BuildingManager man)
 {
     this.manager = man;
 }
Esempio n. 38
0
        private void Update()
        {
            if (!this._initialized)
            {
                this._cityServiceWorldInfoPanel = GameObject.Find("(Library) CityServiceWorldInfoPanel").GetComponent <CityServiceWorldInfoPanel>();
                if (!((UnityEngine.Object) this._cityServiceWorldInfoPanel != (UnityEngine.Object)null))
                {
                    return;
                }
                this.CreateStopsPanel();
                this._initialized = true;
            }
            else
            {
                if (!this._initialized || !this._cityServiceWorldInfoPanel.component.isVisible)
                {
                    return;
                }
                BuildingManager      instance1  = Singleton <BuildingManager> .instance;
                ushort               building   = Utils.GetPrivate <InstanceID>((object)this._cityServiceWorldInfoPanel, "m_InstanceID").Building;
                ItemClass.SubService subService = instance1.m_buildings.m_buffer[(int)building].Info.GetSubService();
                switch (subService)
                {
                case ItemClass.SubService.PublicTransportBus:
                case ItemClass.SubService.PublicTransportMetro:
                case ItemClass.SubService.PublicTransportTrain:
                case ItemClass.SubService.PublicTransportShip:
                case ItemClass.SubService.PublicTransportPlane:
                    this._vehicleListBox.Hide();
                    this._stopsListBox.Show();
                    ushort[] numArray = PanelExtenderCityService.GetStationStops(building);
                    BuildingInfo.SubInfo[] subBuildings = instance1.m_buildings.m_buffer[(int)building].Info.m_subBuildings;
                    if (subBuildings != null && subBuildings.Length != 0)
                    {
                        Vector3 position = instance1.m_buildings.m_buffer[(int)building].m_position;
                        building = instance1.FindBuilding(position, 100f, ItemClass.Service.PublicTransport, ItemClass.SubService.None, Building.Flags.Untouchable, Building.Flags.None);
                        if ((int)building != 0)
                        {
                            ushort[] stationStops = PanelExtenderCityService.GetStationStops(building);
                            if (stationStops.Length != 0)
                            {
                                numArray = ((IEnumerable <ushort>)numArray).Concat <ushort>((IEnumerable <ushort>)stationStops).ToArray <ushort>();
                            }
                        }
                    }
                    int length = numArray.Length;
                    if (length > 0)
                    {
                        this._titleLabel.text = Localization.Get("CITY_SERVICE_PANEL_TITLE_STATION_STOPS");
                        this._listBoxPanel.relativePosition = new Vector3(this._listBoxPanel.parent.width + 1f, 0.0f);
                        this._listBoxPanel.Show();
                        if ((int)this._cachedBuildingID != (int)building || this._cachedStopCount != length)
                        {
                            this._stopsListBox.ClearItems();
                            for (int index = 0; index < length; ++index)
                            {
                                this._stopsListBox.AddItem(numArray[index], -1);
                            }
                        }
                    }
                    else
                    {
                        this._listBoxPanel.Hide();
                    }
                    this._cachedStopCount = length;
                    break;

                case ItemClass.SubService.PublicTransportTaxi:
                    this._vehicleListBox.Show();
                    this._stopsListBox.Hide();
                    UIPanel uiPanel = this._cityServiceWorldInfoPanel.Find <UIPanel>("SvsVehicleTypes");
                    if ((UnityEngine.Object)uiPanel != (UnityEngine.Object)null)
                    {
                        this._listBoxPanel.relativePosition = new Vector3((float)((double)this._listBoxPanel.parent.width + (double)uiPanel.width + 2.0), 0.0f);
                    }
                    List <ushort> depotVehicles = PanelExtenderCityService.GetDepotVehicles(building);
                    int           count         = depotVehicles.Count;
                    if (count > 0)
                    {
                        this._titleLabel.text = Localization.Get("CITY_SERVICE_PANEL_TITLE_DEPOT_VEHICLES");
                        this._listBoxPanel.Show();
                        if ((int)this._cachedBuildingID != (int)building || this._cachedVehicleCount != count)
                        {
                            this._vehicleListBox.ClearItems();
                            PrefabData[]   prefabs   = VehiclePrefabs.instance.GetPrefabs(subService);
                            VehicleManager instance2 = Singleton <VehicleManager> .instance;
                            foreach (ushort vehicleID in depotVehicles)
                            {
                                VehicleInfo info = instance2.m_vehicles.m_buffer[(int)vehicleID].Info;
                                for (int index = 0; index < prefabs.Length; ++index)
                                {
                                    PrefabData data = prefabs[index];
                                    if (info.name == data.ObjectName)
                                    {
                                        this._vehicleListBox.AddItem(data, vehicleID);
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        this._listBoxPanel.Hide();
                    }
                    this._cachedVehicleCount = count;
                    break;

                default:
                    this._listBoxPanel.Hide();
                    break;
                }
                this._cachedBuildingID = building;
            }
        }
Esempio n. 39
0
 public PlayerUpgradeBuildingState(GameManager gameManager, BuildingManager buildingManager, IResourceManager resourceManager)
     : base(gameManager, buildingManager, resourceManager)
 {
 }
Esempio n. 40
0
    // public void PlaceFeedbackText(int i)
    // {
    //     Transform tileTransform = tiles_[i].transform;
    //     Canvas canvas = GameObject.Find("Canvas");
    //     Text feedback = (Text)Instantiate(textPrefab, tileTransform.position, tileTransform.rotation);
    //     feedback.transform.SetParent(canvas.transform, false);
    //     feedback.fontSize = 14;
    //     feedback.text = "asdlfkjsdfkj";
    // }

    public void Update()
    {
        // The mouse position is in screen pixel coordinates, and we need to
        // center it relative to the world.
        Vector3         mouse_in_world = MouseInWorld();
        BuildingManager active         = GetActiveTile(mouse_in_world.x, mouse_in_world.y);

        if (activeTile != null)
        {
            activeTile.Highlight(false); // Turn off previously active tile.
        }
        activeTile = active;
        activeTile.Highlight(true);

        // if the mouse button is held down, create a disaster in the correct section
        if (Input.GetMouseButtonDown(0))
        {
            if (selectedDisaster == DisasterType.Meteor)
            {
                SceneManager.LoadScene("winScene");
            }

            int activeI = GetActiveIndex(mouse_in_world.x, mouse_in_world.y);

            Vector2 mouse_in_world_2d = new Vector2(mouse_in_world.x, mouse_in_world.y);
            float   clickRadius       = mouse_in_world_2d.magnitude;

            if (selectedDisaster != DisasterType.NotSelected &&
                clickRadius >= earthRadius &&
                clickRadius <= 2 * earthRadius)
            {
                PlaceDisaster(activeI);

                Type     SelectedDisasterT = DisasterTypeToClass[selectedDisaster];
                Disaster instance          = (Disaster)Activator.CreateInstance(SelectedDisasterT);

                // Start the disaster cooldown.
                if (enableCooldown)
                {
                    selectedButton.DisableForCountdown(instance.cooldownTime);
                    selectedDisaster = DisasterType.NotSelected;
                }

                bool destroyed = active.Attack(instance);

                if (destroyed)
                {
                    XPSystem system  = xpSlider.GetComponent <XPSystem>();
                    float    xpLevel = system.EarnXP(active.building.xpGain);

                    simulator.KillPopulation(active.building.populationPct);
                    simulator.KillTechnology(active.building.technologyPct);

                    activeTile.Destroy(instance);

                    ToolbarManager tManager = toolbar.GetComponent <ToolbarManager>();
                    if (xpLevel >= 1.0f)
                    {
                        tManager.UnlockButton(4);
                    }
                    else if (xpLevel >= 0.60f)
                    {
                        tManager.UnlockButton(3);
                    }
                    else if (xpLevel >= 0.25f)
                    {
                        tManager.UnlockButton(2);
                    }
                    else if (xpLevel >= 0.1f)
                    {
                        tManager.UnlockButton(1);
                    }
                }
            }
        }
    }
Esempio n. 41
0
 void Start()
 {
     tileMap         = GameObject.FindGameObjectWithTag("TileMap");
     createTileMap   = tileMap.GetComponent <CreateTileMap>();
     buildingManager = GameObject.FindGameObjectWithTag("BuildingManager").GetComponent <BuildingManager>();
 }
Esempio n. 42
0
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        AndroidJNI.AttachCurrentThread();
        //gpsActivityJavaClass = new AndroidJavaClass ("com.TeamWARIS.WARISProject.CustomGPS");
        _camLoc = gameObject.AddComponent<Geolocation>();
        _camLoc.initGPS();
        _directionx = 0;
        _directiony = 1;
        setCamVecLength(0.00015);
        checkGPS();
        gcs = GetComponent<GUIControllerScript>();
        _location = "";
        _GUIWindow = new Rect(Screen.width / 4 + 10, (Screen.height / 2) + 10, Screen.width / 4 - 20, (Screen.height / 2) - 35);

        rc = (ResourceController)GameObject.Find ("Resource Controller").GetComponent<ResourceController> ();
        buildingManager = rc.GetBuildingManager ();
        staffManager = rc.GetStaffManager ();
        lectureManager = rc.GetLectureManager ();

        gpsActivityJavaClass = new AndroidJavaClass ("com.TeamWARIS.WARISProject.CustomGPS");
    }
Esempio n. 43
0
    public void SetBuilding(int i, Building instance)
    {
        BuildingManager manager = tiles_[i].GetComponent <BuildingManager>();

        manager.SetBuilding(instance);
    }
Esempio n. 44
0
    /*** Script Methods ***/
    // Use this for initialization
    void Start()
    {
        /*** Init. Game System ***/

        // Default camera zoom
        Camera.main.orthographicSize = Globals.MinCameraSize + (Globals.MaxCameraSize - Globals.MinCameraSize) / 2.0f;

        // Instantiate all game-level objects
        SManager = gameObject.AddComponent(typeof(SpriteManager)) as SpriteManager;
        ProjManager = gameObject.AddComponent(typeof(ProjectileManager)) as ProjectileManager;
        ShipManager = gameObject.AddComponent(typeof(ShipsManager)) as ShipsManager;
        SceneManager = gameObject.AddComponent(typeof(SceneryManager)) as SceneryManager;
        ResManager = gameObject.AddComponent(typeof(ResourceManager)) as ResourceManager;
        BuildingManager = gameObject.AddComponent(typeof(BuildingManager)) as BuildingManager;
        AManager = gameObject.AddComponent(typeof(AudioManager)) as AudioManager;
        SongManager = gameObject.AddComponent(typeof(AudioSystem)) as AudioSystem;
        OverlayView = gameObject.AddComponent(typeof(GameOverlay)) as GameOverlay;
        ContextMenuView = gameObject.AddComponent(typeof(GameContextMenu)) as GameContextMenu;

        /*** Background System ***/

        // Allocate the background sprites
        BackgroundSprites = new Sprite[BackgroundLayerCount];
        for(int i = 0; i < BackgroundLayerCount; i++)
        {
            // Alloc and retain
            Sprite Background = new Sprite("Textures/BGLayer" + i);
            BackgroundSprites[i] = Background;

            // Make the sprite geometry as big as the max camera, and center it on the camera
            BackgroundSprites[i].SetGeometrySize(new Vector2(Globals.MaxCameraSize, Globals.MaxCameraSize) * 2.5f * Camera.main.aspect);
            BackgroundSprites[i].SetPosition(-BackgroundSprites[i].GetGeometrySize() / 2.0f);
            BackgroundSprites[i].SetDepth(Globals.BackgroundDepth - i); // Each layet is closer to the camera

            // Register sprite
            SManager.AddSprite(Background);
        }

        /*** Add Scene Elements & Load Enemey Spawn List ***/

        // Load the level gen. (note that we finish loading in the "OnLevelWasLoaded" because
        // of a Unity3D-specific design issue
        LevelLoaded = false;
        LevelGen = new LevelManager(TargetLevel);

        /*** TESTING: Add temp ships ***/

        // Create a few ships destroyers bottom right
        for(int i = 0; i < 6; i++)
        {
            int x = UnityEngine.Random.Range(-500, 500);
            int y = UnityEngine.Random.Range(-500, 500);

            BaseShip Friendly = null;
            if(i == 0)
                Friendly = new CarrierShip();
            else if(i == 1)
                Friendly = new DestroyerShip();
            else
                Friendly = new FighterShip();
            Friendly.SetPos(new Vector2(x, y));
            ShipManager.ShipsList.Add(Friendly);
        }
    }
Esempio n. 45
0
        /// <summary>
        /// Check the household numbers
        /// </summary>
        /// <param name="buildings"></param>
        /// <param name="citizens"></param>
        /// <param name="i"></param>
        private void checkResidentialHouseholds(BuildingManager buildings, CitizenManager citizens, int i)
        {
            Building building = buildings.m_buildings.m_buffer[i];
            BuildingInfo info = building.Info;
            int width = building.Width;
            int length = building.Length;

            if ((info != null) && (info.m_buildingAI is ResidentialBuildingAI))
            {
                int modHomeCount = ((ResidentialBuildingAI)info.m_buildingAI).CalculateHomeCount(new ColossalFramework.Math.Randomizer(i), width, length);

                // If the modded home count is meant to be less than the original
                if (modHomeCount < Game_ResidentialAI.CalculateHomeCount(new ColossalFramework.Math.Randomizer(i), width, length, info.m_class.m_subService, info.m_class.m_level))
                {
                    int houseHoldCount = 0;
                    uint citizenIndex = building.m_citizenUnits;
                    while (houseHoldCount < modHomeCount)  // Fast forward
                    {
                        citizenIndex = citizens.m_units.m_buffer[(int)((UIntPtr)citizenIndex)].m_nextUnit;
                        houseHoldCount++;
                    }

                    // Disconnect the rest
                    while (citizenIndex != 0u)
                    {
                        CitizenUnit c = citizens.m_units.m_buffer[(int)((UIntPtr)citizenIndex)];

                        citizens.ReleaseUnits(citizenIndex);
                        citizenIndex = c.m_nextUnit;

                        // Reset the flags which could make the game think this group has connections to a home
                        c.m_nextUnit = 0u;
                        c.m_building = 0;
                        c.m_flags = CitizenUnit.Flags.None;
                    }
                }
            }
        }
Esempio n. 46
0
 private static bool isBuildingCreated(BuildingManager bMgr, ushort iBuildingIndex)
 {
     if ((bMgr.m_buildings.m_buffer[iBuildingIndex].m_flags & Building.Flags.Created) == Building.Flags.Created)
     {
         return true;
     }
     return false;
 }
 void Awake()
 {
     instance = this;
 }
    public Building selectedBuilding = null; //Bulding which the player wants to build

    #endregion Fields

    #region Methods

    public void Start()
    {
        instance = this;
    }
Esempio n. 49
0
    public void EnterFreeMode() {
        Situation = GameSituation.Free;
		ZonesParentGO.SetActive (false);
        if (currentBuildingPrototype != null)
        {
            Destroy(currentBuildingPrototype.MainTransform.gameObject);
            currentBuildingPrototype = null;
        }
    }
 private void Initialize()
 {
     this._buildingManager = Singleton<BuildingManager>.instance;
     this._simulationManager = Singleton<SimulationManager>.instance;
     this._effectManager = Singleton<EffectManager>.instance;
     this._economyManager = Singleton<EconomyManager>.instance;
     this._coverageManager = Singleton<CoverageManager>.instance;
     this._nullAudioGroup = new AudioGroup(0, new SavedFloat("NOTEXISTINGELEMENT", Settings.gameSettingsFile, 0f, false));
 }
Esempio n. 51
0
 public PlayerSelectionState(GameManager gameManager, BuildingManager buildingManager, IResourceManager resourceManager)
     : base(gameManager, buildingManager, resourceManager)
 {
 }
Esempio n. 52
0
 public PlayerBuildingSingleStructureState(GameManager gameManager, BuildingManager buildingManager) : base(gameManager)
 {
     this.buildingManager = buildingManager;
 }
Esempio n. 53
0
 private void Awake()
 {
     bM = FindObjectOfType <BuildingManager> ();
     gM = FindObjectOfType <GameManager> ();
 }
        private static void HandleFireSpread(CommonBuildingAI CBAI, ushort buildingID, ref Building buildingData, int fireDamage)
        {
            unsafe
            {
                Quad2   quad2    = new Quad2();
                int     width    = buildingData.Width;
                int     length   = buildingData.Length;
                Vector2 vector2  = VectorUtils.XZ(buildingData.m_position);
                Vector2 vector21 = new Vector2(Mathf.Cos(buildingData.m_angle), Mathf.Sin(buildingData.m_angle));
                Vector2 vector22 = new Vector2(vector21.y, -vector21.x);
                float   single   = (float)Singleton <SimulationManager> .instance.m_randomizer.Int32(8, 32);

                quad2.a = (vector2 - (((float)width * 4f + single) * vector21)) - (((float)length * 4f + single) * vector22);
                quad2.b = (vector2 + (((float)width * 4f + single) * vector21)) - (((float)length * 4f + single) * vector22);
                quad2.c = (vector2 + (((float)width * 4f + single) * vector21)) + (((float)length * 4f + single) * vector22);
                quad2.d = (vector2 - (((float)width * 4f + single) * vector21)) + (((float)length * 4f + single) * vector22);
                Vector2 vector23  = quad2.Min();
                Vector2 vector24  = quad2.Max();
                float   mPosition = buildingData.m_position.y - (float)buildingData.m_baseHeight;

                //krn
                //CBAI.m_info is private\instance /use reflection, should do reverse redirect.
                BuildingInfo bldgInfo;
                bldgInfo = (BuildingInfo)CBAI.GetType().GetField("m_info", BindingFlags.Instance | BindingFlags.Public).GetValue(CBAI);
                if (bldgInfo == null && bldgInfo.m_size == null)
                {
                    Logger.dbgLog("bldgInfo was null");
                }

                float mPosition1 = buildingData.m_position.y + bldgInfo.m_size.y;

                //org
                //float mPosition1 = buildingData.m_position.y + this.m_info.m_size.y;
                //end org
                float      mFireIntensity = (float)(buildingData.m_fireIntensity * (64 - Mathf.Abs(fireDamage - 192)));
                InstanceID instanceID     = new InstanceID()
                {
                    Building = buildingID
                };
                InstanceManager.Group group = Singleton <InstanceManager> .instance.GetGroup(instanceID);

                if (group != null)
                {
                    ushort disaster = group.m_ownerInstance.Disaster;
                    if (disaster != 0)
                    {
                        DisasterManager disasterManager       = Singleton <DisasterManager> .instance;
                        DisasterInfo    info                  = disasterManager.m_disasters.m_buffer[disaster].Info;
                        int             fireSpreadProbability = info.m_disasterAI.GetFireSpreadProbability(disaster, ref disasterManager.m_disasters.m_buffer[disaster]);
                        mFireIntensity = mFireIntensity * ((float)fireSpreadProbability * 0.01f);
                    }
                }
                int             num             = Mathf.Max((int)((vector23.x - 72f) / 64f + 135f), 0);
                int             num1            = Mathf.Max((int)((vector23.y - 72f) / 64f + 135f), 0);
                int             num2            = Mathf.Min((int)((vector24.x + 72f) / 64f + 135f), 269);
                int             num3            = Mathf.Min((int)((vector24.y + 72f) / 64f + 135f), 269);
                BuildingManager buildingManager = Singleton <BuildingManager> .instance;
                for (int i = num1; i <= num3; i++)
                {
                    for (int j = num; j <= num2; j++)
                    {
                        ushort   mBuildingGrid = buildingManager.m_buildingGrid[i * 270 + j];
                        int      num4          = 0;
                        object[] paramcall;
                        while (mBuildingGrid != 0)
                        {
                            //Should we change this 262144?
                            if (mBuildingGrid != buildingID && (float)Singleton <SimulationManager> .instance.m_randomizer.Int32(262144) * single < mFireIntensity)
                            {
                                //Logger.dbgLog("Handlefire1");

                                paramcall = new object[] { quad2, mPosition, mPosition1, mBuildingGrid, buildingManager.m_buildings.m_buffer[mBuildingGrid], group };

                                //var x = CBAI.GetType().GetMethod("TrySpreadFire", BindingFlags.Static | BindingFlags.NonPublic).Invoke(CBAI, paramcall);

                                LimitCommonBuildingAI.TrySpreadFire(quad2, mPosition, mPosition1, mBuildingGrid, ref buildingManager.m_buildings.m_buffer[mBuildingGrid], group);

                                //Logger.dbgLog("Handlefire2");

                                //orginal
                                //CommonBuildingAI.TrySpreadFire(quad2, mPosition, mPosition1, mBuildingGrid, ref buildingManager.m_buildings.m_buffer[mBuildingGrid], group);
                            }
                            mBuildingGrid = buildingManager.m_buildings.m_buffer[mBuildingGrid].m_nextGridBuilding;
                            int num5 = num4 + 1;
                            num4 = num5;
                            if (num5 < 49152)
                            {
                                continue;
                            }
                            CODebugBase <LogChannel> .Error(LogChannel.Core, string.Concat("Invalid list detected!\n", Environment.StackTrace));

                            break;
                        }
                    }
                }
                Vector3     vector3     = VectorUtils.X_Y(vector21);
                Vector3     vector31    = VectorUtils.X_Y(vector22);
                int         num6        = Mathf.Max((int)((vector23.x - 32f) / 32f + 270f), 0);
                int         num7        = Mathf.Max((int)((vector23.y - 32f) / 32f + 270f), 0);
                int         num8        = Mathf.Min((int)((vector24.x + 32f) / 32f + 270f), 539);
                int         num9        = Mathf.Min((int)((vector24.y + 32f) / 32f + 270f), 539);
                TreeManager treeManager = Singleton <TreeManager> .instance;
                for (int k = num7; k <= num9; k++)
                {
                    for (int l = num6; l <= num8; l++)
                    {
                        uint mTreeGrid = treeManager.m_treeGrid[k * 540 + l];
                        int  num10     = 0;
                        while (mTreeGrid != 0)
                        {
                            Vector3 position   = treeManager.m_trees.m_buffer[mTreeGrid].Position;
                            Vector3 mPosition2 = position - buildingData.m_position;
                            mPosition2 = mPosition2 - (Mathf.Clamp(Vector3.Dot(mPosition2, vector3), (float)(-width) * 4f, (float)width * 4f) * vector3);
                            mPosition2 = mPosition2 - (Mathf.Clamp(Vector3.Dot(mPosition2, vector31), (float)(-length) * 4f, (float)length * 4f) * vector31);
                            float single1 = mPosition2.magnitude;
                            //Should we change this 131072?
                            //Logger.dbgLog("Handlefire3");

                            if (single1 < 32f && (float)Singleton <SimulationManager> .instance.m_randomizer.Int32(131072) * single1 < mFireIntensity)
                            {
                                treeManager.BurnTree(mTreeGrid, group, (int)buildingData.m_fireIntensity);
                            }
                            mTreeGrid = treeManager.m_trees.m_buffer[mTreeGrid].m_nextGridTree;
                            int num11 = num10 + 1;
                            num10 = num11;
                            if (num11 < LimitTreeManager.Helper.TreeLimit)
                            {
                                continue;
                            }
                            CODebugBase <LogChannel> .Error(LogChannel.Core, string.Concat("Invalid list detected!\n", Environment.StackTrace));

                            break;
                        }
                    }
                }
            }
        }
Esempio n. 55
0
    void Start()
    {
        KeyPressed = new EconEvent();

        // TODO: move these to respective managers
        KeyPressed.AddListener((args) =>
        {
            if (args.IsPressed(KeyCode.B))
            {
                BuildingManager.StartPlacingHouse();
            }

            return(args.RemoveKeys(KeyCode.B));
        });

        KeyPressed.AddListener((args) =>
        {
            if (args.IsPressed(KeyCode.Q))
            {
                UserActionManager.Chop();
            }

            return(args.RemoveKeys(KeyCode.Q));
        });

        KeyPressed.AddListener((args) =>
        {
            if (args.IsPressed(KeyCode.E))
            {
                UserActionManager.Interact();
            }

            return(args.RemoveKeys(KeyCode.E));
        });

        KeyPressed.AddListener((args) =>
        {
            if (args.IsPressed(KeyCode.Escape))
            {
                //if (UIManager.Dialog.activeInHierarchy)
                //{
                //    // We have an active dialog - dismiss it
                //    UIManager.Dialog.SetActive(false);
                //}
                //else
                {
                    UIManager.ToggleSettingsDialog();
                }
            }

            return(args.RemoveKeys(KeyCode.Escape));
        });

        KeyPressed.AddListener((args) =>
        {
            if (ChatManager.IsActive)
            {
                return(args.ClearKeys());
            }

            return(args);
        });

        KeyPressed.AddListener((args) =>
        {
            if (args.IsPressed(KeyCode.I))
            {
                UIManager.TogglePlayerInventory();
            }

            return(args.RemoveKeys(KeyCode.I));
        });
    }
        /*
         * Handles removal of buildings and status changes
         *
         * Note: Just because a building has been removed visually, it does not mean
         * it is removed as far as the game is concerned. The building is only truly removed
         * when the frame covers the building's id, and that's when we will remove the
         * building from our records.
         */
        public override void OnUpdate(float realTimeDelta, float simulationTimeDelta)
        {
            if (_terminated) return;

            if (!_helper.BuildingMonitorSpinnable) return;

            if (!_settings.Enable._BuildingMonitor) return;

            try
            {
                if (!_initialized)
                {
                    _data = Data.Instance;

                    _mapping = new BuildingPrefabMapping();

                    _paused = false;

                    _instance = Singleton<BuildingManager>.instance;
                    _capacity = _instance.m_buildings.m_buffer.Length;

                    _id = (ushort)_capacity;

                    _added.Clear();
                    _removed.Clear();

                    for (ushort i = 0; i < _capacity; i++)
                    {
                        if (ProcessBuilding(i))
                            UpdateBuilding();
                    }

                    _lastProcessedFrame = GetFrame();

                    _initialized = true;
                    _helper.BuildingMonitorSpun = true;
                    _helper.BuildingMonitor = this;

                    _helper.NotifyPlayer("Building monitor initialized");
                }
                else if (!SimulationManager.instance.SimulationPaused)
                {
                    _data._BuildingsAdded.Clear();
                    _data._BuildingsUpdated.Clear();
                    _data._BuildingsRemoved.Clear();

                    foreach (ushort i in _added)
                        _data._BuildingsAdded.Add(i);

                    _added.Clear();

                    foreach (ushort i in _removed)
                        _data._BuildingsRemoved.Add(i);

                    _removed.Clear();

                    int end = GetFrame();

                    while (_lastProcessedFrame != end)
                    {
                        _lastProcessedFrame = GetFrame(_lastProcessedFrame + 1);

                        int[] boundaries = GetFrameBoundaries(_lastProcessedFrame);
                        ushort id;

                        for (int i = boundaries[0]; i <= boundaries[1]; i++)
                        {
                            id = (ushort)i;

                            if (UpdateBuilding(id))
                                _data._BuildingsUpdated.Add(id);
                            else if (_data._Buildings.Contains(id))
                            {
                                _data._BuildingsRemoved.Add(id);
                                RemoveBuilding(id);
                            }
                        }
                    }
                }

                OutputDebugLog();
            }
            catch (Exception e)
            {
                string error = "Building monitor failed to initialize\r\n";
                error += String.Format("Error: {0}\r\n", e.Message);
                error += "\r\n";
                error += "==== STACK TRACE ====\r\n";
                error += e.StackTrace;

                _helper.Log(error);

                _terminated = true;
            }

            base.OnUpdate(realTimeDelta, simulationTimeDelta);
        }