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();
     }
 }
Exemplo n.º 3
0
    // Use this for initialization
    void Start()
    {
        shadow   = FindObjectOfType <Shadow>();
        pedestal = FindObjectOfType <Pedestal>();
        ShadowOn();

        StartCoroutine(DelayedUpdate(5));
    }
Exemplo n.º 4
0
 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);
        }
Exemplo n.º 7
0
 protected override void OnDepowered(Pedestal pedestal, int newLevel)
 {
     if (newLevel > 0)
     {
         isMoving = true;
     }
     else
     {
         isMoving = false;
     }
 }
Exemplo n.º 8
0
    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);
     }
 }
Exemplo n.º 13
0
    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());
        }
    }
Exemplo n.º 17
0
        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;
        }
Exemplo n.º 18
0
    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);
    }
Exemplo n.º 19
0
        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);
                }
            }
        }
Exemplo n.º 20
0
 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)
 {
 }
Exemplo n.º 24
0
 protected override void OnPowered(Pedestal pedestal, int newLevel)
 {
     currentColor = activatedColor;
 }
Exemplo n.º 25
0
 public void DeselectPedestal()
 {
     selectedPedestal = null;
     pedestalUI.Hide();
 }
Exemplo n.º 26
0
    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();
        }
    }