void Update() { if (!leaderDead && !friendly) { transform.LookAt(PlayerMovement.player.transform); transform.position += transform.forward * speed; } else if (!friendly) { if (waypoint == Vector3.zero) { waypoint = (Random.insideUnitSphere * 30) + transform.position; transform.LookAt(waypoint); } transform.position += (transform.forward * slothSpeed); } if (friendly) { target = Utilts.FindTarget(gameObject.transform); transform.LookAt(target.transform); if (attackTimer < Time.timeSinceLevelLoad) { attackTimer = Time.timeSinceLevelLoad + attackRate; Instantiate(bullet, transform.position + transform.forward * 3, transform.rotation); } } }
public void UpdateCraftableRecipes() { foreach (Button btn in flavBtns) { Flavor flav = btn.GetComponent <FlavGetter>().associatedFlav; int amountCanBeMade = Utilts.CanMakeRecipe(flav); Dropdown dp = btn.GetComponentInChildren <Dropdown>(); if (amountCanBeMade == 0) { btn.enabled = false; btn.GetComponent <Image>().color = Color.red; if (dp != null) { dp.gameObject.SetActive(false); } } else { dp.gameObject.SetActive(true); btn.GetComponent <Image>().color = Color.white; dp.ClearOptions(); List <string> num = new List <string>(); for (int i = 0; i < amountCanBeMade; i++) { num.Add((i + 1).ToString()); } dp.AddOptions(num); } } }
// Update is called once per frame void Update() { if (attackTimer < Time.timeSinceLevelLoad) { Utilts.FireLaser(transform, prefab_laser); attackTimer = Time.timeSinceLevelLoad + attackRate; } }
void UpdateOptions(GameObject parent, Dropdown dp) { Dropdown[] menus = parent.GetComponentsInChildren <Dropdown>(); Dictionary <ResourceType, int> tempResDict = CharacterManager.Instance.pData.resources; foreach (Dropdown drop in menus) { if (drop.value > 0) { ItemInfo itemInfo = drop.transform.GetComponent <ItemInfo>(); foreach (ResourceType rType in itemInfo.itemCost.Keys) { Debug.Log(itemInfo); tempResDict[rType] -= (drop.value * itemInfo.itemCost[rType]); if (tempResDict[rType] == 0) { tempResDict.Remove(rType); } } } } foreach (Dropdown drop in menus) { if (dp != null && drop == dp) { continue; } ItemInfo itemInfo = drop.transform.parent.GetComponent <ItemInfo>(); int amountCanAfford = Utilts.DictionaryMod(tempResDict, itemInfo.itemCost); List <string> num = new List <string>(); drop.ClearOptions(); if (amountCanAfford <= 0) { drop.transform.parent.GetComponent <Image>().color = Color.red; drop.enabled = false; continue; } for (int i = 0; i < amountCanAfford; i++) { num.Add((i + 1).ToString()); } drop.AddOptions(num); } }
public void BuyItem() { GameObject go = EventSystem.current.currentSelectedGameObject; /// /// Find a better way to get the correct sec when there are multiple in scene /// Secretariat sec = GameObject.FindGameObjectWithTag("Secretariat").GetComponent <Secretariat>(); Dropdown[] lst = go.transform.parent.GetComponentsInChildren <Dropdown>(true); foreach (Dropdown dp in lst) { if (dp.enabled) { int amount = Utilts.GetDropDownVal(dp); ItemInfo itemInfo = dp.gameObject.GetComponent <ItemInfo>(); foreach (ResourceType rType in itemInfo.itemCost.Keys) { CharacterManager.Instance.pData.resources[rType] -= itemInfo.itemCost[rType]; } if (itemInfo.ingredient != Ingredient.NULL) { if (CharacterManager.Instance.pData.ingredientsHeld.ContainsKey(itemInfo.ingredient)) { CharacterManager.Instance.pData.ingredientsHeld[itemInfo.ingredient] += amount; } else { CharacterManager.Instance.pData.ingredientsHeld.Add(itemInfo.ingredient, amount); } } else if (itemInfo.weapon != null) { if (CharacterManager.Instance.pData.weapons.ContainsKey(itemInfo.weapon.name)) { CharacterManager.Instance.pData.weapons[itemInfo.weapon.name].Add(itemInfo.weapon); } else { List <GameObject> temp = new List <GameObject>(); temp.Add(itemInfo.weapon); CharacterManager.Instance.pData.weapons.Add(itemInfo.weapon.name, temp); } } } } GelatoCanon.Instance.ResetCounter(true); UpdateOptions(go); }
void CreateStoreItem(Dictionary <ResourceType, int> cost, string itemName) { RectTransform temp = Instantiate(storeItem as RectTransform); temp.GetComponent <RectTransform>().SetParent(storePanel.transform, false); temp.GetComponent <RectTransform>().anchoredPosition = new Vector2(xCoord * 175, yCoord * 100) + padding; temp.GetComponentInChildren <Text>().text = itemName; temp.gameObject.name = itemName; int amountCanAfford = Utilts.DictionaryMod(CharacterManager.Instance.pData.resources, cost); if (xCoord < 1) { xCoord++; } else { xCoord = -2; yCoord++; } Dropdown dp = temp.GetComponentInChildren <Dropdown>(); dp.onValueChanged.AddListener(delegate { UpdateOptions(dp.transform.parent.parent.gameObject, dp); }); dp.gameObject.AddComponent <ItemInfo>(); dp.gameObject.GetComponent <ItemInfo>().itemCost = cost; if (amountCanAfford == 0) { temp.GetComponent <Image>().color = Color.red; dp.enabled = false; } else { dp.enabled = true; dp.ClearOptions(); List <string> num = new List <string>(); for (int i = 0; i < amountCanAfford; i++) { num.Add((i + 1).ToString()); } dp.AddOptions(num); } }
public void MakeReceipe() { GameObject go = EventSystem.current.currentSelectedGameObject; string name = go.name; Flavors flav; int amount = Utilts.GetDropDownVal(go); try { flav = (Flavors)System.Enum.Parse(typeof(Flavors), name); if (CharacterManager.Instance.pData.gelato_inventory.ContainsKey(flav)) { CharacterManager.Instance.pData.gelato_inventory[flav] += amount; } else { CharacterManager.Instance.pData.gelato_inventory.Add(flav, amount); } } catch { throw new System.Exception("Gelato Flavor Mismatch"); } Flavor flavClass = go.GetComponent <FlavGetter>().associatedFlav; Ingredient[] ingredients = flavClass.ingredientsNeeded.Keys.ToArray(); foreach (Ingredient ing in ingredients) { int removeAmount = flavClass.ingredientsNeeded[ing] * amount; int amountHeld = CharacterManager.Instance.pData.ingredientsHeld[ing]; if (amountHeld - removeAmount == 0) { CharacterManager.Instance.pData.ingredientsHeld.Remove(ing); } else { CharacterManager.Instance.pData.ingredientsHeld[ing] -= removeAmount; } } UpdateCraftableRecipes(); UpdateGelatoMenu(); }
public ActionResult Confrim(int?id) { IEnumerable <ApplicationUser> them = unitOfWork.UserRepository.Get().Where(s => s.RoleName.Equals(RolesConst.PROJECT_MANAGER)); Order ord = unitOfWork.OrderRepository.GetByID(id); ViewBag.pm = them; Project proj = new Project(); proj.costs = ord.Total; proj.projectStatus = ProjectStatus.Initial; proj.order = ord; List <WorkItem> wkItems = new List <WorkItem>(); string listItems = ord.orderItemsIds; IDictionary <int, int> prItems = new Dictionary <int, int>(); string[] wkitem = listItems.Split(';'); foreach (string k in wkitem) { string[] u = k.Split(':'); if (u.Length > 1) { int key = int.Parse(u[0]); int value = int.Parse(u[1]); prItems.Add(key, value); } } foreach (KeyValuePair <int, int> kvp in prItems) { ProductItem pr = unitOfWork.ProductItemRepository.GetByID(kvp.Key); List <WorkItem> wk = Utilts.GenericTasks(pr.Categorie).ToList(); for (int i = 0; i < kvp.Value; i++) { wkItems.AddRange(wk); } } proj.tasks = wkItems; return(View(proj)); }
public ActionResult Confrim(Project pro) { if (ModelState.IsValid) { Order ord = unitOfWork.OrderRepository.GetByID(pro.id); pro.order = ord; pro.costs = ord.Total; IEnumerable <ApplicationUser> them = unitOfWork.UserRepository.Get().Where(s => s.RoleName.Equals(RolesConst.PROJECT_MANAGER)); foreach (ApplicationUser manager in them) { if (manager.UserName.Equals(pro.nameProjectManager)) { pro.projectManager = manager; } } pro.projectStatus = ProjectStatus.Initial; List <WorkItem> wkItems = new List <WorkItem>(); string listItems = ord.orderItemsIds; IDictionary <int, int> prItems = new Dictionary <int, int>(); string[] wkitem = listItems.Split(';'); foreach (string k in wkitem) { string[] u = k.Split(':'); if (u.Length > 1) { int key = int.Parse(u[0]); int value = int.Parse(u[1]); prItems.Add(key, value); } } foreach (KeyValuePair <int, int> kvp in prItems) { ProductItem pr = unitOfWork.ProductItemRepository.GetByID(kvp.Key); List <WorkItem> wk = Utilts.GenericTasks(pr.Categorie).ToList(); for (int i = 0; i < kvp.Value; i++) { wkItems.AddRange(wk); } } unitOfWork.ProjectRepository.Insert(pro); unitOfWork.Save(); foreach (WorkItem wk in wkItems) { wk.assignedProject = pro; wk.DueDate = DateTime.Now.AddMonths(1).Date; wk.DateCreated = DateTime.Now.Date; unitOfWork.WorkItemRepository.Insert(wk); unitOfWork.Save(); } pro.tasks = wkItems; unitOfWork.ProjectRepository.Update(pro); ord.orderStartus = OrderStatus.InProgress; unitOfWork.OrderRepository.Update(ord); Finance last = unitOfWork.FinancesRepository.Get().Last(); decimal cost = 0 - ord.Total * 0.05m; Finance fin = new Finance() { TransactionName = "salary", From = "company", To = "orderManager", itemDescription = "advance", Date = DateTime.Now, Cost = cost, Balance = last.Balance + cost }; unitOfWork.FinancesRepository.Insert(fin); unitOfWork.Save(); Finance last1 = unitOfWork.FinancesRepository.Get().Last(); Finance fin1 = new Finance() { TransactionName = "income", From = ord.customer.UserName, To = "company", itemDescription = "item_bought", Date = DateTime.Now, Cost = ord.Total, Balance = last1.Balance + ord.Total }; unitOfWork.FinancesRepository.Insert(fin1); unitOfWork.Save(); return(RedirectToAction("Index")); } return(View()); }
public static void FireLaser(Transform obj, LineRenderer prefab_laser) { Ray ray = new Ray(obj.transform.position, obj.transform.forward); RaycastHit[] hits = Physics.RaycastAll(ray); LineRenderer laser = UnityEngine.MonoBehaviour.Instantiate(prefab_laser); laser.transform.SetParent(obj); bool foundTarget = false; foreach (RaycastHit hit in hits) { if (hit.transform.gameObject == obj.gameObject) { continue; } Transform parent = hit.transform.parent; if (parent != null && obj == parent) { continue; } laser.enabled = true; foundTarget = true; string hTag = hit.transform.tag; laser.SetPosition(0, obj.position); laser.SetPosition(1, hit.point); if (hTag == "Player") { PlayerMovement.player.TakeDamge(1); foundTarget = true; break; } else { if (hTag == "Astro" || hTag == "StationWeapons") { AudioManager.Instance.AstroCrack(); break; } IDamageable _IDamage = hit.transform.GetComponent <IDamageable>(); if (_IDamage == null) { Debug.Log(hit.transform); _IDamage = hit.transform.parent.GetComponent <IDamageable>(); } if (_IDamage != null) { _IDamage.TakeDamage(1); } if (hTag == "Astro") { UnityEngine.MonoBehaviour.Destroy(hit.transform.gameObject, Time.deltaTime * 5); Utilts.GetResources(hit.transform.gameObject); break; } } } if (!foundTarget) { laser.SetPosition(0, obj.position); laser.SetPosition(1, ray.GetPoint(10000)); } }
private void Update() { base.Update(); if (!isEnabled) { return; } if (target != null) { difAngle = Vector3.Angle(transform.forward, target.transform.forward); side = Utilts.AngleDir(transform.forward, target.transform.forward, transform.up); Vector3 oldPos = transform.position; if (difAngle > 142) { if (side == -1) { modPos = transform.right * moveSpeed * Time.deltaTime; } else { modPos = -transform.right * moveSpeed * Time.deltaTime; } } else if (difAngle > 60) { dist = Vector3.Distance(transform.position, target.transform.position); if (dist <= 500) { if (side == -1) { modPos = transform.right * 10 * moveSpeed * Time.deltaTime; } else { modPos = transform.right * -10 * moveSpeed * Time.deltaTime; } } } else { modPos = transform.forward * moveSpeed * Time.deltaTime; heightMod = Vector3.zero; } if (posTimer < Time.timeSinceLevelLoad) { posTimer = Time.timeSinceLevelLoad + 5; heightMod *= -1; } Collider[] hits = Physics.OverlapSphere(transform.position, 75); foreach (Collider col in hits) { if (col.tag == "SpaceStation") { collided = true; dir = col.ClosestPoint(transform.position); collidedTimer = Time.timeSinceLevelLoad + 3; break; } } if (!collided) { transform.position += (modPos + heightMod); } if (collidedTimer > Time.timeSinceLevelLoad) { transform.position -= dir.normalized * (moveSpeed * 2) * Time.deltaTime; } else { collided = false; } targetRot = Quaternion.LookRotation(target.transform.position - transform.position); transform.rotation = Quaternion.Slerp(transform.rotation, targetRot, rotationSpeed); } }
void Update() { if (Input.GetAxis("Fire") != 0) { if (!pressed && timer < Time.timeSinceLevelLoad) { AudioManager.Instance.Laser(); LineRenderer laser = Instantiate(prefab_laser); laser.transform.SetParent(transform); Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { string hTag = hit.transform.tag; if (hTag == "SpaceStation") { if (Vector3.Distance(transform.position, hit.transform.position) < stationRange) { canHitStation = true; } else { canHitStation = false; } } AudioManager.Instance.ChangeVolume(Vector3.Distance(hit.transform.position, transform.position)); laser.SetPosition(0, origin.position); laser.SetPosition(1, hit.point); if (hTag == "Bandito") { AudioManager.Instance.BanditoSplat(); hit.transform.GetComponent <Flocking>().Death(); } else if (!(hTag == "SpaceStation" && !canHitStation)) { if (hTag == "Astro" || hTag == "StationWeapons") { AudioManager.Instance.AstroCrack(); } IDamageable Idamage = hit.transform.gameObject.GetComponent <IDamageable>(); if (Idamage == null && hit.transform.parent != null) { Idamage = hit.transform.parent.gameObject.GetComponent <IDamageable>(); } if (Idamage != null) { Idamage.TakeDamage(1); } if (hTag == "Astro") { Destroy(hit.transform.gameObject, Time.deltaTime * 5); Utilts.GetResources(hit.transform.gameObject); } } laser.enabled = true; } else { laser.SetPosition(0, origin.position); laser.SetPosition(1, ray.GetPoint(10000)); } timer = Time.timeSinceLevelLoad + fire_cooldown; } pressed = true; } else { pressed = false; } }
void GiveGelato() { Collider[] colls = Physics.OverlapSphere(transform.position + (transform.forward * 2), 5); if (colls.Length > 0) { foreach (Collider col in colls) { if (col.tag == "Basket") { CharacterManager.Instance.pData.standings[FactionManager.factionAffil] += Utilts.ChangeInStanding(inHand, FactionManager.factionAffil); int len = toGive.Count; for (int i = 0; i < len; i++) { Destroy(toGive[i]); } toGive.Clear(); } } } }