Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
454a14275f | ||
|
aa54c05369 | ||
|
faa0723145 | ||
|
262173bee8 | ||
|
cbcda09e08 | ||
|
d83bd7ce17 | ||
|
13c1bf8350 | ||
|
b81a581fd2 | ||
|
20a92b40d9 | ||
|
8a6bc5937c | ||
|
92cafad56a | ||
|
b0d7acdbba | ||
|
033a1c21da | ||
|
4faeccff10 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
bin/
|
||||
android/
|
||||
|
32
Body2D.gd
32
Body2D.gd
@@ -1,32 +0,0 @@
|
||||
extends RigidBody2D
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
func _integrate_forces(state: PhysicsDirectBodyState2D):
|
||||
var contact_count = state.get_contact_count()
|
||||
#print("aa")
|
||||
for i in range(contact_count):
|
||||
#print("bb")
|
||||
var collider_object = state.get_contact_collider_object(i)
|
||||
if collider_object and collider_object.get_parent() is Player:
|
||||
handle_player_collision(collider_object.get_parent())
|
||||
if collider_object and collider_object.get_parent() is Pool:
|
||||
handle_pool_collision(collider_object.get_parent())
|
||||
|
||||
func handle_player_collision(player: Player):
|
||||
if $"..".is_carrying() and player.is_carrying():
|
||||
$"..".doubledrop(player)
|
||||
$"..".drop()
|
||||
player.drop()
|
||||
|
||||
|
||||
func handle_pool_collision(pool: Pool):
|
||||
$"..".exchange_with(pool)
|
17
Button.gd
17
Button.gd
@@ -1,17 +0,0 @@
|
||||
extends Button
|
||||
|
||||
@export_file var map_path
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
func _on_pressed():
|
||||
if map_path==null:
|
||||
return
|
||||
|
||||
var sim = load("res://sim.tscn").instantiate()
|
||||
var map = load(map_path).instantiate()
|
||||
sim.add_child(map)
|
||||
get_tree().root.add_child(sim)
|
||||
get_node("/root/MapSelect").queue_free()
|
30
Camera2D.gd
Normal file
30
Camera2D.gd
Normal file
@@ -0,0 +1,30 @@
|
||||
extends Camera2D
|
||||
|
||||
var last_mouse_position = Vector2.ZERO
|
||||
|
||||
func _ready():
|
||||
set_process_input(true)
|
||||
|
||||
func _input(event):
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_MIDDLE and event.pressed:
|
||||
last_mouse_position = get_global_mouse_position()
|
||||
elif event.button_index == MOUSE_BUTTON_MIDDLE and not event.pressed:
|
||||
last_mouse_position = Vector2.ZERO
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN and event.pressed:
|
||||
zoom_towards_mouse(Vector2(0.9, 0.9))
|
||||
elif event.button_index == MOUSE_BUTTON_WHEEL_UP and event.pressed:
|
||||
zoom_towards_mouse(Vector2(1.1, 1.1))
|
||||
|
||||
elif event is InputEventMouseMotion:
|
||||
if last_mouse_position != Vector2.ZERO:
|
||||
var mouse_motion = event.relative
|
||||
var drag_offset = mouse_motion / zoom
|
||||
position -= drag_offset
|
||||
last_mouse_position = get_global_mouse_position()
|
||||
|
||||
func zoom_towards_mouse(zoom_factor):
|
||||
var previous_mouse_position := get_local_mouse_position()
|
||||
zoom *= zoom_factor
|
||||
var diff = previous_mouse_position - get_local_mouse_position()
|
||||
offset += diff
|
@@ -1,4 +1,4 @@
|
||||
extends Label
|
||||
extends PanelContainer
|
||||
|
||||
var elapsed_time = 0.0 # Initialize a variable to keep track of elapsed time
|
||||
|
||||
@@ -13,4 +13,10 @@ func _process(delta):
|
||||
var seconds = int(elapsed_time) % 60
|
||||
var time_string = "%02d:%02d:%02d" % [hours, minutes, seconds] # Format time as H:M:S
|
||||
var fps = Engine.get_frames_per_second() # Get the current FPS
|
||||
text = time_string+" "+str(fps) + " fps" # Combine FPS and runtime into one string
|
||||
$HBoxContainer/HBoxContainer/Debug.text = time_string+" "+str(fps) + " fps" # Combine FPS and runtime into one string
|
||||
|
||||
func _on_save_pressed():
|
||||
$"../SaveDialog".popup_centered()
|
||||
|
||||
func _on_load_pressed():
|
||||
$"../LoadDialog".popup_centered()
|
69
LoadDialog.gd
Normal file
69
LoadDialog.gd
Normal file
@@ -0,0 +1,69 @@
|
||||
extends ConfirmationDialog
|
||||
|
||||
func _on_about_to_popup():
|
||||
$ItemList.clear()
|
||||
var dir = DirAccess.open("user://saves/")
|
||||
var file_names = []
|
||||
|
||||
if dir:
|
||||
dir.list_dir_begin()
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if !dir.current_is_dir():
|
||||
file_names.append(file_name)
|
||||
file_name = dir.get_next()
|
||||
dir.list_dir_end()
|
||||
|
||||
file_names.sort() # Sort the file names
|
||||
for f in file_names:
|
||||
$ItemList.add_item(f)
|
||||
else:
|
||||
print("An error occurred when trying to access the path.")
|
||||
|
||||
func _on_confirmed():
|
||||
var map = get_tree().root.get_node("Sim/Map")
|
||||
|
||||
# Load and instance the selected item
|
||||
for item in $ItemList.get_selected_items():
|
||||
var filename = "user://saves/" + $ItemList.get_item_text(item)
|
||||
print("load:", filename)
|
||||
|
||||
if not FileAccess.file_exists(filename):
|
||||
return # Error! We don't have a save to load.
|
||||
|
||||
# We need to revert the game state so we're not cloning objects
|
||||
# during loading. This will vary wildly depending on the needs of a
|
||||
# project, so take care with this step.
|
||||
# For our example, we will accomplish this by deleting saveable objects.
|
||||
var save_nodes = get_tree().get_nodes_in_group("Persist")
|
||||
for i in save_nodes:
|
||||
i.queue_free()
|
||||
|
||||
# Load the file line by line and process that dictionary to restore
|
||||
# the object it represents.
|
||||
var save_game = FileAccess.open(filename, FileAccess.READ)
|
||||
while save_game.get_position() < save_game.get_length():
|
||||
var json_string = save_game.get_line()
|
||||
|
||||
# Creates the helper class to interact with JSON
|
||||
var json = JSON.new()
|
||||
|
||||
# Check if there is any error while parsing the JSON string, skip in case of failure
|
||||
var parse_result = json.parse(json_string)
|
||||
if not parse_result == OK:
|
||||
print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line())
|
||||
continue
|
||||
|
||||
# Get the data from the JSON object
|
||||
var node_data = json.get_data()
|
||||
|
||||
# Firstly, we need to create the object and add it to the tree and set its position.
|
||||
var new_object = load(node_data["filename"]).instantiate()
|
||||
# Check the node has a load function.
|
||||
if !new_object.has_method("load_data"):
|
||||
print("persistent node '%s' is missing a load_data() function, skipped" % new_object.name)
|
||||
new_object.queue_free()
|
||||
continue
|
||||
new_object.load_data(node_data)
|
||||
map.add_child(new_object)
|
||||
$"../SaveDialog/LineEdit".text=$ItemList.get_item_text(item).get_basename()
|
94
Map.gd
Normal file
94
Map.gd
Normal file
@@ -0,0 +1,94 @@
|
||||
extends Node2D
|
||||
|
||||
var mouse_down_position = Vector2()
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if event.pressed:
|
||||
# Record the position where the mouse was pressed down
|
||||
mouse_down_position = get_global_mouse_position()
|
||||
else:
|
||||
# Handle mouse button release
|
||||
var pos = get_global_mouse_position()
|
||||
var vol = pos - mouse_down_position
|
||||
spawn(mouse_down_position,vol)
|
||||
|
||||
func spawn(pos,vol):
|
||||
var r=int($"../ScreenOverlay/HUD/HBoxContainer/Colors/Red".text)
|
||||
var g=int($"../ScreenOverlay/HUD/HBoxContainer/Colors/Green".text)
|
||||
var b=int($"../ScreenOverlay/HUD/HBoxContainer/Colors/Blue".text)
|
||||
if r+g+b>0:
|
||||
spawm_pool(pos,r,g,b)
|
||||
else:
|
||||
spawn_player(pos,vol)
|
||||
|
||||
func spawm_pool(pos,red,green,blue):
|
||||
var new_pool: Pool = load("res://pool.tscn").instantiate()
|
||||
new_pool.position = pos
|
||||
new_pool.mana_r=red
|
||||
new_pool.mana_g=green
|
||||
new_pool.mana_b=blue
|
||||
new_pool.get_node("CollisionShape2D2").disabled=true;
|
||||
#new_pool.get_node("StaticBody2D/CollisionShape2D2").set_deferred("disabled", true)
|
||||
|
||||
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
|
||||
|
||||
func spawn_player(pos,vol):
|
||||
var new_player = load("res://player.tscn").instantiate()
|
||||
new_player.position = pos
|
||||
|
||||
new_player.apply_impulse(vol)
|
||||
|
||||
# Prepare the shape query parameters
|
||||
var query_parameters = PhysicsShapeQueryParameters2D.new()
|
||||
var collision_shape = new_player.get_node("CollisionShape2D").shape
|
||||
query_parameters.set_shape(collision_shape)
|
||||
query_parameters.set_transform(Transform2D(0, pos))
|
||||
query_parameters.set_collision_mask(1)
|
||||
|
||||
# Get the Physics2DDirectSpaceState for collision checking
|
||||
var space_state = get_world_2d().direct_space_state
|
||||
|
||||
# Check for collision
|
||||
var collision_results = space_state.intersect_shape(query_parameters)
|
||||
if collision_results.size() == 0:
|
||||
# No collision, safe to add child
|
||||
add_child(new_player)
|
||||
else:
|
||||
for collision in collision_results:
|
||||
#print
|
||||
if collision.collider.get_parent() is Pool:
|
||||
new_player.queue_free()
|
||||
collision.collider.get_parent()._on_decay_timer_timeout()
|
||||
return
|
||||
var marker = Sprite2D.new()
|
||||
marker.position = new_player.position
|
||||
marker.scale=Vector2(0.1,0.1)
|
||||
marker.texture = load("res://images/crosshair.png")
|
||||
add_child(marker)
|
||||
new_player.queue_free()
|
||||
|
||||
|
||||
func not_ready():
|
||||
poolcircle(Vector2(0,0),200,32,100,0,0)
|
||||
poolcircle(Vector2(600,0),200,32,0,100,0)
|
||||
poolcircle(Vector2(1200,0),200,32,0,0,100)
|
||||
|
||||
poolcircle(Vector2(0,600),200,32,0,50,50)
|
||||
poolcircle(Vector2(600,600),200,32,50,0,50)
|
||||
poolcircle(Vector2(1200,600),200,32,50,50,0)
|
||||
|
||||
poolcircle(Vector2(600,200),2000,100,1000,1000,1000)
|
||||
|
||||
|
||||
func poolcircle(pos: Vector2, radius, count, r,g,b):
|
||||
for n in range(1,count+1):
|
||||
var new_pool: Pool = load("res://pool.tscn").instantiate()
|
||||
var t=(float(n)/count)*3.141*2
|
||||
new_pool.position = pos + (Vector2(sin(t),cos(t))*radius)
|
||||
new_pool.mana_r=r
|
||||
new_pool.mana_g=g
|
||||
new_pool.mana_b=b
|
||||
new_pool.get_node("CollisionShape2D2").disabled=true;
|
||||
add_child(new_pool)
|
@@ -1,15 +1,33 @@
|
||||
class_name Player
|
||||
extends Node2D
|
||||
extends RigidBody2D
|
||||
|
||||
func _integrate_forces(state: PhysicsDirectBodyState2D):
|
||||
var contact_count = state.get_contact_count()
|
||||
for i in range(contact_count):
|
||||
var collider_object = state.get_contact_collider_object(i)
|
||||
if collider_object and collider_object is Player:
|
||||
handle_player_collision(collider_object)
|
||||
if collider_object and collider_object is Pool:
|
||||
handle_pool_collision(collider_object)
|
||||
|
||||
func handle_player_collision(player: Player):
|
||||
if is_carrying() and player.is_carrying():
|
||||
doubledrop(player)
|
||||
drop()
|
||||
player.drop()
|
||||
|
||||
func handle_pool_collision(pool: Pool):
|
||||
exchange_with(pool)
|
||||
|
||||
var carrying_r=0
|
||||
var carrying_g=0
|
||||
var carrying_b=0
|
||||
|
||||
func _process(_delta):
|
||||
if $Body2D/CollisionShape2D.disabled:
|
||||
if $CollisionShape2D.disabled:
|
||||
# Prepare the shape query parameters
|
||||
var query_parameters = PhysicsShapeQueryParameters2D.new()
|
||||
var collision_shape = $Body2D/CollisionShape2D.shape
|
||||
var collision_shape = $CollisionShape2D.shape
|
||||
query_parameters.set_shape(collision_shape)
|
||||
query_parameters.set_transform(Transform2D(0, position))
|
||||
query_parameters.set_collision_mask(2) #2=pools
|
||||
@@ -20,7 +38,7 @@ func _process(_delta):
|
||||
# Check for collision
|
||||
var collision_results = space_state.intersect_shape(query_parameters)
|
||||
if collision_results.size() == 0:
|
||||
$Body2D/CollisionShape2D.disabled=false
|
||||
$CollisionShape2D.disabled=false
|
||||
|
||||
#func _physics_process(delta):
|
||||
# if Input.is_action_pressed('move_up'):
|
||||
@@ -33,50 +51,38 @@ func _process(_delta):
|
||||
# velocity.x += 1
|
||||
# if Input.is_action_just_pressed('take'):
|
||||
# drop()
|
||||
#
|
||||
# var collision_info = move_and_collide(velocity * delta)
|
||||
# if collision_info:
|
||||
# velocity = velocity.bounce(collision_info.get_normal())
|
||||
# var collider=collision_info.get_collider();
|
||||
# if collider.get_parent() is Pool:
|
||||
# exchange_with(collider.get_parent())
|
||||
# collider.get_parent().update()
|
||||
# if collider.get_parent() is Player:
|
||||
# drop()
|
||||
# update()
|
||||
|
||||
func drop():
|
||||
if not is_carrying():
|
||||
return
|
||||
var new_pool: Pool = load("res://pool.tscn").instantiate()
|
||||
new_pool.position = $Body2D.position
|
||||
new_pool.position = position
|
||||
new_pool.mana_r=carrying_r
|
||||
new_pool.mana_g=carrying_g
|
||||
new_pool.mana_b=carrying_b
|
||||
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true;
|
||||
#new_pool.get_node("StaticBody2D/CollisionShape2D2").set_deferred("disabled", true)
|
||||
new_pool.get_node("CollisionShape2D2").disabled=true;
|
||||
carrying_r=0
|
||||
carrying_g=0
|
||||
carrying_b=0
|
||||
get_tree().root.get_node("Sim").call_deferred("add_child",new_pool)
|
||||
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
|
||||
update()
|
||||
|
||||
func doubledrop(player: Player):
|
||||
if not is_carrying() or not player.is_carrying():
|
||||
return
|
||||
var new_pool: Pool = load("res://pool.tscn").instantiate()
|
||||
new_pool.position = ($Body2D.position + player.get_node("Body2D").position ) /2
|
||||
new_pool.position = (position + player.position ) /2
|
||||
new_pool.mana_r=carrying_r+player.carrying_r
|
||||
new_pool.mana_g=carrying_g+player.carrying_g
|
||||
new_pool.mana_b=carrying_b+player.carrying_b
|
||||
new_pool.get_node("StaticBody2D/CollisionShape2D2").disabled=true;
|
||||
new_pool.get_node("CollisionShape2D2").disabled=true;
|
||||
carrying_r=0
|
||||
carrying_g=0
|
||||
carrying_b=0
|
||||
player.carrying_r=0
|
||||
player.carrying_g=0
|
||||
player.carrying_b=0
|
||||
get_tree().root.get_node("Sim").call_deferred("add_child",new_pool)
|
||||
get_tree().root.get_node("Sim/Map").call_deferred("add_child",new_pool)
|
||||
update()
|
||||
|
||||
func exchange_with(pool: Pool):
|
||||
@@ -112,3 +118,25 @@ func update():
|
||||
|
||||
func is_carrying():
|
||||
return (carrying_r+carrying_g+carrying_b)>0
|
||||
|
||||
func save_data():
|
||||
var data = {
|
||||
"filename" : get_scene_file_path(),
|
||||
"pos_x" : position.x,
|
||||
"pos_y" : position.y,
|
||||
"vel_x" : linear_velocity.x,
|
||||
"vel_y" : linear_velocity.y,
|
||||
"vel_a" : angular_velocity,
|
||||
"r" : carrying_r,
|
||||
"g" : carrying_g,
|
||||
"b" : carrying_b,
|
||||
}
|
||||
return data
|
||||
|
||||
func load_data(data):
|
||||
position=Vector2(data["pos_x"],data["pos_y"])
|
||||
linear_velocity=Vector2(data["vel_x"],data["vel_y"])
|
||||
angular_velocity=data["vel_a"]
|
||||
carrying_r=data["r"]
|
||||
carrying_g=data["g"]
|
||||
carrying_b=data["b"]
|
28
Pool.gd
28
Pool.gd
@@ -1,6 +1,6 @@
|
||||
@tool
|
||||
class_name Pool
|
||||
extends Node2D
|
||||
extends StaticBody2D
|
||||
|
||||
@export var mana_r: int = 10
|
||||
@export var mana_g: int = 10
|
||||
@@ -12,10 +12,10 @@ func _ready():
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
if $StaticBody2D/CollisionShape2D2.disabled:
|
||||
if $CollisionShape2D2.disabled:
|
||||
# Prepare the shape query parameters
|
||||
var query_parameters = PhysicsShapeQueryParameters2D.new()
|
||||
var collision_shape = $StaticBody2D/CollisionShape2D2.shape
|
||||
var collision_shape = $CollisionShape2D2.shape
|
||||
query_parameters.set_shape(collision_shape)
|
||||
query_parameters.set_transform(Transform2D(0, position))
|
||||
query_parameters.set_collision_mask(1) #1=players
|
||||
@@ -26,7 +26,7 @@ func _process(_delta):
|
||||
# Check for collision
|
||||
var collision_results = space_state.intersect_shape(query_parameters)
|
||||
if collision_results.size() == 0:
|
||||
$StaticBody2D/CollisionShape2D2.disabled=false
|
||||
$CollisionShape2D2.disabled=false
|
||||
|
||||
update()
|
||||
pass
|
||||
@@ -46,11 +46,27 @@ func update():
|
||||
self.queue_redraw() # Request to redraw the node
|
||||
|
||||
|
||||
func _on_decay_timer_timeout():
|
||||
func decay():
|
||||
var new_player = load("res://player.tscn").instantiate()
|
||||
|
||||
new_player.get_node("CharacterBody2D").velocity = Vector2.from_angle(randf_range(0, 2 * PI)) * 100
|
||||
new_player.get_node("CharacterBody2D").position = position
|
||||
new_player.get_node("CharacterBody2D").exchange_with(self)
|
||||
new_player.get_node("CharacterBody2D/CollisionShape2D").disabled=true
|
||||
get_tree().root.add_child(new_player)
|
||||
|
||||
func save_data():
|
||||
var data = {
|
||||
"filename" : get_scene_file_path(),
|
||||
"pos_x" : position.x,
|
||||
"pos_y" : position.y,
|
||||
"r" : mana_r,
|
||||
"g" : mana_g,
|
||||
"b" : mana_b,
|
||||
}
|
||||
return data
|
||||
|
||||
func load_data(data):
|
||||
position=Vector2(data["pos_x"],data["pos_y"])
|
||||
mana_r=data["r"]
|
||||
mana_g=data["g"]
|
||||
mana_b=data["b"]
|
||||
|
55
SaveDialog.gd
Normal file
55
SaveDialog.gd
Normal file
@@ -0,0 +1,55 @@
|
||||
extends ConfirmationDialog
|
||||
|
||||
var base_path = "user://saves/"
|
||||
|
||||
func _ready():
|
||||
if not DirAccess.dir_exists_absolute(base_path):
|
||||
DirAccess.make_dir_recursive_absolute(base_path)
|
||||
var dir = DirAccess.open("res://saves/")
|
||||
if dir:
|
||||
dir.list_dir_begin()
|
||||
var file_name = dir.get_next()
|
||||
while file_name != "":
|
||||
if dir.current_is_dir():
|
||||
print("skip directory: " + file_name)
|
||||
else:
|
||||
print("copy file: " + file_name)
|
||||
DirAccess.copy_absolute("res://saves/"+file_name,"user://saves/"+file_name)
|
||||
file_name = dir.get_next()
|
||||
else:
|
||||
print("An error occurred when trying to access the path.")
|
||||
|
||||
func _on_about_to_popup():
|
||||
pass # Replace with function body.
|
||||
|
||||
func _on_confirmed():
|
||||
var filename=base_path+$LineEdit.text
|
||||
print("Save: "+filename)
|
||||
var save_game = FileAccess.open(filename, FileAccess.WRITE)
|
||||
var save_nodes = get_tree().get_nodes_in_group("Persist")
|
||||
for node in save_nodes:
|
||||
# Check the node is an instanced scene so it can be instanced again during load.
|
||||
if node.scene_file_path.is_empty():
|
||||
print("persistent node '%s' is not an instanced scene, skipped" % node.name)
|
||||
continue
|
||||
|
||||
# Check the node has a save function.
|
||||
if !node.has_method("save_data"):
|
||||
print("persistent node '%s' is missing a save_data() function, skipped" % node.name)
|
||||
continue
|
||||
|
||||
# Call the node's save function.
|
||||
var node_data = node.call("save_data")
|
||||
|
||||
# JSON provides a static method to serialized JSON string.
|
||||
var json_string = JSON.stringify(node_data)
|
||||
|
||||
# Store the save dictionary as a new line in the save file.
|
||||
save_game.store_line(json_string)
|
||||
|
||||
func set_owner_recursive(node: Node, new_owner: Node):
|
||||
if node != new_owner:
|
||||
node.owner = new_owner
|
||||
print("chown ",node.name)
|
||||
for child in node.get_children():
|
||||
set_owner_recursive(child, new_owner)
|
@@ -1,9 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://ckv0180aypptf"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://1g54esg7yd35" path="res://images/crosshair.png" id="1_7vv1r"]
|
||||
|
||||
[node name="Crosshair" type="Node2D"]
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
scale = Vector2(0.05, 0.05)
|
||||
texture = ExtResource("1_7vv1r")
|
@@ -34,14 +34,14 @@ package/signed=true
|
||||
package/app_category=2
|
||||
package/retain_data_on_uninstall=false
|
||||
package/exclude_from_recents=false
|
||||
package/show_in_android_tv=false
|
||||
package/show_in_app_library=true
|
||||
package/show_as_launcher_app=false
|
||||
launcher_icons/main_192x192=""
|
||||
launcher_icons/adaptive_foreground_432x432=""
|
||||
launcher_icons/adaptive_background_432x432=""
|
||||
graphics/opengl_debug=false
|
||||
xr_features/xr_mode=0
|
||||
xr_features/hand_tracking=0
|
||||
xr_features/hand_tracking_frequency=0
|
||||
xr_features/passthrough=0
|
||||
screen/immersive_mode=true
|
||||
screen/support_small=true
|
||||
screen/support_normal=true
|
||||
@@ -199,6 +199,9 @@ permissions/write_sms=false
|
||||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
xr_features/hand_tracking=0
|
||||
xr_features/hand_tracking_frequency=0
|
||||
xr_features/passthrough=0
|
||||
|
||||
[preset.1]
|
||||
|
||||
@@ -210,7 +213,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="bin/alpha6.x86_64"
|
||||
export_path="bin/alpha8.x86_64"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
@@ -250,7 +253,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
export_path="bin/alpha8_macos.zip"
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
encrypt_pck=false
|
||||
@@ -265,7 +268,7 @@ custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
application/icon=""
|
||||
application/icon_interpolation=4
|
||||
application/bundle_identifier=""
|
||||
application/bundle_identifier="uk.co.jhodges"
|
||||
application/signature=""
|
||||
application/app_category="Games"
|
||||
application/short_version="1.0"
|
||||
@@ -273,6 +276,7 @@ application/version="1.0"
|
||||
application/copyright=""
|
||||
application/copyright_localized={}
|
||||
application/min_macos_version="10.12"
|
||||
application/export_angle=0
|
||||
display/high_res=true
|
||||
xcode/platform_build="14C18"
|
||||
xcode/sdk_version="13.1"
|
||||
@@ -306,6 +310,7 @@ codesign/entitlements/app_sandbox/files_downloads=0
|
||||
codesign/entitlements/app_sandbox/files_pictures=0
|
||||
codesign/entitlements/app_sandbox/files_music=0
|
||||
codesign/entitlements/app_sandbox/files_movies=0
|
||||
codesign/entitlements/app_sandbox/files_user_selected=0
|
||||
codesign/entitlements/app_sandbox/helper_executables=[]
|
||||
codesign/custom_options=PackedStringArray()
|
||||
notarization/notarization=0
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 157 B |
@@ -1,92 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://iskh4m3ltqul"]
|
||||
|
||||
[ext_resource type="Script" path="res://Button.gd" id="1_rygkg"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_kd1xo"]
|
||||
font_size = 32
|
||||
|
||||
[node name="MapSelect" type="Node2D"]
|
||||
|
||||
[node name="Title" type="Label" parent="."]
|
||||
offset_left = 27.0
|
||||
offset_top = 127.0
|
||||
offset_right = 196.0
|
||||
offset_bottom = 175.0
|
||||
text = "Map Select"
|
||||
label_settings = SubResource("LabelSettings_kd1xo")
|
||||
|
||||
[node name="Button" type="Button" parent="."]
|
||||
offset_left = 24.0
|
||||
offset_top = 261.0
|
||||
offset_right = 199.0
|
||||
offset_bottom = 324.0
|
||||
text = "RGB"
|
||||
script = ExtResource("1_rygkg")
|
||||
map_path = "res://maps/rgb.tscn"
|
||||
|
||||
[node name="Button2" type="Button" parent="."]
|
||||
offset_left = 29.0
|
||||
offset_top = 186.0
|
||||
offset_right = 204.0
|
||||
offset_bottom = 249.0
|
||||
text = "Source"
|
||||
script = ExtResource("1_rygkg")
|
||||
map_path = "res://maps/source.tscn"
|
||||
|
||||
[node name="Button3" type="Button" parent="."]
|
||||
offset_left = 25.0
|
||||
offset_top = 332.0
|
||||
offset_right = 200.0
|
||||
offset_bottom = 395.0
|
||||
text = "CMY"
|
||||
script = ExtResource("1_rygkg")
|
||||
map_path = "res://maps/cmy.tscn"
|
||||
|
||||
[node name="Button4" type="Button" parent="."]
|
||||
offset_left = 397.0
|
||||
offset_top = 188.0
|
||||
offset_right = 572.0
|
||||
offset_bottom = 251.0
|
||||
text = "Rare"
|
||||
script = ExtResource("1_rygkg")
|
||||
map_path = "res://maps/rare.tscn"
|
||||
|
||||
[node name="Button5" type="Button" parent="."]
|
||||
offset_left = 213.0
|
||||
offset_top = 185.0
|
||||
offset_right = 388.0
|
||||
offset_bottom = 248.0
|
||||
text = "Seperated"
|
||||
script = ExtResource("1_rygkg")
|
||||
map_path = "res://maps/seperated.tscn"
|
||||
|
||||
[node name="Button6" type="Button" parent="."]
|
||||
offset_left = 208.0
|
||||
offset_top = 260.0
|
||||
offset_right = 383.0
|
||||
offset_bottom = 323.0
|
||||
text = "RGB Sections"
|
||||
script = ExtResource("1_rygkg")
|
||||
map_path = "res://maps/rgb_sections.tscn"
|
||||
|
||||
[node name="Drop" type="CheckBox" parent="."]
|
||||
offset_left = 33.0
|
||||
offset_top = 74.0
|
||||
offset_right = 194.0
|
||||
offset_bottom = 105.0
|
||||
text = "Drop on Collision"
|
||||
|
||||
[node name="Title2" type="Label" parent="."]
|
||||
offset_left = 24.0
|
||||
offset_top = 14.0
|
||||
offset_right = 193.0
|
||||
offset_bottom = 62.0
|
||||
text = "Options"
|
||||
label_settings = SubResource("LabelSettings_kd1xo")
|
||||
|
||||
[connection signal="pressed" from="Button" to="Button" method="_on_pressed"]
|
||||
[connection signal="pressed" from="Button2" to="Button2" method="_on_pressed"]
|
||||
[connection signal="pressed" from="Button3" to="Button3" method="_on_pressed"]
|
||||
[connection signal="pressed" from="Button4" to="Button4" method="_on_pressed"]
|
||||
[connection signal="pressed" from="Button5" to="Button5" method="_on_pressed"]
|
||||
[connection signal="pressed" from="Button6" to="Button6" method="_on_pressed"]
|
@@ -1,29 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://ce4ed87hyb1o3"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="2_u62jc"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="M" parent="." instance=ExtResource("2_u62jc")]
|
||||
modulate = Color(1, 0, 1, 1)
|
||||
position = Vector2(260, 209)
|
||||
scale = Vector2(0.447214, 0.447214)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="C" parent="." instance=ExtResource("2_u62jc")]
|
||||
modulate = Color(0, 1, 1, 1)
|
||||
position = Vector2(886, 210)
|
||||
scale = Vector2(0.447214, 0.447214)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 100
|
||||
|
||||
[node name="Y" parent="." instance=ExtResource("2_u62jc")]
|
||||
modulate = Color(1, 1, 0, 1)
|
||||
position = Vector2(583, 502)
|
||||
scale = Vector2(0.447214, 0.447214)
|
||||
mana_r = 100
|
||||
mana_g = 100
|
||||
mana_b = 0
|
@@ -1,29 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bts7n21b8v8os"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="1_ivbwl"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="Red" parent="." instance=ExtResource("1_ivbwl")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(260, 209)
|
||||
scale = Vector2(0.1, 0.1)
|
||||
mana_r = 10
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green" parent="." instance=ExtResource("1_ivbwl")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(886, 210)
|
||||
scale = Vector2(1, 1)
|
||||
mana_r = 0
|
||||
mana_g = 1000
|
||||
mana_b = 0
|
||||
|
||||
[node name="Blue" parent="." instance=ExtResource("1_ivbwl")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(583, 502)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
@@ -1,29 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://de5ghicw2skkg"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="1_icig8"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="Red" parent="." instance=ExtResource("1_icig8")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(260, 209)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green" parent="." instance=ExtResource("1_icig8")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(886, 210)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Blue" parent="." instance=ExtResource("1_icig8")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(583, 502)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
@@ -1,541 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://65vslfrgjtly"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="2_caufp"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="Red" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(540, 177)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(779, 119)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Blue" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(722, 502)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Red2" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(513, 210)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red3" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(449, 250)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red4" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(196, 312)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red5" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(332, 287)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red6" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(597, 85)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red7" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(483, 229)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red8" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(259, 310)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red9" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(628, 13)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red10" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(561, 154)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red11" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(600, 47)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red12" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(164, 309)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red13" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(289, 288)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red14" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(410, 263)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red15" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(366, 273)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red16" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(581, 118)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green2" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(775, 85)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green3" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(790, 161)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green4" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(823, 219)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green5" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(1145, 410)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green6" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(860, 273)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green7" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(1019, 374)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green8" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(1082, 396)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green9" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(1121, 403)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green10" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(773, 50)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green11" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(963, 342)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green12" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(842, 250)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green13" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(811, 185)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green14" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(770, 15)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green15" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(983, 363)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green16" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(1051, 384)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green17" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(941, 336)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Blue2" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(763, 511)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue3" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(803, 525)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue4" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(829, 534)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue5" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(933, 650)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue6" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(916, 631)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue7" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(362, 512)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue8" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(293, 588)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue9" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(698, 498)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue10" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(392, 494)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue11" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(336, 537)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue12" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(253, 646)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue13" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(662, 485)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue14" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(269, 616)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue15" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(878, 578)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue16" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(317, 561)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue17" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(626, 482)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue18" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(898, 606)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue19" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(853, 552)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Green18" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(885, 295)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Green19" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(914, 320)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 100
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red17" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(259, 310)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red18" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(227, 310)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red19" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(3, 323)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red20" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(29, 325)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red21" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(56, 320)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red22" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(93, 318)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Red23" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(131, 317)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 100
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Blue20" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(598, 476)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue21" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(564, 471)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue22" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(530, 466)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue23" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(491, 462)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue24" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(458, 468)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
||||
|
||||
[node name="Blue25" parent="." instance=ExtResource("2_caufp")]
|
||||
modulate = Color(0, 0, 1, 1)
|
||||
position = Vector2(428, 478)
|
||||
scale = Vector2(0.316228, 0.316228)
|
||||
mana_r = 0
|
||||
mana_g = 0
|
||||
mana_b = 100
|
@@ -1,53 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://bc64eh8p22erv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="1_uxair"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="Pool" parent="." instance=ExtResource("1_uxair")]
|
||||
modulate = Color(1, 1, 1, 1)
|
||||
position = Vector2(576, 106)
|
||||
scale = Vector2(1.73205, 1.73205)
|
||||
mana_r = 1000
|
||||
mana_g = 1000
|
||||
mana_b = 1000
|
||||
|
||||
[node name="Pool2" parent="." instance=ExtResource("1_uxair")]
|
||||
modulate = Color(1, 1, 1, 1)
|
||||
position = Vector2(568, 249)
|
||||
scale = Vector2(1.73205, 1.73205)
|
||||
mana_r = 1000
|
||||
mana_g = 1000
|
||||
mana_b = 1000
|
||||
|
||||
[node name="Pool3" parent="." instance=ExtResource("1_uxair")]
|
||||
modulate = Color(1, 1, 1, 1)
|
||||
position = Vector2(573, 390)
|
||||
scale = Vector2(1.73205, 1.73205)
|
||||
mana_r = 1000
|
||||
mana_g = 1000
|
||||
mana_b = 1000
|
||||
|
||||
[node name="Pool4" parent="." instance=ExtResource("1_uxair")]
|
||||
modulate = Color(1, 1, 1, 1)
|
||||
position = Vector2(573, 557)
|
||||
scale = Vector2(1.73205, 1.73205)
|
||||
mana_r = 1000
|
||||
mana_g = 1000
|
||||
mana_b = 1000
|
||||
|
||||
[node name="Pool5" parent="." instance=ExtResource("1_uxair")]
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
position = Vector2(217, 331)
|
||||
scale = Vector2(1, 1)
|
||||
mana_r = 1000
|
||||
mana_g = 0
|
||||
mana_b = 0
|
||||
|
||||
[node name="Pool6" parent="." instance=ExtResource("1_uxair")]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(927, 324)
|
||||
scale = Vector2(1, 1)
|
||||
mana_r = 0
|
||||
mana_g = 1000
|
||||
mana_b = 0
|
@@ -1,13 +0,0 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dh05x28usoabl"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bpd3l1iyb13h2" path="res://pool.tscn" id="2_3xoru"]
|
||||
|
||||
[node name="Map" type="Node2D"]
|
||||
|
||||
[node name="Pool" parent="." instance=ExtResource("2_3xoru")]
|
||||
modulate = Color(1, 1, 1, 1)
|
||||
position = Vector2(596, 330)
|
||||
scale = Vector2(1.73205, 1.73205)
|
||||
mana_r = 1000
|
||||
mana_g = 1000
|
||||
mana_b = 1000
|
16
player.tscn
16
player.tscn
@@ -1,26 +1,22 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bu6pswk806qv6"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bu6pswk806qv6"]
|
||||
|
||||
[ext_resource type="Script" path="res://player.gd" id="1_kr26t"]
|
||||
[ext_resource type="Script" path="res://Player.gd" id="1_kr26t"]
|
||||
[ext_resource type="PhysicsMaterial" uid="uid://6vo1o6je0duv" path="res://physics/no_friction.tres" id="2_5k2ia"]
|
||||
[ext_resource type="Texture2D" uid="uid://clyn507dro67" path="res://images/player.png" id="2_cxs7h"]
|
||||
[ext_resource type="Script" path="res://Body2D.gd" id="3_rse87"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_yt706"]
|
||||
|
||||
[node name="Player" type="Node2D"]
|
||||
script = ExtResource("1_kr26t")
|
||||
|
||||
[node name="Body2D" type="RigidBody2D" parent="."]
|
||||
[node name="Player" type="RigidBody2D" groups=["Persist"]]
|
||||
collision_mask = 7
|
||||
physics_material_override = ExtResource("2_5k2ia")
|
||||
max_contacts_reported = 10
|
||||
contact_monitor = true
|
||||
script = ExtResource("3_rse87")
|
||||
script = ExtResource("1_kr26t")
|
||||
|
||||
[node name="Mono-polygon" type="Sprite2D" parent="Body2D"]
|
||||
[node name="Mono-polygon" type="Sprite2D" parent="."]
|
||||
scale = Vector2(0.1, 0.1)
|
||||
texture = ExtResource("2_cxs7h")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Body2D"]
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
scale = Vector2(0.8, 0.8)
|
||||
shape = SubResource("CircleShape2D_yt706")
|
||||
|
17
pool.tscn
17
pool.tscn
@@ -5,23 +5,14 @@
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_fmfn8"]
|
||||
|
||||
[node name="Pool" type="Node2D"]
|
||||
modulate = Color(0.3, 1, 1, 1)
|
||||
scale = Vector2(0.151658, 0.151658)
|
||||
script = ExtResource("1_tvic3")
|
||||
mana_r = 3
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
[node name="StaticBody2D" type="StaticBody2D" groups=["Persist"]]
|
||||
collision_layer = 2
|
||||
collision_mask = 3
|
||||
script = ExtResource("1_tvic3")
|
||||
|
||||
[node name="CollisionShape2D2" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
[node name="CollisionShape2D2" type="CollisionShape2D" parent="."]
|
||||
scale = Vector2(8.5, 8.5)
|
||||
shape = SubResource("CircleShape2D_fmfn8")
|
||||
|
||||
[node name="Icon" type="Sprite2D" parent="StaticBody2D"]
|
||||
[node name="Icon" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2_45evg")
|
||||
|
||||
[node name="DecayTimer" type="Timer" parent="StaticBody2D"]
|
||||
|
||||
[connection signal="timeout" from="StaticBody2D/DecayTimer" to="." method="_on_decay_timer_timeout"]
|
||||
|
@@ -11,14 +11,10 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="RGB Physics Life"
|
||||
run/main_scene="res://map_select.tscn"
|
||||
config/features=PackedStringArray("4.1", "Mobile")
|
||||
run/main_scene="res://sim.tscn"
|
||||
config/features=PackedStringArray("4.2", "Mobile")
|
||||
config/icon="res://images/icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/resizable=false
|
||||
|
||||
[input]
|
||||
|
||||
move_up={
|
||||
@@ -68,7 +64,3 @@ escape={
|
||||
2d/default_gravity=0.0
|
||||
2d/default_linear_damp=0.0
|
||||
2d/default_angular_damp=0.0
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="mobile"
|
||||
|
292
saves/circles
Normal file
292
saves/circles
Normal file
@@ -0,0 +1,292 @@
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":39.010799407959,"pos_y":196.158508300781,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":76.5230026245117,"pos_y":184.78157043457,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":111.095573425293,"pos_y":166.306274414062,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":141.400390625,"pos_y":141.442306518555,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":166.273345947266,"pos_y":111.144844055176,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":184.758895874023,"pos_y":76.577751159668,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":196.146926879883,"pos_y":39.0689239501953,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":199.999984741211,"pos_y":0.0592653565108776,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":196.170059204102,"pos_y":-38.9526710510254,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":184.804244995117,"pos_y":-76.4682388305664,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":166.33918762207,"pos_y":-111.046279907227,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":141.48420715332,"pos_y":-141.358489990234,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":111.194107055664,"pos_y":-166.240386962891,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":76.6324920654297,"pos_y":-184.736190795898,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":39.1270446777344,"pos_y":-196.135345458984,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":0.118530713021755,"pos_y":-199.999969482422,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-38.8945388793945,"pos_y":-196.181579589844,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-76.4134674072266,"pos_y":-184.826904296875,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-110.99698638916,"pos_y":-166.372085571289,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-141.316543579102,"pos_y":-141.526077270508,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-166.207443237305,"pos_y":-111.243370056152,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-184.713470458984,"pos_y":-76.6872329711914,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-196.123748779297,"pos_y":-39.1851615905762,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-199.999923706055,"pos_y":-0.17779605090618,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-196.193099975586,"pos_y":38.8364028930664,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-184.849517822266,"pos_y":76.3587036132812,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-166.404968261719,"pos_y":110.947677612305,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-141.567962646484,"pos_y":141.274612426758,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-111.292610168457,"pos_y":166.174468994141,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-76.7419662475586,"pos_y":184.690734863281,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-39.243278503418,"pos_y":196.112121582031,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":0,"pos_x":-0.23706138134003,"pos_y":199.999862670898,"r":100}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":639.010803222656,"pos_y":196.158508300781,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":676.523010253906,"pos_y":184.78157043457,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":711.095581054688,"pos_y":166.306274414062,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":741.400390625,"pos_y":141.442306518555,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":766.273315429688,"pos_y":111.144844055176,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":784.758911132812,"pos_y":76.577751159668,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":796.146911621094,"pos_y":39.0689239501953,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":800,"pos_y":0.0592653565108776,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":796.170043945312,"pos_y":-38.9526710510254,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":784.804260253906,"pos_y":-76.4682388305664,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":766.339172363281,"pos_y":-111.046279907227,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":741.484191894531,"pos_y":-141.358489990234,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":711.194091796875,"pos_y":-166.240386962891,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":676.632507324219,"pos_y":-184.736190795898,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":639.127075195312,"pos_y":-196.135345458984,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":600.118530273438,"pos_y":-199.999969482422,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":561.10546875,"pos_y":-196.181579589844,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":523.586547851562,"pos_y":-184.826904296875,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":489.003021240234,"pos_y":-166.372085571289,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":458.683471679688,"pos_y":-141.526077270508,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":433.792541503906,"pos_y":-111.243370056152,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":415.286529541016,"pos_y":-76.6872329711914,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":403.876251220703,"pos_y":-39.1851615905762,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":400.000061035156,"pos_y":-0.17779605090618,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":403.806884765625,"pos_y":38.8364028930664,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":415.150482177734,"pos_y":76.3587036132812,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":433.595031738281,"pos_y":110.947677612305,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":458.432037353516,"pos_y":141.274612426758,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":488.707397460938,"pos_y":166.174468994141,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":523.258056640625,"pos_y":184.690734863281,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":560.756713867188,"pos_y":196.112121582031,"r":0}
|
||||
{"b":0,"filename":"res://pool.tscn","g":100,"pos_x":599.762939453125,"pos_y":199.999862670898,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1239.0107421875,"pos_y":196.158508300781,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1276.52294921875,"pos_y":184.78157043457,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1311.09558105469,"pos_y":166.306274414062,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1341.400390625,"pos_y":141.442306518555,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1366.27331542969,"pos_y":111.144844055176,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1384.75891113281,"pos_y":76.577751159668,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1396.14697265625,"pos_y":39.0689239501953,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1400,"pos_y":0.0592653565108776,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1396.17004394531,"pos_y":-38.9526710510254,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1384.80419921875,"pos_y":-76.4682388305664,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1366.33923339844,"pos_y":-111.046279907227,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1341.48425292969,"pos_y":-141.358489990234,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1311.19409179688,"pos_y":-166.240386962891,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1276.63244628906,"pos_y":-184.736190795898,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1239.12707519531,"pos_y":-196.135345458984,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1200.11853027344,"pos_y":-199.999969482422,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1161.10546875,"pos_y":-196.181579589844,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1123.58654785156,"pos_y":-184.826904296875,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1089.00305175781,"pos_y":-166.372085571289,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1058.68347167969,"pos_y":-141.526077270508,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1033.79260253906,"pos_y":-111.243370056152,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1015.28649902344,"pos_y":-76.6872329711914,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1003.87622070312,"pos_y":-39.1851615905762,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1000.00006103516,"pos_y":-0.17779605090618,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1003.80688476562,"pos_y":38.8364028930664,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1015.15051269531,"pos_y":76.3587036132812,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1033.59497070312,"pos_y":110.947677612305,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1058.43200683594,"pos_y":141.274612426758,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1088.70739746094,"pos_y":166.174468994141,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1123.25805664062,"pos_y":184.690734863281,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1160.75671386719,"pos_y":196.112121582031,"r":0}
|
||||
{"b":100,"filename":"res://pool.tscn","g":0,"pos_x":1199.76293945312,"pos_y":199.999862670898,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":39.010799407959,"pos_y":796.158508300781,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":76.5230026245117,"pos_y":784.781555175781,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":111.095573425293,"pos_y":766.306274414062,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":141.400390625,"pos_y":741.442321777344,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":166.273345947266,"pos_y":711.144836425781,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":184.758895874023,"pos_y":676.577758789062,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":196.146926879883,"pos_y":639.068908691406,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":199.999984741211,"pos_y":600.059265136719,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":196.170059204102,"pos_y":561.047302246094,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":184.804244995117,"pos_y":523.53173828125,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":166.33918762207,"pos_y":488.953735351562,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":141.48420715332,"pos_y":458.641510009766,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":111.194107055664,"pos_y":433.759613037109,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":76.6324920654297,"pos_y":415.263793945312,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":39.1270446777344,"pos_y":403.864654541016,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":0.118530713021755,"pos_y":400.000030517578,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-38.8945388793945,"pos_y":403.818420410156,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-76.4134674072266,"pos_y":415.173095703125,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-110.99698638916,"pos_y":433.6279296875,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-141.316543579102,"pos_y":458.473937988281,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-166.207443237305,"pos_y":488.756622314453,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-184.713470458984,"pos_y":523.312744140625,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-196.123748779297,"pos_y":560.814819335938,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-199.999923706055,"pos_y":599.822204589844,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-196.193099975586,"pos_y":638.83642578125,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-184.849517822266,"pos_y":676.358703613281,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-166.404968261719,"pos_y":710.947692871094,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-141.567962646484,"pos_y":741.274597167969,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-111.292610168457,"pos_y":766.174438476562,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-76.7419662475586,"pos_y":784.690734863281,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-39.243278503418,"pos_y":796.112121582031,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":50,"pos_x":-0.23706138134003,"pos_y":799.999877929688,"r":0}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":639.010803222656,"pos_y":796.158508300781,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":676.523010253906,"pos_y":784.781555175781,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":711.095581054688,"pos_y":766.306274414062,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":741.400390625,"pos_y":741.442321777344,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":766.273315429688,"pos_y":711.144836425781,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":784.758911132812,"pos_y":676.577758789062,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":796.146911621094,"pos_y":639.068908691406,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":800,"pos_y":600.059265136719,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":796.170043945312,"pos_y":561.047302246094,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":784.804260253906,"pos_y":523.53173828125,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":766.339172363281,"pos_y":488.953735351562,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":741.484191894531,"pos_y":458.641510009766,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":711.194091796875,"pos_y":433.759613037109,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":676.632507324219,"pos_y":415.263793945312,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":639.127075195312,"pos_y":403.864654541016,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":600.118530273438,"pos_y":400.000030517578,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":561.10546875,"pos_y":403.818420410156,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":523.586547851562,"pos_y":415.173095703125,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":489.003021240234,"pos_y":433.6279296875,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":458.683471679688,"pos_y":458.473937988281,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":433.792541503906,"pos_y":488.756622314453,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":415.286529541016,"pos_y":523.312744140625,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":403.876251220703,"pos_y":560.814819335938,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":400.000061035156,"pos_y":599.822204589844,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":403.806884765625,"pos_y":638.83642578125,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":415.150482177734,"pos_y":676.358703613281,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":433.595031738281,"pos_y":710.947692871094,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":458.432037353516,"pos_y":741.274597167969,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":488.707397460938,"pos_y":766.174438476562,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":523.258056640625,"pos_y":784.690734863281,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":560.756713867188,"pos_y":796.112121582031,"r":50}
|
||||
{"b":50,"filename":"res://pool.tscn","g":0,"pos_x":599.762939453125,"pos_y":799.999877929688,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1239.0107421875,"pos_y":796.158508300781,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1276.52294921875,"pos_y":784.781555175781,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1311.09558105469,"pos_y":766.306274414062,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1341.400390625,"pos_y":741.442321777344,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1366.27331542969,"pos_y":711.144836425781,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1384.75891113281,"pos_y":676.577758789062,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1396.14697265625,"pos_y":639.068908691406,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1400,"pos_y":600.059265136719,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1396.17004394531,"pos_y":561.047302246094,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1384.80419921875,"pos_y":523.53173828125,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1366.33923339844,"pos_y":488.953735351562,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1341.48425292969,"pos_y":458.641510009766,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1311.19409179688,"pos_y":433.759613037109,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1276.63244628906,"pos_y":415.263793945312,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1239.12707519531,"pos_y":403.864654541016,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1200.11853027344,"pos_y":400.000030517578,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1161.10546875,"pos_y":403.818420410156,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1123.58654785156,"pos_y":415.173095703125,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1089.00305175781,"pos_y":433.6279296875,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1058.68347167969,"pos_y":458.473937988281,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1033.79260253906,"pos_y":488.756622314453,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1015.28649902344,"pos_y":523.312744140625,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1003.87622070312,"pos_y":560.814819335938,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1000.00006103516,"pos_y":599.822204589844,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1003.80688476562,"pos_y":638.83642578125,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1015.15051269531,"pos_y":676.358703613281,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1033.59497070312,"pos_y":710.947692871094,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1058.43200683594,"pos_y":741.274597167969,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1088.70739746094,"pos_y":766.174438476562,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1123.25805664062,"pos_y":784.690734863281,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1160.75671386719,"pos_y":796.112121582031,"r":50}
|
||||
{"b":0,"filename":"res://pool.tscn","g":50,"pos_x":1199.76293945312,"pos_y":799.999877929688,"r":50}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":725.557373046875,"pos_y":2196.05493164062,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":850.619445800781,"pos_y":2184.2353515625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":974.692749023438,"pos_y":2164.587890625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1097.28796386719,"pos_y":2137.18994140625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1217.92114257812,"pos_y":2102.14965820312,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1336.11682128906,"pos_y":2059.60546875,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1451.40844726562,"pos_y":2009.72485351562,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1563.34118652344,"pos_y":1952.70471191406,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1671.47351074219,"pos_y":1888.77014160156,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1775.37866210938,"pos_y":1818.17333984375,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1874.64697265625,"pos_y":1741.19262695312,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1968.88684082031,"pos_y":1658.13208007812,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2057.72607421875,"pos_y":1569.31884765625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2140.81494140625,"pos_y":1475.10363769531,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2217.82495117188,"pos_y":1375.85815429688,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2288.45263671875,"pos_y":1271.97375488281,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2352.41918945312,"pos_y":1163.86059570312,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2409.47216796875,"pos_y":1051.94470214844,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2459.38720703125,"pos_y":936.667846679688,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2501.96630859375,"pos_y":818.484924316406,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2537.04248046875,"pos_y":697.861938476562,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2564.4765625,"pos_y":575.27490234375,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2584.1611328125,"pos_y":451.207397460938,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2596.017578125,"pos_y":326.148864746094,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2600,"pos_y":200.592651367188,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2596.09204101562,"pos_y":75.0341110229492,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2584.3095703125,"pos_y":-50.0314483642578,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2564.69873046875,"pos_y":-174.110565185547,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2537.33715820312,"pos_y":-296.7138671875,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2502.33251953125,"pos_y":-417.357543945312,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2459.8232421875,"pos_y":-535.565795898438,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2409.97705078125,"pos_y":-650.8720703125,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2352.990234375,"pos_y":-762.821716308594,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2289.08764648438,"pos_y":-870.972900390625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2218.521484375,"pos_y":-974.899047851562,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2141.5703125,"pos_y":-1074.19030761719,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":2058.53759765625,"pos_y":-1168.45471191406,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1969.75073242188,"pos_y":-1257.32043457031,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1875.56030273438,"pos_y":-1340.43701171875,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1776.33752441406,"pos_y":-1417.47644042969,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1672.47412109375,"pos_y":-1488.13488769531,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1564.37963867188,"pos_y":-1552.13354492188,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1452.48083496094,"pos_y":-1609.21984863281,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1337.21887207031,"pos_y":-1659.16882324219,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1219.04846191406,"pos_y":-1701.78308105469,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":1098.43591308594,"pos_y":-1736.89489746094,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":975.857055664062,"pos_y":-1764.36535644531,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":851.795349121094,"pos_y":-1784.08654785156,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":726.740295410156,"pos_y":-1795.98010253906,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":601.185302734375,"pos_y":-1799.99963378906,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":475.625610351562,"pos_y":-1796.12902832031,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":350.556579589844,"pos_y":-1784.38354492188,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":226.471618652344,"pos_y":-1764.8095703125,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":103.860229492188,"pos_y":-1737.48425292969,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-16.7938232421875,"pos_y":-1702.51550292969,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-135.014587402344,"pos_y":-1660.04125976562,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-250.335693359375,"pos_y":-1610.22900390625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-362.302185058594,"pos_y":-1553.275390625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-470.472412109375,"pos_y":-1489.40478515625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-574.419555664062,"pos_y":-1418.86962890625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-673.7333984375,"pos_y":-1341.94787597656,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-768.0224609375,"pos_y":-1258.94299316406,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-856.91455078125,"pos_y":-1170.18249511719,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-940.058959960938,"pos_y":-1076.0166015625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1017.12780761719,"pos_y":-976.816772460938,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1087.81701660156,"pos_y":-872.974365234375,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1151.84765625,"pos_y":-764.898864746094,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1208.96716308594,"pos_y":-653.016906738281,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1258.95031738281,"pos_y":-537.769714355469,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1301.59948730469,"pos_y":-419.611999511719,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1336.7470703125,"pos_y":-299.009857177734,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1364.25390625,"pos_y":-176.439086914062,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1384.01171875,"pos_y":-52.3832550048828,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1395.94262695312,"pos_y":72.6682205200195,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1399.99914550781,"pos_y":198.222045898438,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1396.16577148438,"pos_y":323.782867431641,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1384.45739746094,"pos_y":448.855377197266,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1364.92016601562,"pos_y":572.946166992188,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1337.63122558594,"pos_y":695.565612792969,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1302.6982421875,"pos_y":816.22998046875,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1260.25891113281,"pos_y":934.46337890625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1210.48095703125,"pos_y":1049.79931640625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1153.56042480469,"pos_y":1161.78271484375,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1089.72204589844,"pos_y":1269.9716796875,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-1019.21752929688,"pos_y":1373.93969726562,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-942.325317382812,"pos_y":1473.27648925781,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-859.348266601562,"pos_y":1567.59008789062,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-770.614135742188,"pos_y":1656.50842285156,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-676.472900390625,"pos_y":1739.6806640625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-577.2958984375,"pos_y":1816.77893066406,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-473.474365234375,"pos_y":1887.49890136719,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-365.41796875,"pos_y":1951.56164550781,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-253.552917480469,"pos_y":2008.71423339844,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-138.320556640625,"pos_y":2058.7314453125,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":-20.1754760742188,"pos_y":2101.416015625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":100.416259765625,"pos_y":2136.59912109375,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":222.978851318359,"pos_y":2164.14233398438,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":347.02880859375,"pos_y":2183.93701171875,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":472.076782226562,"pos_y":2195.90478515625,"r":1000}
|
||||
{"b":1000,"filename":"res://pool.tscn","g":1000,"pos_x":597.62939453125,"pos_y":2199.99853515625,"r":1000}
|
83
sim.gd
83
sim.gd
@@ -1,83 +0,0 @@
|
||||
extends Node2D
|
||||
|
||||
var spawn_position=Vector2(100,100);
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
setup_edge_collisions()
|
||||
|
||||
func setup_edge_collisions():
|
||||
var screen_size = get_viewport_rect().size
|
||||
|
||||
# Create a StaticBody2D for each edge
|
||||
for i in range(4):
|
||||
var body = StaticBody2D.new()
|
||||
body.collision_layer=4 #walls
|
||||
add_child(body)
|
||||
|
||||
var shape = CollisionShape2D.new()
|
||||
body.add_child(shape)
|
||||
|
||||
var rect_shape = RectangleShape2D.new()
|
||||
shape.shape = rect_shape
|
||||
|
||||
# Adjust size and position based on the edge
|
||||
match i:
|
||||
0: # Top
|
||||
rect_shape.extents = Vector2(screen_size.x / 2, 10)
|
||||
body.position = Vector2(screen_size.x / 2, 0)
|
||||
1: # Bottom
|
||||
rect_shape.extents = Vector2(screen_size.x / 2, 10)
|
||||
body.position = Vector2(screen_size.x / 2, screen_size.y)
|
||||
2: # Left
|
||||
rect_shape.extents = Vector2(10, screen_size.y / 2)
|
||||
body.position = Vector2(0, screen_size.y / 2)
|
||||
3: # Right
|
||||
rect_shape.extents = Vector2(10, screen_size.y / 2)
|
||||
body.position = Vector2(screen_size.x, screen_size.y / 2)
|
||||
|
||||
func _input(event):
|
||||
if event.is_action_pressed("escape"):
|
||||
get_tree().change_scene_to_file("res://map_select.tscn")
|
||||
get_node("/root/Sim").queue_free()
|
||||
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
|
||||
spawn_position=event.position
|
||||
spawn()
|
||||
$Timer.stop()
|
||||
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_RIGHT:
|
||||
spawn_position=event.position
|
||||
$Timer.start()
|
||||
|
||||
func _on_timer_timeout():
|
||||
spawn()
|
||||
|
||||
func spawn():
|
||||
var new_player = load("res://player.tscn").instantiate()
|
||||
new_player.get_node("Body2D").position = spawn_position
|
||||
|
||||
new_player.get_node("Body2D").apply_impulse(Vector2.from_angle(randf_range(0, 2 * PI)) * 100)
|
||||
|
||||
# Prepare the shape query parameters
|
||||
var query_parameters = PhysicsShapeQueryParameters2D.new()
|
||||
var collision_shape = new_player.get_node("Body2D/CollisionShape2D").shape
|
||||
query_parameters.set_shape(collision_shape)
|
||||
query_parameters.set_transform(Transform2D(0, spawn_position))
|
||||
query_parameters.set_collision_mask(1)
|
||||
|
||||
# Get the Physics2DDirectSpaceState for collision checking
|
||||
var space_state = get_world_2d().direct_space_state
|
||||
|
||||
# Check for collision
|
||||
var collision_results = space_state.intersect_shape(query_parameters)
|
||||
if collision_results.size() == 0:
|
||||
# No collision, safe to add child
|
||||
add_child(new_player)
|
||||
else:
|
||||
for collision in collision_results:
|
||||
#print
|
||||
if collision.collider.get_parent() is Pool:
|
||||
collision.collider.get_parent()._on_decay_timer_timeout()
|
||||
return
|
||||
var marker = load("res://crosshair.tscn").instantiate()
|
||||
marker.position = new_player.get_node("Body2D").position
|
||||
add_child(marker)
|
110
sim.tscn
110
sim.tscn
@@ -1,25 +1,107 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bpy475nyq5ea1"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bpy475nyq5ea1"]
|
||||
|
||||
[ext_resource type="Script" path="res://sim.gd" id="1_wbm7g"]
|
||||
[ext_resource type="Script" path="res://Debug.gd" id="2_iqnjl"]
|
||||
[ext_resource type="Script" path="res://TimerSS.gd" id="3_7b3mn"]
|
||||
[ext_resource type="Script" path="res://Map.gd" id="2_rolej"]
|
||||
[ext_resource type="Script" path="res://ScreenShots.gd" id="3_7b3mn"]
|
||||
[ext_resource type="Script" path="res://Camera2D.gd" id="4_g4kw0"]
|
||||
[ext_resource type="Script" path="res://HUD.gd" id="5_pfkj4"]
|
||||
[ext_resource type="Script" path="res://LoadDialog.gd" id="6_0mayr"]
|
||||
[ext_resource type="Script" path="res://SaveDialog.gd" id="6_v2wl8"]
|
||||
|
||||
[node name="Sim" type="Node2D"]
|
||||
script = ExtResource("1_wbm7g")
|
||||
|
||||
[node name="Debug" type="Label" parent="."]
|
||||
offset_right = 67.0
|
||||
offset_bottom = 26.0
|
||||
[node name="Map" type="Node2D" parent="."]
|
||||
script = ExtResource("2_rolej")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="Map"]
|
||||
script = ExtResource("4_g4kw0")
|
||||
|
||||
[node name="ScreenOverlay" type="CanvasLayer" parent="."]
|
||||
|
||||
[node name="HUD" type="PanelContainer" parent="ScreenOverlay"]
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
grow_horizontal = 2
|
||||
script = ExtResource("5_pfkj4")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="ScreenOverlay/HUD"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="ScreenOverlay/HUD/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 2
|
||||
|
||||
[node name="Debug" type="Label" parent="ScreenOverlay/HUD/HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "debug"
|
||||
script = ExtResource("2_iqnjl")
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
wait_time = 0.3
|
||||
[node name="Colors" type="HBoxContainer" parent="ScreenOverlay/HUD/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TimerSS" type="Timer" parent="."]
|
||||
[node name="Red" type="LineEdit" parent="ScreenOverlay/HUD/HBoxContainer/Colors"]
|
||||
layout_mode = 2
|
||||
placeholder_text = "Red"
|
||||
max_length = 5
|
||||
|
||||
[node name="Green" type="LineEdit" parent="ScreenOverlay/HUD/HBoxContainer/Colors"]
|
||||
layout_mode = 2
|
||||
placeholder_text = "Green"
|
||||
max_length = 5
|
||||
|
||||
[node name="Blue" type="LineEdit" parent="ScreenOverlay/HUD/HBoxContainer/Colors"]
|
||||
layout_mode = 2
|
||||
placeholder_text = "Blue"
|
||||
max_length = 5
|
||||
|
||||
[node name="HBoxContainer3" type="HBoxContainer" parent="ScreenOverlay/HUD/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 10
|
||||
|
||||
[node name="Load" type="Button" parent="ScreenOverlay/HUD/HBoxContainer/HBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "Load..."
|
||||
|
||||
[node name="Save" type="Button" parent="ScreenOverlay/HUD/HBoxContainer/HBoxContainer3"]
|
||||
layout_mode = 2
|
||||
text = "Save..."
|
||||
|
||||
[node name="LoadDialog" type="ConfirmationDialog" parent="ScreenOverlay"]
|
||||
title = "Load"
|
||||
position = Vector2i(0, 36)
|
||||
size = Vector2i(200, 500)
|
||||
script = ExtResource("6_0mayr")
|
||||
|
||||
[node name="ItemList" type="ItemList" parent="ScreenOverlay/LoadDialog"]
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = 192.0
|
||||
offset_bottom = 451.0
|
||||
|
||||
[node name="SaveDialog" type="ConfirmationDialog" parent="ScreenOverlay"]
|
||||
mode = 1
|
||||
title = "Save"
|
||||
initial_position = 4
|
||||
ok_button_text = "Save"
|
||||
script = ExtResource("6_v2wl8")
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="ScreenOverlay/SaveDialog"]
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = 192.0
|
||||
offset_bottom = 51.0
|
||||
placeholder_text = "Filename"
|
||||
|
||||
[node name="NewDialog" type="ConfirmationDialog" parent="ScreenOverlay"]
|
||||
|
||||
[node name="ScreenShots" type="Timer" parent="."]
|
||||
wait_time = 60.0
|
||||
autostart = true
|
||||
script = ExtResource("3_7b3mn")
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
||||
[connection signal="timeout" from="TimerSS" to="TimerSS" method="_on_timeout"]
|
||||
[connection signal="pressed" from="ScreenOverlay/HUD/HBoxContainer/HBoxContainer3/Load" to="ScreenOverlay/HUD" method="_on_load_pressed"]
|
||||
[connection signal="pressed" from="ScreenOverlay/HUD/HBoxContainer/HBoxContainer3/Save" to="ScreenOverlay/HUD" method="_on_save_pressed"]
|
||||
[connection signal="about_to_popup" from="ScreenOverlay/LoadDialog" to="ScreenOverlay/LoadDialog" method="_on_about_to_popup"]
|
||||
[connection signal="confirmed" from="ScreenOverlay/LoadDialog" to="ScreenOverlay/LoadDialog" method="_on_confirmed"]
|
||||
[connection signal="about_to_popup" from="ScreenOverlay/SaveDialog" to="ScreenOverlay/SaveDialog" method="_on_about_to_popup"]
|
||||
[connection signal="confirmed" from="ScreenOverlay/SaveDialog" to="ScreenOverlay/SaveDialog" method="_on_confirmed"]
|
||||
[connection signal="confirmed" from="ScreenOverlay/NewDialog" to="Map" method="_on_new_dialog_confirmed"]
|
||||
[connection signal="timeout" from="ScreenShots" to="ScreenShots" method="_on_timeout"]
|
||||
|
Reference in New Issue
Block a user