Skip to content
Snippets Groups Projects
Commit 5d227713 authored by Canopteks's avatar Canopteks
Browse files

clean and smooth throws

parent c2afc3a8
Branches
Tags
No related merge requests found
......@@ -50,29 +50,33 @@ var idleTime:float = 0 # Stun when hitted + prevent spam
# Primary attack parameters
onready var primaryHitArea:Area = $primaryHitArea
var primaryAttackDmg:int = 30
var primaryAttackDmg:float = 15.0
var primaryAttackDist:float = 1.2
var primaryAttackDuration:float = 0.4
var primaryAttackDirection:Vector3 = Vector3(3,1,0)
var primaryAttackStrength:float = 1.5
# Secondary attack parameters
onready var secondaryHitArea:Area = $secondaryHitArea
var secondaryAttackDmg:int = 15
var secondaryAttackDmg:float = 5.0
var secondaryAttackDist:float = 1.2
var secondaryAttackDuration:float = 0.2
var secondaryAttackDirection:Vector3 = Vector3(1,5,0)
var secondaryAttackStrength:float = 0.8
# Health points related values
var hp:int = 0
var hp:float = 0.0
######## FUNCTIONS ########
# called by the engine
func _physics_process(delta):
func _physics_process(delta:float):
processMovement(delta)
broadcastMovement()
# Called from the game script to update the vars
func getPlayerInputs(movementInput, jumpInput, jumpId, sprintInput, attackTypeInput):
func getPlayerInputs(movementInput:int, jumpInput:bool, jumpId:int, sprintInput:bool, attackTypeInput:int):
motion = 0
# Prevent the player from moving when attacking
if isAttacking:
......@@ -94,7 +98,7 @@ func getPlayerInputs(movementInput, jumpInput, jumpId, sprintInput, attackTypeIn
processAttack(attackTypeInput)
func processMovement(delta):
func processMovement(delta:float):
# Set the side faced by the character
if motion > 0:
bodyRotation = 1
......@@ -162,7 +166,7 @@ func broadcastMovement():
# Check and trigger the type of attack requested
func processAttack(attackType):
func processAttack(attackType:int):
# Turn off the other attacks input for the time being
isAttacking = true
......@@ -207,9 +211,9 @@ func secondaryAttack():
# Called when detected by an attack's hitbox
func hurt(damages:int, sourceId:int, force:Vector3):
func hurt(damages:int, sourceId:int, direction:Vector3, strength:float):
hp += damages
vel += Vector3(force.x*hp/2,force.y,force.z)
vel += strength*hp*direction
lastStrikerId = sourceId
rpc_unreliable_id(ownId, "hurt", hp)
......@@ -221,20 +225,22 @@ func die():
######## SIGNALS ########
# Primary hit has landed on something
func _on_primaryHitArea_body_entered(body):
var force = Vector3(bodyRotation, 8, 0)
func _on_primaryHitArea_body_entered(body:Node):
var direction:Vector3 = primaryAttackDirection.normalized()
direction.x*=bodyRotation
if int(body.name)==ownId:
return
print("body named " + body.name + " hit: primary")
body.hurt(primaryAttackDmg, ownId, force)
body.hurt(primaryAttackDmg, ownId, direction, primaryAttackStrength)
# Secondary hit has landed on something
func _on_secondaryHitArea_body_entered(body):
var force = Vector3(bodyRotation, 0, 0)
func _on_secondaryHitArea_body_entered(body:Node):
var direction:Vector3 = secondaryAttackDirection.normalized()
direction.x*=bodyRotation
if int(body.name)==ownId:
return
print("body named " + body.name + " hit: secondary")
body.hurt(secondaryAttackDmg, ownId, force)
body.hurt(secondaryAttackDmg, ownId, direction, secondaryAttackStrength)
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment