Beispiel #1
0
    private void Update()
    {
        if (Time.time > nextDamageTime)
        {
            GetDamaged();
            UpdateSprites();
            UpdateNextDamageTime();
        }

        // manual testing
        if (Keyboard.current.oKey.wasPressedThisFrame)
        {
            GetDamaged();
            UpdateSprites();
        }

        if (Keyboard.current.pKey.wasPressedThisFrame)
        {
            DrillResources playerResources = new DrillResources(50, 50, 50);
            DrillResources playerResAfter  = Repair(playerResources);

            Debug.Log(
                "playerResources before"
                + "Antrieb " + playerResources.Antrieb
                + " baumat " + playerResources.Baumaterial
                + " wasser " + playerResources.Wasser);
            Debug.Log(
                "playerResources after"
                + "Antrieb " + playerResAfter.Antrieb
                + " baumat " + playerResAfter.Baumaterial
                + " wasser " + playerResAfter.Wasser);
        }
    }
Beispiel #2
0
    private DrillResources Withdraw(DrillResources playerResources, ResourceType type)
    {
        DrillResources controller = DrillController.dr;

        switch (type)
        {
        case ResourceType.Antrieb:
            int amountAntriebMissing = maxAmount - playerResources.Antrieb;


            if (controller.Antrieb >= amountAntriebMissing)
            {
                // Ship has enough in Storage to fill up Player Inventory
                controller.Antrieb     -= amountAntriebMissing;
                playerResources.Antrieb = maxAmount;
            }
            else
            {
                playerResources.Antrieb += controller.Antrieb;
                controller.Antrieb       = 0;
            }
            break;

        case ResourceType.Baumaterial:
            int amountBaumaterialMissing = maxAmount - playerResources.Baumaterial;

            if (controller.Baumaterial >= amountBaumaterialMissing)
            {
                controller.Baumaterial     -= amountBaumaterialMissing;
                playerResources.Baumaterial = maxAmount;
            }
            else
            {
                playerResources.Baumaterial += controller.Baumaterial;
                controller.Baumaterial       = 0;
            }
            break;

        case ResourceType.Wasser:
            int amountWasserMissing = maxAmount - playerResources.Wasser;

            if (controller.Wasser >= amountWasserMissing)
            {
                controller.Wasser     -= amountWasserMissing;
                playerResources.Wasser = maxAmount;
            }
            else
            {
                playerResources.Wasser += controller.Wasser;
                controller.Wasser       = 0;
            }
            break;
        }

        return(playerResources);
    }
Beispiel #3
0
    private void Start()
    {
        currentObjectResource = new DrillResources();

        switch (typeOfResourceForRepair)
        {
        case ResourceType.Antrieb:
            currentObjectResource.Antrieb = 100;
            break;

        case ResourceType.Baumaterial:
            currentObjectResource.Baumaterial = 100;
            break;

        case ResourceType.Wasser:
            currentObjectResource.Wasser = 100;
            break;

        default:
            break;
        }

        UpdateNextDamageTime();
    }
Beispiel #4
0
 private void Start()
 {
     dr          = new DrillResources();
     rb          = GetComponent <Rigidbody2D>();
     audioSource = GetComponent <AudioSource>();
 }
Beispiel #5
0
 private void Awake()
 {
     spriteRenderer = GetComponent <SpriteRenderer>();
     drillResources = new DrillResources();
 }
Beispiel #6
0
    public DrillResources Repair(DrillResources playerResources)
    {
        DrillResources resourceReduction = new DrillResources();

        switch (typeOfResourceForRepair)
        {
        case ResourceType.Antrieb:
            int amountAntriebMissing = 100 - currentObjectResource.Antrieb;
            GetComponent <AudioSource>().Play();
            if (playerResources.Antrieb >= amountAntriebMissing)
            {
                // player has the amount or more in inventory. Reduce inventory
                currentObjectResource.Antrieb = 100;
                resourceReduction.Antrieb     = -amountAntriebMissing;
            }
            else
            {
                // player has less resource then needed. Only repairing the amount hold
                int stillAmountMissing = amountAntriebMissing - playerResources.Antrieb;
                resourceReduction.Antrieb     = -playerResources.Antrieb;
                currentObjectResource.Antrieb = 100 - stillAmountMissing;
            }
            break;

        case ResourceType.Baumaterial:
            //int amountBaumaterialMissing = 100 - currentObjectResource.Baumaterial;
            currentObjectResource.Baumaterial = 100;
            GetComponent <AudioSource>().Play();

            //if (playerResources.Antrieb >= amountBaumaterialMissing)
            //{
            //    // player has the amount or more in inventory. Reduce inventory
            //    currentObjectResource.Baumaterial = 100;
            //    resourceReduction.Baumaterial = -amountBaumaterialMissing;
            //}
            //else
            //{
            //    // player has less resource then needed. Only repairing the amount hold
            //    int stillAmountMissing = amountBaumaterialMissing - playerResources.Baumaterial;
            //    resourceReduction.Baumaterial = -playerResources.Baumaterial;
            //}
            break;

        case ResourceType.Wasser:
            int amountWasserMissing = 100 - currentObjectResource.Wasser;
            GetComponent <AudioSource>().Play();

            if (playerResources.Wasser >= amountWasserMissing)
            {
                // player has the amount or more in inventory. Reduce inventory
                currentObjectResource.Wasser = 100;
                resourceReduction.Wasser     = -amountWasserMissing;
            }
            else
            {
                // player has less resource then needed. Only repairing the amount hold
                int stillAmountMissing = amountWasserMissing - playerResources.Wasser;
                resourceReduction.Wasser     = -playerResources.Wasser;
                currentObjectResource.Wasser = 100 - stillAmountMissing;
            }
            break;
        }

        UpdateSprites();
        playerResources.AddResource(resourceReduction);
        Debug.Log(
            "Object ressources after"
            + "Antrieb " + currentObjectResource.Antrieb
            + " baumat " + currentObjectResource.Baumaterial
            + " wasser " + currentObjectResource.Wasser);
        return(playerResources);
    }
Beispiel #7
0
 private void Start()
 {
     dr = new DrillResources();
 }
Beispiel #8
0
    public void RemoveItem(GameObject other)
    {
        dr = other.GetComponent <ObjectRepairLogic>().Repair(dr);

        //Debug.Log(dr.Antrieb + " " + dr.Baumaterial + " " + dr.Wasser);
    }