void CreateButton(UnitCreator creator) { GameObject buttonObject = Instantiate <GameObject>(buttonPrefab, this.transform); UnitButtonScript button = buttonObject.GetComponent <UnitButtonScript>(); button.OnCreation(creator); }
void CreateButton(UnitCreator creator) { GameObject buttonObject = Instantiate <GameObject>(heroButtonPrefab, legalHeroes.transform); ClickableHeroUIScript button = buttonObject.GetComponentInChildren <ClickableHeroUIScript>(); button.OnCreation(creator); }
public override void OnGUI(MazeCreationWorkflowBackEnd backend) { unitPrefab = EditorGUILayout.ObjectField("Unit Prefab:", unitPrefab, typeof(GameObject), false) as GameObject; if (unitPrefab != null) { var unit = unitPrefab.GetComponent <MazeUnit>(); if (unit != null) { if (unit.Dimension != backend.selectedMaze.RoomDimension) { EditorUtility.DisplayDialog("Wrong Size!", "The selected Prefab has not the correct dimensions!", "Ok"); unitPrefab = null; } else { unitDimensions = unit.Dimension; } } else { EditorUtility.DisplayDialog("Wrong Selection!", "The Selected Prefab is not a MazeUnit!", "Reset"); unitPrefab = null; } } unitDimensions = EditorGUILayout.Vector3Field("Cell Size: ", unitDimensions); if (unitPrefab == null && GUILayout.Button("Create new Unit")) { UnitCreator.OpenUnitCreator(backend.selectedMaze.RoomDimension, c => { // get the created Unit prefab automaticaly back to the Editor Window c.onUnitPrefabCreated += prefab => { var mazeUnit = prefab.GetComponent <MazeUnit>(); if (mazeUnit != null) { unitPrefab = prefab; } }; }); } EditorGUILayout.Space(); if (unitPrefab == null) { removeMode = GUILayout.Toggle(removeMode || Event.current.shift, "Remove", "Button"); return; } EditorGUILayout.BeginHorizontal(); addMode = GUILayout.Toggle(!removeMode, "Add", "Button"); removeMode = GUILayout.Toggle(!addMode || Event.current.shift, "Remove", "Button"); EditorGUILayout.EndHorizontal(); }
static void Main(string[] args) { Creator creator = new UnitCreator(); List <IUnit> characters = new List <IUnit>(); characters.Add(creator.CreateUnit(UnitType.Fighter, 2)); characters.Add(creator.CreateUnit(UnitType.Archer, 5)); characters.Add(creator.CreateUnit(UnitType.Mage, 8)); characters.Add(creator.CreateUnit(UnitType.Archer, 4)); characters.Add(creator.CreateUnit(UnitType.Fighter, 6)); foreach (var c in characters) { Console.WriteLine(c.SaySomething()); } foreach (var c in characters) { Console.WriteLine(c.ShowDetails()); } Console.ReadKey(); }
public GameObject AddButton(UnitCreator unit) { GameObject unitButton = Object.Instantiate(buttonPrefab, targetTransform); unitButton.name = unit.name; unitButton.GetComponent <UnitButtonScript>().OnCreation(unit); return(unitButton); }
void SetToChosenHero() { Hero hero = UnitCreator.FindUnitPrefabByName(Global.instance.armySavingManager.currentSave.heroPrefabPath).GetComponent <Hero>(); OnHeroChoice(hero.avatarTransparent); UnitStatShower.UpdateUnitInfo(hero); pedestal.ShowUnit(hero.gameObject); }
public void AddUnit(UnitCreator unit) { if (ownedUnits.ContainsKey(unit) == false) { GameObject button = AddButton(unit); ownedUnits.Add(unit, button.GetComponent <UnitButtonScript>()); } ownedUnits[unit].amount++; currentMoney -= unit.GetCost(); }
void InstantiateUnit(string unitID, int playerID, int index) { GameObject UnitObject = UnitCreator.FindUnitPrefabByName(unitID); GameObject InstantiatedUnit = Instantiate(UnitObject, Vector3.zero, UnitObject.transform.rotation); Unit myUnit = InstantiatedUnit.GetComponent <Unit>(); myUnit.index = index; Global.instance.playerTeams[playerID].players[0].AddUnit(myUnit); InstantiatedUnit.name = myUnit.info.unitName; }
private void DivideQuantitiesWithSameUnits() { var myPascal = new UnitCreator(StandardUnitsCatalog.Kilogram).Divide(StandardUnitsCatalog.Meter, StandardUnitsCatalog.Second, StandardUnitsCatalog.Second).Create(); var dividend = new Quantity <double>(782.0, StandardUnitsCatalog.Pascal); var divisor = new Quantity <double>(100.0, myPascal); var result = dividend / divisor; Console.WriteLine("--- Divide pressure with pressure ---"); Console.WriteLine("{0} / {1} = {2}", dividend, divisor, result); Console.WriteLine(); }
public void OnCreation(UnitCreator creator) { myImage = GetComponent <Image>(); myImage.sprite = creator.prefab.GetComponent <Hero>().avatarTransparent; SpriteState ss = new SpriteState(); ss.highlightedSprite = creator.prefab.GetComponent <Hero>().avatarHighlightedTransparent; GetComponentInChildren <Button>().spriteState = ss; unitCreator = creator; GetComponent <Button>().onClick.AddListener(TaskOnClick); }
public void TryAddUnit(Button button) { UnitCreator unit = button.GetComponent <UnitButtonScript>().unitCreator; if (CanBeLegallyAdded(unit)) { //This has to be manually these two cause you dont want the second one done on each AddUnit (not when loading army). AddUnit(unit); Global.instance.armySavingManager.currentSave.AddUnit(unit); } }
void Start() { if (GetComponent <UnitButtonScript>() != null) { myUnit = GetComponent <UnitButtonScript>().unitCreator; } else { myUnit = GetComponent <ClickableHeroUIScript>().unitCreator; } pedestal = FindObjectOfType <Pedestal>(); }
private static bool IsInstance () { if (instance == null) { instance = FindObjectOfType (typeof (UnitCreator)) as UnitCreator; if (instance == null) { Debug.LogError ("Can't seem to find any Gameobject that has UnitCreator class"); return false; } } return true; }
public int GetQuantityOfUnit(UnitCreator unit) { int returnInt = 0; foreach (string possible in unitPrefabPaths) { if (unit.name == possible) { returnInt++; } } return(returnInt); }
private void CalculatePressureUnderWater() { var densityUnit = new UnitCreator(StandardUnitsCatalog.Kilogram).Divide(StandardUnitsCatalog.CubicMeter).Create(); var accelerationUnit = new UnitCreator(StandardUnitsCatalog.MetersPerSecond).Divide(StandardUnitsCatalog.Second).Create(); var depth = new Quantity <double>(30.0, StandardUnitsCatalog.Meter); var density = new Quantity <double>(1000.0, densityUnit); var gravity = new Quantity <double>(9.81, accelerationUnit); var pressure = depth * gravity * density; Console.WriteLine("--- Pressure under water ---"); Console.WriteLine("At {0}: {1}", depth, pressure); Console.WriteLine(); }
void CreateScriptableObject() { //CreateAssetMenuAttribute menuattribute = new CreateAssetMenuAttribute(); UnitCreator obj = ScriptableObject.CreateInstance <UnitCreator>(); obj.m_unitname = m_unitname; obj.m_health = m_health; obj.m_movementspeed = m_movementspeed; obj.m_damageamount = m_damageamount; obj.m_buildcost = m_buildcost; obj.m_worthkilling = m_worthkilling; obj.m_unittype = (UnitCreator.UnitType)m_unittype; }
public void Simple() { var producing = UnitCreator.CreateUnit("simple producing unit"); State.AddUnit(producing, new Vector2(0, 0)); Engine.ProduceUnit(producing, "simple combat unit"); FullUpdate(); var expected = State.Units.FirstOrDefault(u => u.GetType() == typeof(SimpleCombatUnit)); Assert.NotNull(expected); Assert.AreEqual(expected.Id, 1); // но это необязательно Assert.AreEqual(expected.Position, new Vector2(1, 1)); }
private static bool IsInstance() { if (instance == null) { instance = FindObjectOfType(typeof(UnitCreator)) as UnitCreator; if (instance == null) { Debug.LogError("Can't seem to find any Gameobject that has UnitCreator class"); return(false); } } return(true); }
public void OnCreation(UnitCreator _unitCreator) { screen = FindObjectOfType <AMScreen_UnitsChoice>(); unitCreator = _unitCreator; myUnit = unitCreator.prefab.GetComponent <Unit>(); limit = GetComponentsInChildren <Text>()[2]; limit.fontSize = 20; theName = GetComponentsInChildren <Text>()[0]; value = GetComponentsInChildren <Text>()[1]; theName.text = myUnit.info.unitName; this.GetComponent <Button>().onClick.AddListener(() => OnButtonPressed()); limit.color = Color.white; theName.color = Color.white; value.color = Color.white; value.text = myUnit.statistics.cost.ToString(); amount = 0; }
//AudioManager aScript; // Use this for initialization void Start() { int x = 20; int y = 40; GameObject turnMan = Instantiate(tmanager); GameObject mapCreator = Instantiate(mcreator); GameObject unitCreator = Instantiate(ucreator); GameObject inputMan = Instantiate(imanager); //GameObject audioMan = Instantiate (amanager); tScript = turnMan.GetComponent <TurnManagerScript> (); mScript = mapCreator.GetComponent <MapCreation> (); uScript = unitCreator.GetComponent <UnitCreator> (); iScript = inputMan.GetComponent <InputManagerScript> (); uScript.mapSize = new Vector2(20, 40); int[,] map = new int [x, y]; for (int i = 0; i < x; ++i) { for (int j = 0; j < y; ++j) { if (i == 0 || i == x - 1 || j == 0 || j == y - 1) { map [i, j] = 0; } else { map [i, j] = Random.Range(1, 4); } } } //just to test map [10, 10] = -1; map [10, 20] = -1; mScript.setMatrix(map, x, y, new Vector3(45, -45, 0), 0.8f, Color.white); uScript.tutorialUnits(); turnMan.GetComponent <TurnManagerScript> ().unitMap = uScript.getUnitMap(); turnMan.GetComponent <TurnManagerScript> ().unitList = uScript.getUnitLists(); tScript.mapSize = new Vector2(20, 40); tScript.terrain = map; inputMan.GetComponent <InputManagerScript> ().setTurnMan(tScript); inputMan.GetComponent <InputManagerScript> ().setMapCreat(mScript); }
public void Initialize(BattleLogicController battleLogicController, Dictionary <UnitType, int> unitCredits, LevelConfiguration levelConfiguration) { var unitCreatorGO = Instantiate(unitCreatorPrefab); unitCreator = unitCreatorGO.GetComponent <UnitCreator>(); unitCreator.Initialize(); unitCreator.unitCreateEvent += OnUnitCreation; playerBar = GameObject.FindGameObjectWithTag("PlayerBar").GetComponent <ArmyBar>(); enemyBar = GameObject.FindGameObjectWithTag("EnemyBar").GetComponent <ArmyBar>(); SetUpButtons(unitCredits); winScreen = GameObject.FindGameObjectWithTag("WinCondition"); loseScreen = GameObject.FindGameObjectWithTag("LoseCondition"); this.battleLogicController = battleLogicController; this.levelConfiguration = levelConfiguration; }
void RemoveUnit(UnitCreator unit) { if (ownedUnits[unit].amount > 1) { ownedUnits[unit].amount--; } else { if (Application.isEditor) { Object.DestroyImmediate(ownedUnits[unit].gameObject); } else { Object.Destroy(ownedUnits[unit].gameObject); } ownedUnits.Remove(unit); } currentMoney += unit.GetCost(); Global.instance.armySavingManager.currentSave.RemoveUnit(unit); }
public void SpawnUnit(GameObject unit) { UnitCreator unitdataobj = unit.GetComponent <UnitDataGetter>().UnitData; if (unitdataobj.m_buildcost <= m_currentgold) { Instantiate(unit); if (unitdataobj.m_unittype == UnitCreator.UnitType.Miner) { unit.transform.position = m_minerunitspawnpointplayer.position; } else { unit.transform.position = m_unitspawnpointplayer.position; } m_currentgold -= unitdataobj.m_buildcost; } else { Debug.Log("That unit is to expenisve"); } }
public UnitController(GridNode[,] gridNodes) { this.gridNodes = gridNodes; unitCreator = new UnitCreator(gridNodes); moveHighlighter = Object.FindObjectOfType <MoveHighlighter>(); }
public void SetHero(UnitCreator hero) { heroPrefabPath = hero.name; }
public void TryRemoveUnit(Button button) { UnitCreator unit = button.GetComponent <UnitButtonScript>().unitCreator; RemoveUnit(unit); }
public void RemoveUnit(UnitCreator unit) { unitPrefabPaths.Remove(unit.name); }
bool CanBeLegallyAdded(UnitCreator unitCreator) { return(currentMoney >= unitCreator.GetCost() && Global.instance.armySavingManager.currentSave.GetQuantityOfUnit(unitCreator) < unitCreator.GetLimit()); }
public MapEditorScreen(string map) { TransitionOnTime = TimeSpan.FromSeconds(1.5); TransitionOffTime = TimeSpan.FromSeconds(0.5); UnitCreator.Initialize(); _nullCursor = new Vector2(-1, -1); _terrains = new[] { new Terrain("Plains", false, 1, 1, 1, 2, 1, 1, 1, -1, -1), new Terrain("Road", false, 0, 1, 1, 1, 1, 1, 1, -1, -1), new Terrain("Wood", true, 3, 1, 1, 3, 3, 2, 1, -1, -1), new Terrain("Mountain", false, 4, 2, 1, -1, -1, -1, 1, -1, -1), new Terrain("Wasteland", false, 2, 1, 1, 3, 3, 2, 1, -1, -1), new Terrain("Ruins", true, 1, 1, 1, 2, 1, 1, 1, -1, -1), new Terrain("Sea", false, 0, -1, -1, -1, -1, -1, 1, 1, 1), new Terrain("BridgeSea", false, 0, 1, 1, 1, 1, 1, 1, 1, 1), new Terrain("BridgeRiver", false, 0, 1, 1, 1, 1, 1, 1, 1, 1), new Terrain("River", false, 0, 2, 1, -1, -1, -1, 1, -1, -1), new Terrain("Beach", false, 0, 1, 1, 2, 2, 1, 1, -1, 1), new Terrain("Rough Sea", false, 0, -1, -1, -1, -1, -1, 1, 2, 2), new Terrain("Mist", true, 0, -1, -1, -1, -1, -1, 1, 1, 1), new Terrain("Reef", true, 0, -1, -1, -1, -1, -1, 1, 2, 2) }; // Load map data from TXT file var flines = File.ReadLines("Content/Maps/" + map + ".txt") .Where(l => l.Length != 0 && !l.StartsWith("#")) .ToList(); //_mapName = flines[0].Trim(); _mapWidth = Convert.ToInt32(flines[1].Trim()); _mapHeight = Convert.ToInt32(flines[2].Trim()); var plyers = flines.GetRange(3, 4).Where(l => !l.StartsWith("0")).ToArray(); _players = new Player[plyers.Length]; for (var i = 0; i < _players.Length; ++i) { _players[i] = new Player(i + 1, Convert.ToInt32(plyers[i].Trim())); } var terrainLines = new string[_mapHeight]; var read = 0; for (var i = 7; i < _mapHeight + 7; ++i) { var line = flines[i].Trim(); terrainLines[read++] = line; } var buildings = flines; buildings.RemoveRange(0, _mapHeight + 7); // Generate terrain according to map data _mapTerrains = new Terrain[_mapHeight, _mapWidth]; for (var y = 0; y < _mapHeight; ++y) { for (var x = 0; x < _mapWidth; ++x) { var type = terrainLines[y][x] >= '0' && terrainLines[y][x] <= '9' ? terrainLines[y][x] - '0' : terrainLines[y][x] - 'a' + 10; _mapTerrains[y, x] = _terrains[type]; } } var bOrder = new[] { "Headquarter", "City", "Factory", "Port", "Airport" }; _mapBuildings = new Building[_mapHeight, _mapWidth]; _units = new List <Unit>(); foreach (var data in buildings.Select(b => b.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries))) { var p = Convert.ToInt32(data[2]); if (data.Length == 5) { var u = UnitCreator.Unit( data[3], _players[p - 1], new Vector2( Convert.ToInt32(data[1]), Convert.ToInt32(data[0]))); u.Life = Convert.ToInt32(data[4]) * 10; _units.Add(u); } else if (data.Length == 4) { var x = Convert.ToInt32(data[1]); var y = Convert.ToInt32(data[0]); _mapBuildings[y, x] = new Building(bOrder[Convert.ToInt32(data[3])], p == 0 ? null : _players[p - 1], new Vector2(x, y)); } } _camera = new Vector2(-50, -80); }
void Awake () { instance = this; }
private void Awake() { instance = this; }
void Awake() { instance = this; }