Пример #1
0
    // Donning life jacket ===============================================================

    protected override void DonLifeJacket()
    {
        ActionQueueInit(Consts.Skills.DonLifeJacket, true);

        if (canDonLifeJacketChild)
        {
            ActionQueueAdd(Consts.HighlightGroupType.LifeJacketChild, true, Consts.MIN_SEL_REACH_DIST, (SpriteBase sprite) => { HoldItem(sprite as ItemBase); });
        }
        if (canDonLifeJacketSelf)
        {
            ActionQueueAdd(Consts.HighlightGroupType.LifeJacketAdult, true, Consts.MIN_SEL_REACH_DIST, OnContactLifeJacketSelf);
        }

        ActionQueueRun((SpriteBase jacketSprite) => {
            LifeJacket jacket = jacketSprite as LifeJacket;

            if (jacket.size == Consts.FitSizes.child)
            {
                ActionQueueAccSplitIdx(0, jacketSprite);

                // Can shut path splitting off at this point and map out the rest linearly
                ActPathSplitOff();
                ActionQueueAdd(Consts.HighlightGroupType.Children, true, Consts.MIN_SEL_REACH_DIST, (SpriteBase childSprite) => {
                    // Add child for completion Callback
                    activeChar = childSprite as CharChild;
                    activeChar.SetStateDazed(true);

                    AnimTrigger("DonLifeJacketChild");
                });
                ActionQueueRun(Consts.DON_RATE, StepTimerBarFill, () => {
                    (activeChar as CharChild).PlaceJacketTransform(ItemHeld.transform);


                    ItemWeight -= ItemHeld.Weight;
                    activeChar.WearItem(ItemHeld);
                    activeChar.IsWearingLifeJacket = true;
                    activeChar.CharState           = Consts.CharState.Default;
                    activeChar.SetStateDazed(false);

                    ItemHeld = null;

                    EndAction();
                    //(selectObjQueue[0] as ItemBase).RetPosLocal = (selectObjQueue[0] as ItemBase).transform.localPosition;
                });
            }
            else
            {
                // Index will differ based on which actions were available to be added above.
                ActionQueueAccSplitIdx(canDonLifeJacketChild ? 1 : 0, jacketSprite);
                ActionQueueRun(Consts.DON_RATE, StepTimerBarFill, OnDonLifeJacketComplete);
            }
        });
    }
Пример #2
0
 private void ReturnItem(ItemBase item)
 {
     if (item is LifeJacket)
     {
         LifeJacket jacket = item as LifeJacket;
         if (jacket.size == Consts.FitSizes.child)
         {
             lifeJacketsChild.Add(jacket);
         }
         else
         {
             lifeJacketsAdult.Add(jacket);
         }
     }
     else if (item is ItemCanScoop)
     {
         itemsCanScoop.Add(item as ItemCanScoop);
     }
     else if (item is RepairKit)
     {
         repairKits.Add(item as RepairKit);
     }
 }