Example #1
0
    override public bool IsHitted(WireControl wire, RaycastHit2D hit)
    {
        if (!isdead)
        {
            Action(wire, hit);

            if (bodys.Count > 0)
            {
                MushiBody b = bodys[bodys.Count - 1];
                bodys.Remove(b);
                DestroyObject(b.gameObject);
            }
            else
            {
                DieEffect.SetActive(true);
                isdead = true;
                GetComponent <Collider2D> ().enabled = false;
                StartCoroutine(GameClear());
            }

            return(true);
        }

        return(false);
    }
Example #2
0
    override public bool IsHitted(WireControl wire, RaycastHit2D hit)
    {
        Action(wire, hit);
        follow.IsHitted(wire, hit);

        return(true);
    }
    void Start()
    {
        rb2d = GetComponent <Rigidbody2D>();

        wire1       = transform.GetChild(0).GetComponent <WireControl>();
        wire2       = transform.GetChild(1).GetComponent <WireControl>();
        PlayerImage = transform.FindChild("PlayerImage").gameObject;
    }
Example #4
0
    override public bool IsHitted(WireControl wire, RaycastHit2D hit)
    {
        if (CheckHit(wire))
        {
            Grab(wire, hit);
            Action(wire, hit);

            return(true);
        }

        return(false);
    }
Example #5
0
    override public bool IsHitted(WireControl wire, RaycastHit2D hit)
    {
        if (playerCtrl.HitWire == null || playerCtrl.HitWire.Target.transform.parent != hit.collider.gameObject.transform)
        {
            Grab(wire, hit);
            Action(wire, hit);

            return(true);
        }


        return(false);
    }
Example #6
0
 protected void Action(WireControl wire, RaycastHit2D hit)
 {
     param.obj  = hit.collider.gameObject;
     param.self = gameObject;
     actions.ForEach(a =>
     {
         ActBase act = ActBase.GetAction(a.type);
         if (act != null)
         {
             param.param = a.param;
             act.Action(param);
         }
     });
 }
Example #7
0
    void Awake()
    {
        rb2d = GetComponent <Rigidbody2D>();

        WireControl[] wires = transform.GetComponentsInChildren <WireControl>();

        wireRight = wires[0];
        wireLeft  = wires[1];

        anim = GetComponent <Animator>();

        transform.position = revivePos;
        stopRadius         = GetComponent <CircleCollider2D>().radius *transform.lossyScale.x;
    }
Example #8
0
    void Update()
    {
        if (isdead)
        {
            return;
        }

        if (EventSystem.current.currentSelectedGameObject == null)
        {
            WireControl freeWire = GetFreeWire();

            if (freeWire != null)
            {
                if (HitbyMouseDown)
                {
                    if (Input.GetMouseButtonDown(0))
                    {
                        freeWire.ShootWire();
                    }
                }
                else
                {
                    if (Input.GetMouseButtonDown(0))
                    {
                        freeWire.PrepareShoot();
                    }
                    else if (Input.GetMouseButtonUp(0))
                    {
                        freeWire.ShootWire();
                    }
                }
            }
            return;
        }



        if (rb2d.velocity.magnitude > speedLimit)
        {
            rb2d.velocity = rb2d.velocity.normalized * speedLimit;
        }
    }
Example #9
0
    public void SetWireDestination(WireControl obj)
    {
        if (obj != null)
        {
            if (obj == wireRight)
            {
                anim.SetTrigger("RightShoot");
            }
            else if (obj == wireLeft)
            {
                anim.SetTrigger("LeftShoot");
            }

            hitWire = obj;
            Vector2 direction = hitWire.Target.transform.position - transform.position;
            rb2d.velocity += direction.normalized * startSpeed;
            anim.SetFloat("Velocity", direction.x);
            anim.SetBool("Stop", false);
            reached = false;
        }
    }
Example #10
0
    protected bool CheckHit(WireControl wire)
    {
        Collider2D c = GetComponent <Collider2D>();

        if (c != null)
        {
            Vector2 direction = wire.transform.position - wire.Target.transform.position;
            Vector2 step      = direction.normalized * 0.1f;

            float   length = direction.magnitude;
            Vector2 now    = wire.Target.transform.position;
            while (Vector2.Distance(now, wire.Target.transform.position) <= length)
            {
                if (c.OverlapPoint(now))
                {
                    return(true);
                }
                now += step;
            }
        }

        return(false);
    }
Example #11
0
    virtual public bool IsHitted(WireControl wire, RaycastHit2D hit)
    {
        Action(wire, hit);

        return(true);
    }
Example #12
0
 protected void Grab(WireControl wire, RaycastHit2D hit)
 {
     wire.Target.transform.parent   = hit.collider.gameObject.transform;
     wire.Target.transform.position = hit.point;
     GameObject.FindObjectOfType <PlayerControl>().SetWireDestination(wire);
 }