コード例 #1
0
    public bool doAttack(int attack)
    {
        if (opposite == null || opposite.Equals(null))
        {
            return(false);
        }

        attackAnim.SetTrigger("Attack");

        if (opposite.occupied)
        {
            opposite.occupying.TakeDamage(attack);
        }
        else if (ally)
        {
            //Fail to attack if no opposite enemy
            return(false);
        }
        else
        {
            int amount       = ResourceHandler.instance.allyResource.GetResource(row);
            int strength     = DIRECT_FACTOR * occupying.attack;
            int resourceLost = Mathf.Min(amount, strength);
            ResourceHandler.instance.allyResource -= ResourceStruct.GetOne(row) * resourceLost;
            ResourceHandler.instance.allyResource -= ResourceStruct.GetOne(ResourceEnum.money) * (strength - resourceLost);

            opposite.emitText("-" + strength);
        }
        return(true);
    }
コード例 #2
0
    public static ResourceStruct GetOne(ResourceEnum e)
    {
        ResourceStruct toReturn = ResourceStruct.zero.Copy();

        toReturn.SetResource(e, 1);
        return(toReturn);
    }
コード例 #3
0
    private IEnumerator AmbientRoutine()
    {
        while (true)
        {
            yield return(new WaitForSeconds(ambientPeriod));

            allyResource += ambient * ambientMoney;
        }
    }
コード例 #4
0
    public static ResourceStruct operator*(ResourceStruct a, float b)
    {
        ResourceStruct returnVal = new ResourceStruct();

        for (int i = 0; i < resourceCount; ++i)
        {
            returnVal.resourceArray[i] = (int)(a.resourceArray[i] * b);
        }

        return(returnVal);
    }
コード例 #5
0
    public static ResourceStruct operator+(ResourceStruct a, ResourceStruct b)
    {
        ResourceStruct returnVal = new ResourceStruct();

        for (int i = 0; i < resourceCount; ++i)
        {
            returnVal.resourceArray[i] = a.resourceArray[i] + b.resourceArray[i];
        }

        return(returnVal);
    }
コード例 #6
0
    // Use this for initialization
    void Awake()
    {
        representer = GetComponentInChildren <RepresentStructHandler>();

        if (instance == null || instance.Equals(null))
        {
            instance = this;
            StartCoroutine(AmbientRoutine());
            resource_internal = startingResource;
        }
        else
        {
            Destroy(gameObject);
        }
    }
コード例 #7
0
    public void Represent(ResourceStruct rs, bool showAll = false)
    {
        for (int i = 0; i < children.Length; ++i)
        {
            children[i].GetComponentInChildren <Text>().text = rs.resourceArray[i].ToString();

            if (showAll || rs.resourceArray[i] > 0)
            {
                children[i].gameObject.SetActive(true);
            }
            else
            {
                children[i].gameObject.SetActive(false);
            }
        }
    }
コード例 #8
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            ChangeEquippedTool(ToolList.Unarmed);
        }
        ;
        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            ChangeEquippedTool(ToolList.Rock);
        }
        ;
        if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            ChangeEquippedTool(ToolList.SimpleKnife);
        }
        ;
        if (Input.GetKeyDown(KeyCode.Alpha4))
        {
            ChangeEquippedTool(ToolList.SimpleAxe);
        }
        ;
        if (Input.GetKeyDown(KeyCode.Alpha5))
        {
            ChangeEquippedTool(ToolList.SimplePickaxe);
        }
        ;
        if (Input.GetKeyDown(KeyCode.Alpha6))
        {
            ChangeEquippedTool(ToolList.SimpleSpear);
        }
        ;
        if (Input.GetKeyDown(KeyCode.Alpha7))
        {
            ChangeEquippedTool(ToolList.Torch);
        }
        ;

        if (Input.GetButtonDown("Interact"))
        {
            Debug.Log("Interact");
            LayerMask  resourceMask = LayerMask.GetMask("Resource");
            LayerMask  waterMask    = LayerMask.GetMask("Water");
            RaycastHit hit;
            if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.TransformDirection(Vector3.forward), out hit, 3, resourceMask))
            {
                ResourceController resourceScript = hit.collider.gameObject.GetComponent <ResourceController>();
                ResourceStruct     resourceIncome = resourceScript.Interact(equippedTool);
                Debug.Log("Received " + resourceIncome.count + " " + resourceIncome.type);
            }
        }

        if (Input.GetButtonDown("Teleport"))
        {
            eyeAnimator.SetBool("IsEyeClosing", true);
            timer.Start();
        }

        if (Input.GetButtonUp("Teleport") && !didTeleport)
        {
            eyeAnimator.SetBool("IsEyeClosing", false);
            timer.Stop();
        }
    }