Dev pour la beta 1.4
* Changements de la texture des cristaux de Talion dans tous les assets 3D pour correspondre aux assets 2D * Ajout d'un évenement en fin de région, une résurgence de Talion qui décontamine et fait looter les plantes mature aux alentours * Ajout d'un path finding sur le mouvement du robot * Modification du flow des actions à la souris : ajout d'un nouveau son, d'un icône à l'emplacement de l'action * Modification du nombre et de l'ordre de mutation débloquées * Augmentation de la valeur maximale de zoom * Modification des scores à atteindre dans les premières régions * Modification de l'interface du vaisseau, laissant apparaitre une roadmap plus claire, et laissant inspecter l'inventaire actuel * Modification de l'icône d'action dans les scènes 3D * Augmentation de la zone d'écart entre les plantes, et augmentation du taux de zone fertile en conséquence * La station de recharge devient inutilisable après la fin de la région * Ajout d'une transparence lors de la sélection d'objets derrières d'autres objets * Les plantes juvéniles donneront toujours une graine si coupées * Ajout d'un bouclage sur les couleurs des mutations * Fix des hitbox des plantes pour l'inspection à la souris * Fix de plusieurs bugs sur la manipulation de l'inventaire * Ajout de nombreux screenshots d'utilisation des outils lors du tutoriel * Amélioration mineure de la traduction/wording
This commit is contained in:
@@ -12,16 +12,18 @@ static func get_tile_from_pos(coord) -> Vector2i:
|
||||
floori(coord.y / (Region.TILE_SIZE)),
|
||||
)
|
||||
|
||||
static func get_tiles_in_circle(center: Vector2, radius : float) -> Array[Vector2i]:
|
||||
static func get_tiles_in_circle(center: Vector2,radius : float) -> Array[Vector2i]:
|
||||
var tiles : Array[Vector2i] = []
|
||||
|
||||
var margin = ceili(radius * 0.5)
|
||||
|
||||
for x in range(
|
||||
floori((center.x - radius/2.) / Region.TILE_SIZE),
|
||||
ceili((center.x + radius/2.) / Region.TILE_SIZE),
|
||||
floori((center.x - radius/2.) / Region.TILE_SIZE) - margin,
|
||||
ceili((center.x + radius/2.) / Region.TILE_SIZE) + margin,
|
||||
):
|
||||
for y in range(
|
||||
floori((center.y - radius/2.) / Region.TILE_SIZE),
|
||||
ceili((center.y + radius/2.) / Region.TILE_SIZE),
|
||||
floori((center.y - radius/2.) / Region.TILE_SIZE) - margin,
|
||||
ceili((center.y + radius/2.) / Region.TILE_SIZE) + margin,
|
||||
):
|
||||
if is_tile_on_circle(Vector2i(x,y), center, radius):
|
||||
tiles.append(Vector2i(x,y))
|
||||
@@ -30,24 +32,29 @@ static func get_tiles_in_circle(center: Vector2, radius : float) -> Array[Vector
|
||||
static func is_tile_on_circle(tile_coord : Vector2i, circle_center: Vector2, circle_radius : float) -> bool:
|
||||
var absolute_tile_pos : Vector2 = tile_coord * Region.TILE_SIZE
|
||||
|
||||
# Loop over tile corners to know if the area collide
|
||||
var corners : Array[Vector2] = []
|
||||
for x in [0,1]:
|
||||
for y in [0,1]:
|
||||
corners.append(
|
||||
absolute_tile_pos
|
||||
+ Vector2.RIGHT * x * Region.TILE_SIZE
|
||||
+ Vector2.DOWN * y * Region.TILE_SIZE
|
||||
)
|
||||
|
||||
# Check if segment touch area
|
||||
for i in range(4):
|
||||
var a = corners[i%4]
|
||||
var b = corners[(i+1)%4]
|
||||
if segment_intersect_circle(a,b,circle_center,circle_radius):
|
||||
return true
|
||||
var tile_center = absolute_tile_pos + Vector2.ONE * Region.TILE_SIZE / 2
|
||||
var tile_radius = roundf(Region.TILE_SIZE/2.)
|
||||
|
||||
return false
|
||||
return pow(tile_center.x - circle_center.x, 2) + pow(tile_center.y - circle_center.y, 2) <= pow(tile_radius + circle_radius, 2)
|
||||
|
||||
# Loop over tile corners to know if the area collide
|
||||
# var corners : Array[Vector2] = []
|
||||
# for x in [0,1]:
|
||||
# for y in [0,1]:
|
||||
# corners.append(
|
||||
# absolute_tile_pos
|
||||
# + Vector2.RIGHT * x * Region.TILE_SIZE
|
||||
# + Vector2.DOWN * y * Region.TILE_SIZE
|
||||
# )
|
||||
|
||||
# # Check if segment touch area
|
||||
# for i in range(4):
|
||||
# var a = corners[i%4]
|
||||
# var b = corners[(i+1)%4]
|
||||
# if segment_intersect_circle(a,b,circle_center,circle_radius):
|
||||
# return true
|
||||
|
||||
# return false
|
||||
|
||||
|
||||
# Stolen here https://stackoverflow.com/questions/1073336/circle-line-segment-collision-detection-algorithm
|
||||
|
||||
3
common/tools/scripts/test_tiles.gd
Normal file
3
common/tools/scripts/test_tiles.gd
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
|
||||
1
common/tools/scripts/test_tiles.gd.uid
Normal file
1
common/tools/scripts/test_tiles.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bebwor5r5nnov
|
||||
Reference in New Issue
Block a user