Skip to content

Releases: FormularSumo/FormularBot

8/4/20

16 Apr 10:54

Choose a tag to compare

c0b0c2c

Fixed bug with code that works out which ally's closest to the ball

Changed distance where bot will get boost to 6000, which it should have been

If going back to goal bot will attempt to turn around after passing the goal line (sometimes by half flipping)

Removed the height limit on aerials

Made bot do wavedash_recovery instead of normal recovery in one place in jump_shot

7/4/20

16 Apr 10:53

Choose a tag to compare

1d2895b

Edited bot description a bit - image

Changes some colours

Added distance_to_ball and distance_to_friendly_goal variables

Works out closest ally to friendly goal

If closest ally to goal bot goes back to goal and waits there until not closest or ball is closer than 6000

Stopped bot circling in goal by stopping movement when doing go_to_friendly_goal and abs y location > 5000 (roughly goal line)

5/4/20

16 Apr 10:53

Choose a tag to compare

5f0dfae

Changed colours

Added separate kickoff for off_centre so bot no longer misses centre boost when doing an off_centre kickoff

4/4/20

16 Apr 10:52

Choose a tag to compare

a6dc6c0

Created logo and added it to bot

Works out ally closest to ball (not used for anything yet)

image

Only goes for kickoff if closest or joint closest to ball

Only shoots if onside

Pushes short_shot if can't jump_shot or aerial_shot

If have > 20 boost and ball > 6000 demo_enemy_closest_ball

if ball is over 6000 and not shooting goto_friendly_goal

3/4/20

16 Apr 10:51

Choose a tag to compare

a2dd1f7

Added based on GoslingUtils to description

Added variables to FormularBot.py
my_goal_to_ball,my_ball_distance = (agent.ball.location - agent.friend_goal.location).normalize(True)
goal_to_me = agent.me.location - agent.friend_goal.location
my_distance = my_goal_to_ball.dot(goal_to_me)
me_onside = my_distance + 80 < my_ball_distance
relative_target = agent.ball.location - agent.friend_goal.location
distance_ball_friendly_goal = relative_target.flatten().magnitude()
left_field = Vector3(4200*-side(agent.team),agent.ball.location.y + 1000*-side(agent.team),0)
right_field = Vector3(4200side(agent.team),agent.ball.location.y + 1000-side(agent.team),0)

Targets has two sublists, goal and upfield (left_field,right_field)

When shooting bot will hit upfield if it can't hit into goal

2/4/20

16 Apr 10:48

Choose a tag to compare

Goes for kickoff when agent.kickoff_flag, rather than shooting

Added these variables which are defined everytime FormularBot is run

close = (agent.me.location - agent.ball.location).magnitude() < 2000
have_boost = agent.me.boost > 20
relative_target = agent.ball.location - agent.friend_goal.location
distance_ball_friendly_goal = relative_target.flatten().magnitude()

Only goes for boost if distance_ball_friendly_goal > 6000 and not close

Only debugs stack if if agent.index == 0:

1/4/20

16 Apr 10:42

Choose a tag to compare

Created bot from GoslingUtils

Changes from example bot:

Changed config file to say FormularBot etc

Changed appearance

Added decision making code in FormularBot.py

    agent.debug_stack()
    targets = {"goal" : (agent.foe_goal.left_post,agent.foe_goal.right_post)}
    shots = find_hits(agent,targets)
    if len(agent.stack) < 1:
        if len(shots["goal"]) > 0:
            agent.push(shots["goal"][0])
        else:    
            if agent.me.boost < 30:
                agent.push(get_nearest_big_boost)

            else:
                agent.push(short_shot(agent.foe_goal.location))

Added routines:
ball_chase
goto_friendly_goal
get_nearest_big_boost
get_nearest_small_boost
wavedash_recovery
demo_enemy_closest_ball
half_flip

Changed some routines to use wavedash_recovery instead of normal recovery and to use half_flip