Ejemplo n.º 1
0
    public override InteractionResult InteractWith(Interactable i)
    {
        if (i is Container)
        {
            Container c = (Container)i;
            switch (c.type)
            {
            case Container.ContainerType.WaterContainer:
                if (curWater < maxWater)
                {
                    curWater = maxWater;
                    player.RequestArmMovement(PlayerRobot.ChangeOfArms.Dip);
                    return(new InteractionResult(this, true));
                }
                break;

            case Container.ContainerType.UpgradeContainer:
                return(((UpgradeContainer)c).UpgradeMe(this));
            }
        }
        else if (i is Planter)
        {
            float water = Mathf.Min(wateringAmount, curWater);
            if (water > 0)
            {
                curWater -= water;
                ((Planter)i).Water(water);

                if (waterNearPlanters)
                {
                    var nearPlanters = plantReg.GetNearPlanters((Planter)i, extraWaterRange);
                    foreach (Planter ep in nearPlanters)
                    {
                        ep.Water(water);
                    }
                }

                return(new InteractionResult(this, true));
            }
        }
        return(new InteractionResult(this, false));
    }