protected override void OnPowered(Pedestal pedestal, int newLevel) { level = newLevel; targetPosition = startingPosition + (incrementPosition * level); if (audioController != null && this.CompareTag(StringConstants.Tags.StoneBridge)) { if (level == 1) { audioController.GetComponent <AudioController>().PlayAudioClip(AudioController.AudioClips.water6); } else if (level == 2) { audioController.GetComponent <AudioController>().PlayAudioClip(AudioController.AudioClips.water1); } } else if (audioController != null && this.CompareTag(StringConstants.Tags.SlidingDoor)) { audioController.GetComponent <AudioController>().PlayAudioClip(AudioController.AudioClips.Scrape1); } else if (audioController != null && this.CompareTag(StringConstants.Tags.TutorialTotem)) { audioController.GetComponent <AudioController>().PlayAudioClip(AudioController.AudioClips.Scrape2); } }
void PedestalPlace(Pedestal p) { if(myPickup != null) { p.Pickup(myPickup); DropItem(); } }
// Use this for initialization void Start() { shadow = FindObjectOfType <Shadow>(); pedestal = FindObjectOfType <Pedestal>(); ShadowOn(); StartCoroutine(DelayedUpdate(5)); }
public void OnClick() { if (!_pedestal) { var tag = _category == Category.Shell ? Tag.Shell : _category == Category.Slurpable ? Tag.Slurpable : Tag.Surface; _pedestal = GameObject.FindGameObjectWithTag(tag).GetComponent<Pedestal>(); // GetComponent<Button>().onClick.AddListener(OnClick); } _pedestal.Swape(gameObject); }
protected override void OnPowered(Pedestal pedestal, int newLevel) { foreach (BurnableObject obj in resetObject) { if (obj.CanBeReset()) { obj.ResetThis(); } } }
/// <summary> /// 台座工作计划 /// </summary> /// <param name="orderDetail">订单详情</param> /// <param name="startTime">开始时间</param> /// <param name="pedestalDic">台座字典信息</param> /// <param name="pedestalExistList">当前已经使用的台座列表,用来过滤数据</param> /// <param name="pedestalWorkPlanList">台座工作计划List</param> /// <param name="message">信息</param> /// <returns></returns> public bool PedestalScheduleWork(OrderDetail orderDetail, PedestalDic pedestalDic, ref List <Pedestal> pedestalExistList, ref List <PedestalWorkPlan> pedestalWorkPlanList, ref string message) { Pedestal pedestalItem = new Pedestal(); //台座Item DateTime startTime = DateTime.MinValue; //台座开始时间 DateTime endTime = DateTime.MinValue; //台座结束时间 DateTime lastProductTime = DateTime.MinValue; //最晚生产时间 PedestalWorkPlan pedestalWorkPlanItem = null; //台座工作计划Item PedestalWorkPlan firstPedestalWorkPlanItem = null; //台座工作计划中结束时间最早的台座 string pedestalId; //台座Id string pedestalNumber; //台座编号 string pedestalType = pedestalDic.PedestalType; //台座类型 List <NoWorkDay> noWorkDayList = new List <NoWorkDay>(); //非工作日期列表 GetNoWorkDayList(ref noWorkDayList); //获取非工作日列表 startTime = CheckCreateTime(orderDetail.CreateTime); if (pedestalDic.PedestalType == "预制") { startTime = startTime.AddDays(0.5); } lastProductTime = GetBackTime(orderDetail.DeliveryTime, pedestalDic.BackwardDays, noWorkDayList); if (!CanProduct(startTime, lastProductTime, ref message)) //没有时间安排生产 { return(false); } if (GetFreePedestalByPedestalType(pedestalDic.PedestalType, pedestalExistList, ref pedestalItem))//有对应台座类型的空闲台座,并去除掉这个台座 { pedestalId = pedestalItem.PedestalId; pedestalNumber = pedestalItem.PedestalNumber; pedestalExistList.Add(pedestalItem);//添加已使用台座 } else//没有对应台座类型的空闲台座,寻找结束时间最早的台座 { firstPedestalWorkPlanItem = GetFirstWorkPlanPedestal(pedestalWorkPlanList, pedestalDic.PedestalType); startTime = CheckCreateTime(firstPedestalWorkPlanItem.EndTime); if (!CanProduct(startTime, lastProductTime, ref message)) //没有时间安排生产 { return(false); } pedestalId = firstPedestalWorkPlanItem.PedestalId; pedestalNumber = firstPedestalWorkPlanItem.PedestalNumber; } endTime = GetEndTime(startTime, pedestalDic.ProcessDays, noWorkDayList);//增加对应工序所需天数 pedestalWorkPlanItem = CreatePedestalWorkPlanItem(orderDetail.OrderNo, orderDetail.OrderDetailNo, orderDetail.BeamNo, orderDetail.BeamName, pedestalId, pedestalNumber, pedestalType, startTime, endTime); pedestalWorkPlanList.Add(pedestalWorkPlanItem);//添加台座计划 return(true); }
protected override void OnDepowered(Pedestal pedestal, int newLevel) { if (newLevel > 0) { isMoving = true; } else { isMoving = false; } }
public void SelectPedestal(Pedestal pedestal) { if (selectedPedestal == pedestal) { DeselectPedestal(); return; } selectedPedestal = pedestal; turretToBuild = null; pedestalUI.OpenUI(pedestal); }
protected override void OnPowered(Pedestal pedestal, int level) { AddForcePedestal forcePedestal = pedestal as AddForcePedestal; if (forcePedestal == null) { Debug.LogError("Add Force Activatable objects must be powered by their respective pedestals!"); return; } currentDirection += Vector3.Normalize(forcePedestal.worldForceVector) * forcePedestal.forceDelta; }
public void OnPedestalActivate(Pedestal source) { if (!activeSources.Contains(source)) { activeSources.Add(source); } if (this.enabled) { OnPowered(source, GetLevel()); } }
void Start() { if (GetComponent <UnitButtonScript>() != null) { myUnit = GetComponent <UnitButtonScript>().unitCreator; } else { myUnit = GetComponent <ClickableHeroUIScript>().unitCreator; } pedestal = FindObjectOfType <Pedestal>(); }
bool IsLevelFinal(Pedestal pedestal, int finalLevel) { if (pedestal == null) { return(false); } if (pedestal.GetCurrLevel() == finalLevel) { return(true); } else { return(false); } }
protected override void OnPowered(Pedestal pedestal, int newLevel) { if (newLevel == 1) { waitDelay = startDelay; } if (newLevel > 0) { isMoving = true; } else { isMoving = false; } }
public void Init(FlagController flagController) { allSRs = gameObject.FindComponents <SpriteRenderer>(true); //Register delegates for updating artifact sprites for (int i = 0; i < flagController.pedestalList.Count; i++) { Pedestal pdstl = flagController.pedestalList[i]; SpriteRenderer slot = artifactSlots[i]; pdstl.onArtifactChanged += (artifact) => UpdateArtifactSlot(slot, artifact); UpdateArtifactSlot(slot, null);// pdstl.Artifact); } //Register delegate for showing/hiding gameObject.FindComponent <MapMarker>().onShow += (show) => allSRs.ForEach(sr => sr.enabled = show); }
protected override void OnDepowered(Pedestal pedestal, int newLevel) { if (newLevel == 0) { targetPosition = startingPosition; } if (audioController != null && this.CompareTag(StringConstants.Tags.SlidingDoor)) { audioController.GetComponent <AudioController>().PlayAudioClip(AudioController.AudioClips.Scrape1); } else if (audioController != null && this.CompareTag(StringConstants.Tags.TutorialTotem)) { audioController.GetComponent <AudioController>().PlayAudioClip(AudioController.AudioClips.Scrape2); } }
public void OnPedestalDeactivate(Pedestal source) { if (source.GetCurrLevel() <= 0 && activeSources.Contains(source)) { activeSources.Remove(source); } else { Debug.LogError("Activatable Object did not reference active pedestal! " + this); } int level = GetLevel(); if (this.enabled) { OnDepowered(source, GetLevel()); } }
public P2(Game game, Camera camera) : base(game, camera) { position = new Vector3(330, 150, -525); yrotation = MathHelper.PiOver2; Pedestal pedestal = new Pedestal(game, camera, new Vector3(440, 100, -525)); pedestal.scale = 10; pedestal.Selectable = true; pedestal.yrotation = MathHelper.Pi; selectableList.Insert(0, pedestal); GEntity table = new GEntity(game, new Vector3(400, 101, -525), camera, "models/tavern/round_table", "textures/tavern/round_table_color"); table.scale = 5; sceneryList.Add(table); table = new GEntity(game, new Vector3(420, 101, -460), camera, "models/tavern/round_table", "textures/tavern/round_table_color"); table.scale = 5; sceneryList.Add(table); table = new GEntity(game, new Vector3(420, 101, -590), camera, "models/tavern/round_table", "textures/tavern/round_table_color"); table.scale = 5; sceneryList.Add(table); GEntity statue = new GEntity(game, new Vector3(400, 121, -525), camera, "models/statues/snake", null); statue.scale = 8; statue.yrotation = MathHelper.Pi; statue.selectedColor = Color.Yellow; selectableList.Insert(0, statue); statue = new GEntity(game, new Vector3(420, 121, -460), camera, "models/statues/man", null); statue.scale = 8; statue.yrotation = MathHelper.Pi; statue.selectedColor = Color.Yellow; selectableList.Insert(0, statue); statue = new GEntity(game, new Vector3(420, 121, -590), camera, "models/statues/tree", null); statue.scale = 8; statue.yrotation = MathHelper.Pi; statue.selectedColor = Color.Yellow; selectableList.Insert(0, statue); renderRequested = true; }
public void OpenUI(Pedestal target) { Target = target; transform.position = target.GetBuildPosition(); Debug.Log(target.isUpgraded); GameObject goToShow = upgrade; if (target.turret == null) { goToShow = shop; } else if (!target.isUpgraded) { upgradeCost.text = target.turretBlueprint.upgradeCost + ""; if (PlayerStats.Money < target.turretBlueprint.upgradeCost) { upgradeButton.interactable = false; } else { upgradeButton.interactable = true; } sellAmount.text = target.turretBlueprint.sellAmount + ""; } else { upgradeCost.text = "MAX"; upgradeButton.interactable = false; sellAmount.text = target.turretBlueprint.sellAmount + ""; } Show(goToShow); ui.SetActive(true); }
void AddNewPedestales() { int lastLevel = -1; float lastPedestalHeight = _gameSetting.pedestalStartPosition + _gameSetting.distancePerPedestalLayer; if (_pedestalLayers.Count > 0) { lastLevel = _pedestalLayers[_pedestalLayers.Count - 1].level; lastPedestalHeight = _pedestalLayers[_pedestalLayers.Count - 1].height; } float pedestalHeight = lastPedestalHeight; int pedestalLevel = lastLevel; while (pedestalHeight > _propBottomHeight) { pedestalHeight -= _gameSetting.distancePerPedestalLayer; pedestalLevel += 1; PedestalLayer layer = new PedestalLayer(); layer.pedestalInfos = _platformRule.GetPedestalInfos(pedestalLevel); layer.pedestales = new List <Pedestal>(); layer.height = pedestalHeight; layer.level = pedestalLevel; layer.hasDestroyed = false; layer.hasPassed = false; _pedestalLayers.Add(layer); foreach (var pedestalInfo in layer.pedestalInfos) { Vector3 position = new Vector3(0f, pedestalHeight, 0f); Pedestal pedestal = _pedestalPool.Instantiate(pedestalInfo.type, position, kAnglePerSlot * pedestalInfo.slot); layer.pedestales.Add(pedestal); } } }
public EventPedestalDestroy(Pedestal pedestal) { this.pedestal = pedestal; }
/// <summary> /// 根据台座类型寻找当前空闲台座 /// </summary> /// <param name="pedestalType">台座类型</param> /// <param name="pedestalExistList">当前已经使用的台座列表,用来过滤数据</param> /// <param name="pedestalItem">找到的台座</param> /// <returns>是否有空闲台座 true false</returns> public bool GetFreePedestalByPedestalType(string pedestalType, List <Pedestal> pedestalExistList, ref Pedestal pedestalItem) { List <PedestalWorkPlan> pedestalInProductWorkPlanList = new List <PedestalWorkPlan>();//状态为生产中的生产计划 GetPedestalWorkPlanListByStatus(BeamProductionPlanStatus.InProduction, ref pedestalInProductWorkPlanList); var pedestalWorkPlanList = pedestalInProductWorkPlanList.Where(f => f.PedestalType == pedestalType).ToList(); //根据台座类型筛选数据 List <Pedestal> pedestalList = GetPedestalList(pedestalType); //获取对应类型台座列表 if (!pedestalList.IsEmpty()) { if (!pedestalExistList.IsEmpty()) { var pedestalIds = pedestalExistList.Select(f => f.PedestalId); pedestalList.RemoveAll(f => pedestalIds.Contains(f.PedestalId));//移除已使用的台座 } if (!pedestalList.IsEmpty()) { if (!pedestalWorkPlanList.IsEmpty()) { var pedestalIds = pedestalWorkPlanList.Select(f => f.PedestalId); pedestalList.RemoveAll(f => pedestalIds.Contains(f.PedestalId)); //对应状态台座列表移除计划中生产中的台座 } pedestalItem = pedestalList.FirstOrDefault(); //找到第一个空闲台座 } } return(!pedestalList.IsEmpty()); }
protected abstract void OnPowered(Pedestal pedestal, int newLevel); // Called when the object receives a power source protected abstract void OnDepowered(Pedestal pedestal, int newLevel); // Called when the object loses a power source
protected override void OnDepowered(Pedestal pedestal, int newLevel) { }
protected override void OnPowered(Pedestal pedestal, int newLevel) { currentColor = activatedColor; }
public void DeselectPedestal() { selectedPedestal = null; pedestalUI.Hide(); }
public void Interact() { Collider[] colliders = Physics.OverlapSphere(Hands.position, GrabRange, WhatCanBeTaken); if (colliders.Length > 0 && canTakeItems && !colliders[0].gameObject.GetComponent <Idol>().onPlayer) { itemInHands = colliders[0].gameObject.GetComponent <Idol>(); canTakeItems = false; if (itemInHands.status == IdolRepairedStatus.broken) { Image.ChangeImageSprite(playerImages.Workbench_1); } if (itemInHands.myPlayerIndex == playerIndex) { if (itemInHands.status == IdolRepairedStatus.repaired) { Image.ChangeImageSprite(playerImages.Altar); } else if (itemInHands.level == 2) { if (itemInHands.status == IdolRepairedStatus.broken) { Image.ChangeImageSprite(playerImages.Workbench_1); } else if (itemInHands.status == IdolRepairedStatus.semiBroken) { Image.ChangeImageSprite(playerImages.Workbench_2); } else if (itemInHands.status == IdolRepairedStatus.repaired) { Image.ChangeImageSprite(playerImages.Altar); } } } else { if (itemInHands.status != IdolRepairedStatus.broken) { Image.ChangeImageSprite(playerImages.Workbench_3); } } Pedestal pedestal = itemInHands.transform.parent.GetComponent <Pedestal>(); if (pedestal != null) { pedestal.isOccupied = false; } Altar altar = itemInHands.transform.parent.GetComponent <Altar>(); if (altar != null) { altar.ResetAltar(); } Image.ChangeImageState(); itemInHands.transform.parent = transform; itemInHands.transform.position = new Vector3(transform.position.x, transform.position.y + selfCollider.height, transform.position.z); itemInHands.onPlayer = true; audioSource.clip = audioFx.iteraction; audioSource.Play(); } }