Browse Source

Add preliminary Hero 3: Margarine (Merge)

master
Luna 7 years ago
parent
commit
f76e66dd86
3 changed files with 66 additions and 0 deletions
  1. +17
    -0
      scenes/heroes/3.tscn
  2. +1
    -0
      scripts/hero_select.gd
  3. +48
    -0
      scripts/heroes/3.gd

+ 17
- 0
scenes/heroes/3.tscn View File

@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=1]
[ext_resource path="res://scripts/heroes/3.gd" type="Script" id=2]
[node name="RigidBody" instance=ExtResource( 1 )]
contacts_reported = 3
contact_monitor = true
script = ExtResource( 2 )
_sections_unfolded = [ "Angular", "Axis Lock", "Collision", "Linear", "Pause", "Transform", "Visibility", "collision" ]
[node name="Crosshair" parent="MasterOnly" index="0"]
text = ""

+ 1
- 0
scripts/hero_select.gd View File

@ -4,6 +4,7 @@ const hero_names = [
"Wallriding mfer",
"WallMAKING mfer",
"an ATTRACTIVE mfer",
"Margarine"
]
func _ready():


+ 48
- 0
scripts/heroes/3.gd View File

@ -0,0 +1,48 @@
extends "res://scripts/player.gd"
var merge_power = .1
var merged = null
var old_layer
var old_mask
func _ready():
# Called every time the node is added to the scene.
# Initialization here
pass
func _process(delta):
if not merged:
var cols = get_colliding_bodies()
for col in cols:
if col.is_in_group("player"):
var same_team = col.player_info.is_right_team == player_info.is_right_team
if same_team:
merge(col)
func merge(other):
hide()
# Disable collisions
old_layer = collision_layer
old_mask = collision_mask
collision_layer = 0
collision_mask = 0
if is_network_master():
# Assume their PoV, but no control
other.get_node("Yaw/Pitch/Camera").make_current()
# Boost them!
other.walk_speed *= (1 + merge_power)
other.air_accel *= (1 + merge_power)
merged = other
func unmerge():
show()
# Re-enable collisions
collision_layer = old_layer
collision_mask = old_mask
if is_network_master():
get_node("Yaw/Pitch/Camera").make_current()
# Undo the boost
merged.walk_speed /= (1 + merge_power)
merged.air_accel /= (1 + merge_power)
merged = null

Loading…
Cancel
Save