Rope Swing - Maincode
#pragma strict
static var HoldRope = false;
static var HoldRope = false;
Rope Swing - Player
#pragma strict
var anim : Animator;
var speed : float = 2;
var jump: boolean = true;
var jumpspeed : float = 4;
var HoldRopeWait: boolean = false;
var HoldRope: boolean = false;
var Climb: boolean = false;
var ClimbNumber : int = 0;
var PlayerRigidbody: Rigidbody2D;
var Right : boolean = false;
var Grab : boolean = false;
var GrabObject: Rigidbody2D;
var GrabWaitBeforeDrop : boolean = false;
var StartPosition : Vector3;
function Start ()
{
StartPosition = transform.position;
}
function Update ()
{
//Drop
if(Input.GetButtonDown("Fire1"))
{
if(Grab == true)
{
if(GrabWaitBeforeDrop == false)
{
Grab = false;
GrabObject.isKinematic = false;
GrabObject.gravityScale = 1;
GrabObject.transform.parent = null;
return;
}
}
}
if (Input.GetKeyDown ("space"))
{
if(HoldRope == false)
{
if(Climb == false)
{
if (jump == true) {
GetComponent.<Rigidbody2D>().velocity.y = jumpspeed;
jump = false;
}
}
}
}
//Walk
if(HoldRope == false)
{
if(Climb == false)
{
if (Input.GetKey (KeyCode.LeftArrow))
{
transform.localScale.x = -2;
Right = false;
anim.SetBool("Walk",true);
transform.Translate(Vector3(speed,0,0) * Time.deltaTime);
}
if (Input.GetKey (KeyCode.RightArrow))
{
transform.localScale.x = 2;
Right = true;
anim.SetBool("Walk",true);
transform.Translate(Vector3(speed,0,0) * Time.deltaTime);
}
if (Input.GetKeyUp (KeyCode.LeftArrow))
{
transform.localScale.x = -2;
anim.SetBool("Walk",false);
}
if (Input.GetKeyUp (KeyCode.RightArrow))
{
transform.localScale.x = 2;
anim.SetBool("Walk",false);
}
}
}
//Rope
if(HoldRope == true)
{
if(Climb == false)
{
if (Input.GetKeyDown ("space"))
{
HoldRopeWait = true;
transform.parent = null;
transform.eulerAngles.z = 0;
if(Right == true){transform.localScale.x = 2;}else{transform.localScale.x = -2;}
transform.localScale.y = 2;
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Hold",false);
HoldRope = false;
Maincode.HoldRope = false;
jump = false;
HoldRopeWaitReset();
}
}
}
//Ladder
if(Climb == true)
{
if(HoldRope == false)
{
if (Input.GetKey (KeyCode.UpArrow))
{
transform.Translate(Vector3(0,speed,0) * Time.deltaTime);
}
if (Input.GetKey (KeyCode.DownArrow))
{
transform.Translate(Vector3(0,-speed,0) * Time.deltaTime);
}
}
}
}
function OnCollisionEnter2D(other : Collision2D)
{
if(other.gameObject.tag == "Ground" || other.gameObject.tag == "Box")
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Hold",false);
jump = true;
HoldRope = false;
Maincode.HoldRope = false;
transform.parent = null;
HoldRopeWait = false;
}
}
function OnCollisionStay2D(other : Collision2D)
{
if(other.gameObject.tag == "Rope")
{
if(HoldRopeWait == false)
{
other.gameObject.SendMessage ("HoldThisRope");
PlayerRigidbody.isKinematic = true;
PlayerRigidbody.gravityScale = 0;
anim.SetBool("Hold",true);
HoldRope = true;
Maincode.HoldRope = true;
transform.parent = other.transform;
}
}
//Grab
if(other.gameObject.tag == "Box")
{
//Grab Box
if(Input.GetButtonDown("Fire1"))
{
if(Grab == false)
{
Grab = true;
GrabObject = other.rigidbody;
other.rigidbody.isKinematic = true;
other.rigidbody.gravityScale = 0;
other.transform.parent = transform;
GrabWaitBeforeDrop = true;
GrabWait();
return;
}
}
}
}
function OnTriggerStay2D (other : Collider2D)
{
if(other.gameObject.tag == "LadderStart")
{
if (Input.GetKey (KeyCode.UpArrow))
{
if(Climb == false)
{
PlayerRigidbody.isKinematic = true;
PlayerRigidbody.gravityScale = 0;
anim.SetBool("Climb",true);
Climb = true;
ClimbNumber = 1;
return;
}
}
}
if(other.gameObject.tag == "LadderEnd")
{
if (Input.GetKey (KeyCode.DownArrow))
{
if(Climb == false)
{
PlayerRigidbody.isKinematic = true;
PlayerRigidbody.gravityScale = 0;
anim.SetBool("Climb",true);
Climb = true;
ClimbNumber = 2;
return;
}
}
}
}
function OnTriggerEnter2D (other : Collider2D)
{
if(other.gameObject.tag == "LadderStart")
{
if(Climb == true)
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Climb",false);
Climb = false;
ClimbNumber = 0;
return;
}
}
if(other.gameObject.tag == "Outside")
{
transform.position = StartPosition;
GetComponent.<Rigidbody2D>().velocity.x = 0;
GetComponent.<Rigidbody2D>().velocity.y = 0;
}
}
function OnTriggerExit2D (other : Collider2D)
{
if(other.gameObject.tag == "LadderStart")
{
if(Climb == true)
{
if(ClimbNumber == 2)
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Climb",false);
Climb = false;
ClimbNumber = 0;
return;
}
}
}
if(other.gameObject.tag == "LadderEnd")
{
if(Climb == true)
{
if(ClimbNumber == 1)
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Climb",false);
Climb = false;
ClimbNumber = 0;
return;
}
}
}
}
function HoldRopeWaitReset()
{
yield WaitForSeconds (.4);
HoldRopeWait = false;
}
function GrabWait()
{
yield WaitForSeconds (.4);
GrabWaitBeforeDrop = false;
}
var anim : Animator;
var speed : float = 2;
var jump: boolean = true;
var jumpspeed : float = 4;
var HoldRopeWait: boolean = false;
var HoldRope: boolean = false;
var Climb: boolean = false;
var ClimbNumber : int = 0;
var PlayerRigidbody: Rigidbody2D;
var Right : boolean = false;
var Grab : boolean = false;
var GrabObject: Rigidbody2D;
var GrabWaitBeforeDrop : boolean = false;
var StartPosition : Vector3;
function Start ()
{
StartPosition = transform.position;
}
function Update ()
{
//Drop
if(Input.GetButtonDown("Fire1"))
{
if(Grab == true)
{
if(GrabWaitBeforeDrop == false)
{
Grab = false;
GrabObject.isKinematic = false;
GrabObject.gravityScale = 1;
GrabObject.transform.parent = null;
return;
}
}
}
if (Input.GetKeyDown ("space"))
{
if(HoldRope == false)
{
if(Climb == false)
{
if (jump == true) {
GetComponent.<Rigidbody2D>().velocity.y = jumpspeed;
jump = false;
}
}
}
}
//Walk
if(HoldRope == false)
{
if(Climb == false)
{
if (Input.GetKey (KeyCode.LeftArrow))
{
transform.localScale.x = -2;
Right = false;
anim.SetBool("Walk",true);
transform.Translate(Vector3(speed,0,0) * Time.deltaTime);
}
if (Input.GetKey (KeyCode.RightArrow))
{
transform.localScale.x = 2;
Right = true;
anim.SetBool("Walk",true);
transform.Translate(Vector3(speed,0,0) * Time.deltaTime);
}
if (Input.GetKeyUp (KeyCode.LeftArrow))
{
transform.localScale.x = -2;
anim.SetBool("Walk",false);
}
if (Input.GetKeyUp (KeyCode.RightArrow))
{
transform.localScale.x = 2;
anim.SetBool("Walk",false);
}
}
}
//Rope
if(HoldRope == true)
{
if(Climb == false)
{
if (Input.GetKeyDown ("space"))
{
HoldRopeWait = true;
transform.parent = null;
transform.eulerAngles.z = 0;
if(Right == true){transform.localScale.x = 2;}else{transform.localScale.x = -2;}
transform.localScale.y = 2;
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Hold",false);
HoldRope = false;
Maincode.HoldRope = false;
jump = false;
HoldRopeWaitReset();
}
}
}
//Ladder
if(Climb == true)
{
if(HoldRope == false)
{
if (Input.GetKey (KeyCode.UpArrow))
{
transform.Translate(Vector3(0,speed,0) * Time.deltaTime);
}
if (Input.GetKey (KeyCode.DownArrow))
{
transform.Translate(Vector3(0,-speed,0) * Time.deltaTime);
}
}
}
}
function OnCollisionEnter2D(other : Collision2D)
{
if(other.gameObject.tag == "Ground" || other.gameObject.tag == "Box")
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Hold",false);
jump = true;
HoldRope = false;
Maincode.HoldRope = false;
transform.parent = null;
HoldRopeWait = false;
}
}
function OnCollisionStay2D(other : Collision2D)
{
if(other.gameObject.tag == "Rope")
{
if(HoldRopeWait == false)
{
other.gameObject.SendMessage ("HoldThisRope");
PlayerRigidbody.isKinematic = true;
PlayerRigidbody.gravityScale = 0;
anim.SetBool("Hold",true);
HoldRope = true;
Maincode.HoldRope = true;
transform.parent = other.transform;
}
}
//Grab
if(other.gameObject.tag == "Box")
{
//Grab Box
if(Input.GetButtonDown("Fire1"))
{
if(Grab == false)
{
Grab = true;
GrabObject = other.rigidbody;
other.rigidbody.isKinematic = true;
other.rigidbody.gravityScale = 0;
other.transform.parent = transform;
GrabWaitBeforeDrop = true;
GrabWait();
return;
}
}
}
}
function OnTriggerStay2D (other : Collider2D)
{
if(other.gameObject.tag == "LadderStart")
{
if (Input.GetKey (KeyCode.UpArrow))
{
if(Climb == false)
{
PlayerRigidbody.isKinematic = true;
PlayerRigidbody.gravityScale = 0;
anim.SetBool("Climb",true);
Climb = true;
ClimbNumber = 1;
return;
}
}
}
if(other.gameObject.tag == "LadderEnd")
{
if (Input.GetKey (KeyCode.DownArrow))
{
if(Climb == false)
{
PlayerRigidbody.isKinematic = true;
PlayerRigidbody.gravityScale = 0;
anim.SetBool("Climb",true);
Climb = true;
ClimbNumber = 2;
return;
}
}
}
}
function OnTriggerEnter2D (other : Collider2D)
{
if(other.gameObject.tag == "LadderStart")
{
if(Climb == true)
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Climb",false);
Climb = false;
ClimbNumber = 0;
return;
}
}
if(other.gameObject.tag == "Outside")
{
transform.position = StartPosition;
GetComponent.<Rigidbody2D>().velocity.x = 0;
GetComponent.<Rigidbody2D>().velocity.y = 0;
}
}
function OnTriggerExit2D (other : Collider2D)
{
if(other.gameObject.tag == "LadderStart")
{
if(Climb == true)
{
if(ClimbNumber == 2)
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Climb",false);
Climb = false;
ClimbNumber = 0;
return;
}
}
}
if(other.gameObject.tag == "LadderEnd")
{
if(Climb == true)
{
if(ClimbNumber == 1)
{
PlayerRigidbody.isKinematic = false;
PlayerRigidbody.gravityScale = 1;
anim.SetBool("Climb",false);
Climb = false;
ClimbNumber = 0;
return;
}
}
}
}
function HoldRopeWaitReset()
{
yield WaitForSeconds (.4);
HoldRopeWait = false;
}
function GrabWait()
{
yield WaitForSeconds (.4);
GrabWaitBeforeDrop = false;
}
Rope Swing - Rope
#pragma strict
var RopeSpeed : float = 80;
var RopeMove : float = 0;
var Wait: boolean = false;
var Wait2: boolean = false;
var HoldThis : boolean = false;
function Update ()
{
if(HoldThis == true){
if(Maincode.HoldRope == false)
{
HoldThis = false;
RopeMove = 0;
transform.eulerAngles.z = 0;
return;
}}
if(RopeMove >= 1)
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
if(Wait2 == false)
{
RopeMove = -45;
Wait2 = true;
Wait2Reset();
return;
}
}
}
if(RopeMove <= -1)
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
if(Wait2 == false)
{
RopeMove = 45;
Wait2 = true;
Wait2Reset();
return;
}
}
}
transform.Rotate(Vector3(0,0,RopeMove) * Time.deltaTime);
if(Maincode.HoldRope == true)
{
if(HoldThis == true)
{
if (Input.GetKey (KeyCode.LeftArrow))
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
RopeMove = 80;
Wait = true;
RopeWait();
return;
}
if(Wait == false)
{
transform.Rotate(Vector3(0,0,-RopeSpeed) * Time.deltaTime);
RopeMove = -45;
}
}
if (Input.GetKey (KeyCode.RightArrow))
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
RopeMove = -80;
Wait = true;
RopeWait();
return;
}
if(Wait == false)
{
transform.Rotate(Vector3(0,0,RopeSpeed) * Time.deltaTime);
RopeMove = 45;
}
}
}
if(Maincode.HoldRope == false)
{
RopeMove = 0;
transform.eulerAngles.z = 0;
}
}
}
function RopeWait ()
{
yield WaitForSeconds (.4);
Wait = false;
}
function Wait2Reset()
{
yield WaitForSeconds (.4);
Wait2 = false;
}
function HoldThisRope ()
{
HoldThis = true;
}
var RopeSpeed : float = 80;
var RopeMove : float = 0;
var Wait: boolean = false;
var Wait2: boolean = false;
var HoldThis : boolean = false;
function Update ()
{
if(HoldThis == true){
if(Maincode.HoldRope == false)
{
HoldThis = false;
RopeMove = 0;
transform.eulerAngles.z = 0;
return;
}}
if(RopeMove >= 1)
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
if(Wait2 == false)
{
RopeMove = -45;
Wait2 = true;
Wait2Reset();
return;
}
}
}
if(RopeMove <= -1)
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
if(Wait2 == false)
{
RopeMove = 45;
Wait2 = true;
Wait2Reset();
return;
}
}
}
transform.Rotate(Vector3(0,0,RopeMove) * Time.deltaTime);
if(Maincode.HoldRope == true)
{
if(HoldThis == true)
{
if (Input.GetKey (KeyCode.LeftArrow))
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
RopeMove = 80;
Wait = true;
RopeWait();
return;
}
if(Wait == false)
{
transform.Rotate(Vector3(0,0,-RopeSpeed) * Time.deltaTime);
RopeMove = -45;
}
}
if (Input.GetKey (KeyCode.RightArrow))
{
if(transform.eulerAngles.z >= 70 && transform.eulerAngles.z <= 300)
{
RopeMove = -80;
Wait = true;
RopeWait();
return;
}
if(Wait == false)
{
transform.Rotate(Vector3(0,0,RopeSpeed) * Time.deltaTime);
RopeMove = 45;
}
}
}
if(Maincode.HoldRope == false)
{
RopeMove = 0;
transform.eulerAngles.z = 0;
}
}
}
function RopeWait ()
{
yield WaitForSeconds (.4);
Wait = false;
}
function Wait2Reset()
{
yield WaitForSeconds (.4);
Wait2 = false;
}
function HoldThisRope ()
{
HoldThis = true;
}