From dd3c7c814b70bd952ca6af3df40d143004e0e732 Mon Sep 17 00:00:00 2001 From: Vasilis Valatsos Date: Thu, 13 Jun 2024 18:44:02 +0200 Subject: [PATCH] Update GODOT part --- addons/Todo_Manager/CONTRIBUTING.md | 0 addons/Todo_Manager/ColourPicker.gd | 0 addons/Todo_Manager/Current.gd | 0 addons/Todo_Manager/Dock.gd | 0 addons/Todo_Manager/Pattern.gd | 0 addons/Todo_Manager/Project.gd | 0 addons/Todo_Manager/README.md | 0 addons/Todo_Manager/READMECN.md | 0 addons/Todo_Manager/UI/ColourPicker.tscn | 0 addons/Todo_Manager/UI/Dock.tscn | 0 addons/Todo_Manager/UI/Pattern.tscn | 0 addons/Todo_Manager/doc/example.gd | 0 addons/Todo_Manager/doc/images/Instruct1.png | Bin addons/Todo_Manager/doc/images/Instruct2.png | Bin addons/Todo_Manager/doc/images/Instruct3.png | Bin addons/Todo_Manager/doc/images/Instruct4.png | Bin addons/Todo_Manager/doc/images/Instruct5.png | Bin .../doc/images/TODO_Manager_Logo.png | Bin .../Todo_Manager/doc/images/TodoExternal.gif | Bin addons/Todo_Manager/doc/images/example1.png | Bin addons/Todo_Manager/doc/images/example2.png | Bin addons/Todo_Manager/plugin.cfg | 0 addons/Todo_Manager/plugin.gd | 0 addons/Todo_Manager/todoItem_class.gd | 0 addons/Todo_Manager/todo_class.gd | 0 .../controller/ai_controller_2d.gd | 68 +- .../controller/ai_controller_3d.gd | 0 addons/godot_rl_agents/godot_rl_agents.gd | 0 addons/godot_rl_agents/icon.png | Bin .../onnx/csharp/ONNXInference.cs | 0 .../onnx/csharp/SessionConfigurator.cs | 0 .../onnx/csharp/docs/ONNXInference.xml | 0 .../onnx/csharp/docs/SessionConfigurator.xml | 0 .../onnx/wrapper/ONNX_wrapper.gd | 0 addons/godot_rl_agents/plugin.cfg | 0 .../sensors_2d/ExampleRaycastSensor2D.tscn | 0 .../sensors/sensors_2d/GridSensor2D.gd | 0 .../sensors/sensors_2d/ISensor2D.gd | 0 .../sensors/sensors_2d/RaycastSensor2D.gd | 0 .../sensors/sensors_2d/RaycastSensor2D.tscn | 0 .../sensors_3d/ExampleRaycastSensor3D.tscn | 0 .../sensors/sensors_3d/GridSensor3D.gd | 0 .../sensors/sensors_3d/ISensor3D.gd | 0 .../sensors/sensors_3d/RGBCameraSensor3D.gd | 0 .../sensors/sensors_3d/RGBCameraSensor3D.tscn | 0 .../sensors/sensors_3d/RaycastSensor3D.gd | 0 .../sensors/sensors_3d/RaycastSensor3D.tscn | 0 addons/godot_rl_agents/sync.gd | 736 +++++++++--------- assets/audio/Fire.wav | Bin assets/audio/attack/claw.wav | Bin assets/audio/attack/fireball.wav | Bin assets/audio/attack/slash.wav | Bin assets/audio/death.wav | Bin assets/audio/heal.wav | Bin assets/audio/hit.wav | Bin assets/audio/main.ogg | Bin assets/audio/sword.wav | Bin assets/graphics/font/joystix.ttf | Bin assets/graphics/grass/grass_1.png | Bin assets/graphics/grass/grass_2.png | Bin assets/graphics/grass/grass_3.png | Bin assets/graphics/monsters/bamboo/attack/0.png | Bin assets/graphics/monsters/bamboo/idle/0.png | Bin assets/graphics/monsters/bamboo/idle/1.png | Bin assets/graphics/monsters/bamboo/idle/2.png | Bin assets/graphics/monsters/bamboo/idle/3.png | Bin assets/graphics/monsters/bamboo/move/0.png | Bin assets/graphics/monsters/bamboo/move/1.png | Bin assets/graphics/monsters/bamboo/move/2.png | Bin assets/graphics/monsters/bamboo/move/3.png | Bin assets/graphics/monsters/raccoon/attack/0.png | Bin assets/graphics/monsters/raccoon/attack/1.png | Bin assets/graphics/monsters/raccoon/attack/2.png | Bin assets/graphics/monsters/raccoon/attack/3.png | Bin assets/graphics/monsters/raccoon/idle/0.png | Bin assets/graphics/monsters/raccoon/idle/1.png | Bin assets/graphics/monsters/raccoon/idle/2.png | Bin assets/graphics/monsters/raccoon/idle/3.png | Bin assets/graphics/monsters/raccoon/idle/4.png | Bin assets/graphics/monsters/raccoon/idle/5.png | Bin assets/graphics/monsters/raccoon/move/0.png | Bin assets/graphics/monsters/raccoon/move/1.png | Bin assets/graphics/monsters/raccoon/move/2.png | Bin assets/graphics/monsters/raccoon/move/3.png | Bin assets/graphics/monsters/raccoon/move/4.png | Bin assets/graphics/monsters/spirit/attack/0.png | Bin assets/graphics/monsters/spirit/idle/0.png | Bin assets/graphics/monsters/spirit/idle/1.png | Bin assets/graphics/monsters/spirit/idle/2.png | Bin assets/graphics/monsters/spirit/idle/3.png | Bin assets/graphics/monsters/spirit/move/0.png | Bin assets/graphics/monsters/spirit/move/1.png | Bin assets/graphics/monsters/spirit/move/2.png | Bin assets/graphics/monsters/spirit/move/3.png | Bin .../monsters/squid/attack/0 - Copy (2).png | Bin .../monsters/squid/attack/0 - Copy (3).png | Bin .../monsters/squid/attack/0 - Copy.png | Bin assets/graphics/monsters/squid/attack/0.png | Bin assets/graphics/monsters/squid/idle/0.png | Bin assets/graphics/monsters/squid/idle/1.png | Bin assets/graphics/monsters/squid/idle/2.png | Bin assets/graphics/monsters/squid/idle/3.png | Bin assets/graphics/monsters/squid/idle/4.png | Bin assets/graphics/monsters/squid/move/0.png | Bin assets/graphics/monsters/squid/move/1.png | Bin assets/graphics/monsters/squid/move/2.png | Bin assets/graphics/monsters/squid/move/3.png | Bin assets/graphics/objects/0.png | Bin assets/graphics/objects/01.png | Bin assets/graphics/objects/02.png | Bin assets/graphics/objects/03.png | Bin assets/graphics/objects/04.png | Bin assets/graphics/objects/05.png | Bin assets/graphics/objects/06.png | Bin assets/graphics/objects/07.png | Bin assets/graphics/objects/08.png | Bin assets/graphics/objects/09.png | Bin assets/graphics/objects/10.png | Bin assets/graphics/objects/11.png | Bin assets/graphics/objects/12.png | Bin assets/graphics/objects/13.png | Bin assets/graphics/objects/14.png | Bin assets/graphics/objects/15.png | Bin assets/graphics/objects/16.png | Bin assets/graphics/objects/17.png | Bin assets/graphics/objects/18.png | Bin assets/graphics/objects/19.png | Bin assets/graphics/objects/20.png | Bin assets/graphics/particles/aura/0.png | Bin assets/graphics/particles/aura/1.png | Bin assets/graphics/particles/aura/2.png | Bin assets/graphics/particles/aura/3.png | Bin assets/graphics/particles/bamboo/0.png | Bin assets/graphics/particles/bamboo/1.png | Bin assets/graphics/particles/claw/0.png | Bin assets/graphics/particles/claw/1.png | Bin assets/graphics/particles/claw/2.png | Bin assets/graphics/particles/claw/3.png | Bin assets/graphics/particles/flame/fire.png | Bin assets/graphics/particles/flame/frames/0.png | Bin assets/graphics/particles/flame/frames/01.png | Bin assets/graphics/particles/flame/frames/02.png | Bin assets/graphics/particles/flame/frames/03.png | Bin assets/graphics/particles/flame/frames/04.png | Bin assets/graphics/particles/flame/frames/05.png | Bin assets/graphics/particles/flame/frames/06.png | Bin assets/graphics/particles/flame/frames/07.png | Bin assets/graphics/particles/flame/frames/08.png | Bin assets/graphics/particles/flame/frames/09.png | Bin assets/graphics/particles/flame/frames/10.png | Bin assets/graphics/particles/flame/frames/11.png | Bin assets/graphics/particles/heal/frames/0.png | Bin assets/graphics/particles/heal/frames/1.png | Bin assets/graphics/particles/heal/frames/2.png | Bin assets/graphics/particles/heal/frames/3.png | Bin assets/graphics/particles/heal/frames/4.png | Bin assets/graphics/particles/heal/heal.png | Bin .../graphics/particles/leaf1/leaf1_00000.png | Bin .../graphics/particles/leaf1/leaf1_00001.png | Bin .../graphics/particles/leaf1/leaf1_00002.png | Bin .../graphics/particles/leaf1/leaf1_00003.png | Bin .../graphics/particles/leaf1/leaf1_00004.png | Bin .../graphics/particles/leaf1/leaf1_00005.png | Bin .../graphics/particles/leaf1/leaf1_00006.png | Bin .../graphics/particles/leaf1/leaf1_00007.png | Bin .../graphics/particles/leaf1/leaf1_00008.png | Bin .../graphics/particles/leaf1/leaf1_00009.png | Bin .../graphics/particles/leaf1/leaf1_00010.png | Bin .../graphics/particles/leaf1/leaf1_00011.png | Bin .../graphics/particles/leaf2/leaf1_00000.png | Bin .../graphics/particles/leaf2/leaf1_00001.png | Bin .../graphics/particles/leaf2/leaf1_00002.png | Bin .../graphics/particles/leaf2/leaf1_00003.png | Bin .../graphics/particles/leaf2/leaf1_00004.png | Bin .../graphics/particles/leaf2/leaf1_00005.png | Bin .../graphics/particles/leaf2/leaf1_00006.png | Bin .../graphics/particles/leaf2/leaf1_00007.png | Bin .../graphics/particles/leaf2/leaf1_00008.png | Bin .../graphics/particles/leaf2/leaf1_00009.png | Bin .../graphics/particles/leaf2/leaf1_00010.png | Bin .../graphics/particles/leaf2/leaf1_00011.png | Bin .../graphics/particles/leaf2/leaf1_00012.png | Bin .../graphics/particles/leaf3/leaf1_00000.png | Bin .../graphics/particles/leaf3/leaf1_00001.png | Bin .../graphics/particles/leaf3/leaf1_00002.png | Bin .../graphics/particles/leaf3/leaf1_00003.png | Bin .../graphics/particles/leaf3/leaf1_00004.png | Bin .../graphics/particles/leaf3/leaf1_00005.png | Bin .../graphics/particles/leaf3/leaf1_00006.png | Bin .../graphics/particles/leaf3/leaf1_00007.png | Bin .../graphics/particles/leaf3/leaf1_00008.png | Bin .../graphics/particles/leaf3/leaf1_00009.png | Bin .../graphics/particles/leaf4/leaf1_00000.png | Bin .../graphics/particles/leaf4/leaf1_00001.png | Bin .../graphics/particles/leaf4/leaf1_00002.png | Bin .../graphics/particles/leaf4/leaf1_00003.png | Bin .../graphics/particles/leaf4/leaf1_00004.png | Bin .../graphics/particles/leaf4/leaf1_00005.png | Bin .../graphics/particles/leaf4/leaf1_00006.png | Bin .../graphics/particles/leaf4/leaf1_00007.png | Bin .../graphics/particles/leaf4/leaf1_00008.png | Bin .../graphics/particles/leaf4/leaf1_00009.png | Bin .../graphics/particles/leaf4/leaf1_00010.png | Bin .../graphics/particles/leaf5/leaf1_00000.png | Bin .../graphics/particles/leaf5/leaf1_00001.png | Bin .../graphics/particles/leaf5/leaf1_00002.png | Bin .../graphics/particles/leaf5/leaf1_00003.png | Bin .../graphics/particles/leaf5/leaf1_00004.png | Bin .../graphics/particles/leaf5/leaf1_00005.png | Bin .../graphics/particles/leaf5/leaf1_00006.png | Bin .../graphics/particles/leaf5/leaf1_00007.png | Bin .../graphics/particles/leaf5/leaf1_00008.png | Bin .../graphics/particles/leaf5/leaf1_00009.png | Bin .../graphics/particles/leaf6/leaf1_00000.png | Bin .../graphics/particles/leaf6/leaf1_00001.png | Bin .../graphics/particles/leaf6/leaf1_00002.png | Bin .../graphics/particles/leaf6/leaf1_00003.png | Bin .../graphics/particles/leaf6/leaf1_00004.png | Bin .../graphics/particles/leaf6/leaf1_00005.png | Bin .../graphics/particles/leaf6/leaf1_00006.png | Bin .../graphics/particles/leaf6/leaf1_00007.png | Bin .../graphics/particles/leaf6/leaf1_00008.png | Bin .../graphics/particles/leaf6/leaf1_00009.png | Bin .../graphics/particles/leaf6/leaf1_00010.png | Bin .../graphics/particles/leaf6/leaf1_00011.png | Bin assets/graphics/particles/leaf_attack/0.png | Bin assets/graphics/particles/leaf_attack/1.png | Bin assets/graphics/particles/leaf_attack/2.png | Bin assets/graphics/particles/leaf_attack/3.png | Bin assets/graphics/particles/leaf_attack/4.png | Bin assets/graphics/particles/leaf_attack/5.png | Bin assets/graphics/particles/leaf_attack/6.png | Bin assets/graphics/particles/nova/0.png | Bin assets/graphics/particles/nova/1.png | Bin assets/graphics/particles/nova/2.png | Bin assets/graphics/particles/nova/3.png | Bin assets/graphics/particles/nova/4.png | Bin assets/graphics/particles/nova/5.png | Bin assets/graphics/particles/raccoon/0.png | Bin assets/graphics/particles/raccoon/1.png | Bin assets/graphics/particles/raccoon/2.png | Bin assets/graphics/particles/raccoon/3.png | Bin assets/graphics/particles/raccoon/4.png | Bin assets/graphics/particles/raccoon/5.png | Bin assets/graphics/particles/slash/0.png | Bin assets/graphics/particles/slash/1.png | Bin assets/graphics/particles/slash/2.png | Bin assets/graphics/particles/slash/3.png | Bin assets/graphics/particles/smoke/0.png | Bin assets/graphics/particles/smoke/1.png | Bin assets/graphics/particles/smoke/2.png | Bin assets/graphics/particles/smoke/3.png | Bin assets/graphics/particles/smoke/4.png | Bin assets/graphics/particles/smoke/5.png | Bin assets/graphics/particles/smoke2/0.png | Bin assets/graphics/particles/smoke2/1.png | Bin assets/graphics/particles/smoke2/2.png | Bin assets/graphics/particles/smoke2/3.png | Bin assets/graphics/particles/smoke2/4.png | Bin assets/graphics/particles/smoke2/5.png | Bin assets/graphics/particles/smoke_orange/0.png | Bin assets/graphics/particles/smoke_orange/1.png | Bin assets/graphics/particles/smoke_orange/2.png | Bin assets/graphics/particles/smoke_orange/3.png | Bin assets/graphics/particles/smoke_orange/4.png | Bin assets/graphics/particles/smoke_orange/5.png | Bin assets/graphics/particles/sparkle/0.png | Bin assets/graphics/particles/sparkle/1.png | Bin assets/graphics/particles/sparkle/2.png | Bin assets/graphics/particles/sparkle/3.png | Bin assets/graphics/particles/sparkle/4.png | Bin assets/graphics/particles/thunder/0.png | Bin assets/graphics/particles/thunder/1.png | Bin assets/graphics/particles/thunder/2.png | Bin assets/graphics/particles/thunder/3.png | Bin assets/graphics/particles/thunder/4.png | Bin assets/graphics/particles/thunder/5.png | Bin assets/graphics/particles/thunder/6.png | Bin assets/graphics/particles/thunder/7.png | Bin assets/graphics/player/down/down_0.png | Bin assets/graphics/player/down/down_1.png | Bin assets/graphics/player/down/down_2.png | Bin assets/graphics/player/down/down_3.png | Bin .../player/down_attack/attack_down.png | Bin .../graphics/player/down_idle/idle_down.png | Bin assets/graphics/player/left/left_0.png | Bin assets/graphics/player/left/left_1.png | Bin assets/graphics/player/left/left_2.png | Bin assets/graphics/player/left/left_3.png | Bin .../player/left_attack/attack_left.png | Bin .../graphics/player/left_idle/idle_left.png | Bin assets/graphics/player/right/right_0.png | Bin assets/graphics/player/right/right_1.png | Bin assets/graphics/player/right/right_2.png | Bin assets/graphics/player/right/right_3.png | Bin .../player/right_attack/attack_right.png | Bin .../graphics/player/right_idle/idle_right.png | Bin assets/graphics/player/up/up_0.png | Bin assets/graphics/player/up/up_1.png | Bin assets/graphics/player/up/up_2.png | Bin assets/graphics/player/up/up_3.png | Bin .../graphics/player/up_attack/attack_up.png | Bin assets/graphics/player/up_idle/idle_up.png | Bin assets/graphics/test/player.png | Bin assets/graphics/test/rock.png | Bin assets/graphics/tilemap/Floor.png | Bin assets/graphics/tilemap/details.png | Bin assets/graphics/tilemap/ground.png | Bin assets/graphics/weapons/axe/down.png | Bin assets/graphics/weapons/axe/full.png | Bin assets/graphics/weapons/axe/left.png | Bin assets/graphics/weapons/axe/right.png | Bin assets/graphics/weapons/axe/up.png | Bin assets/graphics/weapons/lance/down.png | Bin assets/graphics/weapons/lance/full.png | Bin assets/graphics/weapons/lance/left.png | Bin assets/graphics/weapons/lance/right.png | Bin assets/graphics/weapons/lance/up.png | Bin assets/graphics/weapons/rapier/down.png | Bin assets/graphics/weapons/rapier/full.png | Bin assets/graphics/weapons/rapier/left.png | Bin assets/graphics/weapons/rapier/right.png | Bin assets/graphics/weapons/rapier/up.png | Bin assets/graphics/weapons/sai/down.png | Bin assets/graphics/weapons/sai/full.png | Bin assets/graphics/weapons/sai/left.png | Bin assets/graphics/weapons/sai/right.png | Bin assets/graphics/weapons/sai/up.png | Bin assets/graphics/weapons/sword/down.png | Bin assets/graphics/weapons/sword/full.png | Bin assets/graphics/weapons/sword/left.png | Bin assets/graphics/weapons/sword/right.png | Bin assets/graphics/weapons/sword/up.png | Bin code/AIController2D.gd | 46 +- code/bamboo.gd | 110 +-- code/exp.gd | 0 code/killzone.gd | 2 +- code/main.gd | 78 +- code/player.gd | 275 ++++--- code/weapon.gd | 12 +- scenes/attack.tscn | 0 scenes/killzone.tscn | 0 scenes/main.tscn | 2 +- scenes/notice.tscn | 0 scenes/weapon.tscn | 0 .../AIController/controller_template.gd | 36 +- 346 files changed, 682 insertions(+), 683 deletions(-) mode change 100644 => 100755 addons/Todo_Manager/CONTRIBUTING.md mode change 100644 => 100755 addons/Todo_Manager/ColourPicker.gd mode change 100644 => 100755 addons/Todo_Manager/Current.gd mode change 100644 => 100755 addons/Todo_Manager/Dock.gd mode change 100644 => 100755 addons/Todo_Manager/Pattern.gd mode change 100644 => 100755 addons/Todo_Manager/Project.gd mode change 100644 => 100755 addons/Todo_Manager/README.md mode change 100644 => 100755 addons/Todo_Manager/READMECN.md mode change 100644 => 100755 addons/Todo_Manager/UI/ColourPicker.tscn mode change 100644 => 100755 addons/Todo_Manager/UI/Dock.tscn mode change 100644 => 100755 addons/Todo_Manager/UI/Pattern.tscn mode change 100644 => 100755 addons/Todo_Manager/doc/example.gd mode change 100644 => 100755 addons/Todo_Manager/doc/images/Instruct1.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/Instruct2.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/Instruct3.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/Instruct4.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/Instruct5.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/TODO_Manager_Logo.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/TodoExternal.gif mode change 100644 => 100755 addons/Todo_Manager/doc/images/example1.png mode change 100644 => 100755 addons/Todo_Manager/doc/images/example2.png mode change 100644 => 100755 addons/Todo_Manager/plugin.cfg mode change 100644 => 100755 addons/Todo_Manager/plugin.gd mode change 100644 => 100755 addons/Todo_Manager/todoItem_class.gd mode change 100644 => 100755 addons/Todo_Manager/todo_class.gd mode change 100644 => 100755 addons/godot_rl_agents/controller/ai_controller_3d.gd mode change 100644 => 100755 addons/godot_rl_agents/godot_rl_agents.gd mode change 100644 => 100755 addons/godot_rl_agents/icon.png mode change 100644 => 100755 addons/godot_rl_agents/onnx/csharp/ONNXInference.cs mode change 100644 => 100755 addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs mode change 100644 => 100755 addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml mode change 100644 => 100755 addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml mode change 100644 => 100755 addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd mode change 100644 => 100755 addons/godot_rl_agents/plugin.cfg mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd mode change 100644 => 100755 addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn mode change 100644 => 100755 assets/audio/Fire.wav mode change 100644 => 100755 assets/audio/attack/claw.wav mode change 100644 => 100755 assets/audio/attack/fireball.wav mode change 100644 => 100755 assets/audio/attack/slash.wav mode change 100644 => 100755 assets/audio/death.wav mode change 100644 => 100755 assets/audio/heal.wav mode change 100644 => 100755 assets/audio/hit.wav mode change 100644 => 100755 assets/audio/main.ogg mode change 100644 => 100755 assets/audio/sword.wav mode change 100644 => 100755 assets/graphics/font/joystix.ttf mode change 100644 => 100755 assets/graphics/grass/grass_1.png mode change 100644 => 100755 assets/graphics/grass/grass_2.png mode change 100644 => 100755 assets/graphics/grass/grass_3.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/attack/0.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/idle/0.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/idle/1.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/idle/2.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/idle/3.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/move/0.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/move/1.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/move/2.png mode change 100644 => 100755 assets/graphics/monsters/bamboo/move/3.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/attack/0.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/attack/1.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/attack/2.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/attack/3.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/idle/0.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/idle/1.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/idle/2.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/idle/3.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/idle/4.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/idle/5.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/move/0.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/move/1.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/move/2.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/move/3.png mode change 100644 => 100755 assets/graphics/monsters/raccoon/move/4.png mode change 100644 => 100755 assets/graphics/monsters/spirit/attack/0.png mode change 100644 => 100755 assets/graphics/monsters/spirit/idle/0.png mode change 100644 => 100755 assets/graphics/monsters/spirit/idle/1.png mode change 100644 => 100755 assets/graphics/monsters/spirit/idle/2.png mode change 100644 => 100755 assets/graphics/monsters/spirit/idle/3.png mode change 100644 => 100755 assets/graphics/monsters/spirit/move/0.png mode change 100644 => 100755 assets/graphics/monsters/spirit/move/1.png mode change 100644 => 100755 assets/graphics/monsters/spirit/move/2.png mode change 100644 => 100755 assets/graphics/monsters/spirit/move/3.png mode change 100644 => 100755 assets/graphics/monsters/squid/attack/0 - Copy (2).png mode change 100644 => 100755 assets/graphics/monsters/squid/attack/0 - Copy (3).png mode change 100644 => 100755 assets/graphics/monsters/squid/attack/0 - Copy.png mode change 100644 => 100755 assets/graphics/monsters/squid/attack/0.png mode change 100644 => 100755 assets/graphics/monsters/squid/idle/0.png mode change 100644 => 100755 assets/graphics/monsters/squid/idle/1.png mode change 100644 => 100755 assets/graphics/monsters/squid/idle/2.png mode change 100644 => 100755 assets/graphics/monsters/squid/idle/3.png mode change 100644 => 100755 assets/graphics/monsters/squid/idle/4.png mode change 100644 => 100755 assets/graphics/monsters/squid/move/0.png mode change 100644 => 100755 assets/graphics/monsters/squid/move/1.png mode change 100644 => 100755 assets/graphics/monsters/squid/move/2.png mode change 100644 => 100755 assets/graphics/monsters/squid/move/3.png mode change 100644 => 100755 assets/graphics/objects/0.png mode change 100644 => 100755 assets/graphics/objects/01.png mode change 100644 => 100755 assets/graphics/objects/02.png mode change 100644 => 100755 assets/graphics/objects/03.png mode change 100644 => 100755 assets/graphics/objects/04.png mode change 100644 => 100755 assets/graphics/objects/05.png mode change 100644 => 100755 assets/graphics/objects/06.png mode change 100644 => 100755 assets/graphics/objects/07.png mode change 100644 => 100755 assets/graphics/objects/08.png mode change 100644 => 100755 assets/graphics/objects/09.png mode change 100644 => 100755 assets/graphics/objects/10.png mode change 100644 => 100755 assets/graphics/objects/11.png mode change 100644 => 100755 assets/graphics/objects/12.png mode change 100644 => 100755 assets/graphics/objects/13.png mode change 100644 => 100755 assets/graphics/objects/14.png mode change 100644 => 100755 assets/graphics/objects/15.png mode change 100644 => 100755 assets/graphics/objects/16.png mode change 100644 => 100755 assets/graphics/objects/17.png mode change 100644 => 100755 assets/graphics/objects/18.png mode change 100644 => 100755 assets/graphics/objects/19.png mode change 100644 => 100755 assets/graphics/objects/20.png mode change 100644 => 100755 assets/graphics/particles/aura/0.png mode change 100644 => 100755 assets/graphics/particles/aura/1.png mode change 100644 => 100755 assets/graphics/particles/aura/2.png mode change 100644 => 100755 assets/graphics/particles/aura/3.png mode change 100644 => 100755 assets/graphics/particles/bamboo/0.png mode change 100644 => 100755 assets/graphics/particles/bamboo/1.png mode change 100644 => 100755 assets/graphics/particles/claw/0.png mode change 100644 => 100755 assets/graphics/particles/claw/1.png mode change 100644 => 100755 assets/graphics/particles/claw/2.png mode change 100644 => 100755 assets/graphics/particles/claw/3.png mode change 100644 => 100755 assets/graphics/particles/flame/fire.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/0.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/01.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/02.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/03.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/04.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/05.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/06.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/07.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/08.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/09.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/10.png mode change 100644 => 100755 assets/graphics/particles/flame/frames/11.png mode change 100644 => 100755 assets/graphics/particles/heal/frames/0.png mode change 100644 => 100755 assets/graphics/particles/heal/frames/1.png mode change 100644 => 100755 assets/graphics/particles/heal/frames/2.png mode change 100644 => 100755 assets/graphics/particles/heal/frames/3.png mode change 100644 => 100755 assets/graphics/particles/heal/frames/4.png mode change 100644 => 100755 assets/graphics/particles/heal/heal.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00000.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00001.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00002.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00003.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00004.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00005.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00006.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00007.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00008.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00009.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00010.png mode change 100644 => 100755 assets/graphics/particles/leaf1/leaf1_00011.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00000.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00001.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00002.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00003.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00004.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00005.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00006.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00007.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00008.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00009.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00010.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00011.png mode change 100644 => 100755 assets/graphics/particles/leaf2/leaf1_00012.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00000.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00001.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00002.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00003.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00004.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00005.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00006.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00007.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00008.png mode change 100644 => 100755 assets/graphics/particles/leaf3/leaf1_00009.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00000.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00001.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00002.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00003.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00004.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00005.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00006.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00007.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00008.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00009.png mode change 100644 => 100755 assets/graphics/particles/leaf4/leaf1_00010.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00000.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00001.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00002.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00003.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00004.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00005.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00006.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00007.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00008.png mode change 100644 => 100755 assets/graphics/particles/leaf5/leaf1_00009.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00000.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00001.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00002.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00003.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00004.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00005.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00006.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00007.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00008.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00009.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00010.png mode change 100644 => 100755 assets/graphics/particles/leaf6/leaf1_00011.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/0.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/1.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/2.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/3.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/4.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/5.png mode change 100644 => 100755 assets/graphics/particles/leaf_attack/6.png mode change 100644 => 100755 assets/graphics/particles/nova/0.png mode change 100644 => 100755 assets/graphics/particles/nova/1.png mode change 100644 => 100755 assets/graphics/particles/nova/2.png mode change 100644 => 100755 assets/graphics/particles/nova/3.png mode change 100644 => 100755 assets/graphics/particles/nova/4.png mode change 100644 => 100755 assets/graphics/particles/nova/5.png mode change 100644 => 100755 assets/graphics/particles/raccoon/0.png mode change 100644 => 100755 assets/graphics/particles/raccoon/1.png mode change 100644 => 100755 assets/graphics/particles/raccoon/2.png mode change 100644 => 100755 assets/graphics/particles/raccoon/3.png mode change 100644 => 100755 assets/graphics/particles/raccoon/4.png mode change 100644 => 100755 assets/graphics/particles/raccoon/5.png mode change 100644 => 100755 assets/graphics/particles/slash/0.png mode change 100644 => 100755 assets/graphics/particles/slash/1.png mode change 100644 => 100755 assets/graphics/particles/slash/2.png mode change 100644 => 100755 assets/graphics/particles/slash/3.png mode change 100644 => 100755 assets/graphics/particles/smoke/0.png mode change 100644 => 100755 assets/graphics/particles/smoke/1.png mode change 100644 => 100755 assets/graphics/particles/smoke/2.png mode change 100644 => 100755 assets/graphics/particles/smoke/3.png mode change 100644 => 100755 assets/graphics/particles/smoke/4.png mode change 100644 => 100755 assets/graphics/particles/smoke/5.png mode change 100644 => 100755 assets/graphics/particles/smoke2/0.png mode change 100644 => 100755 assets/graphics/particles/smoke2/1.png mode change 100644 => 100755 assets/graphics/particles/smoke2/2.png mode change 100644 => 100755 assets/graphics/particles/smoke2/3.png mode change 100644 => 100755 assets/graphics/particles/smoke2/4.png mode change 100644 => 100755 assets/graphics/particles/smoke2/5.png mode change 100644 => 100755 assets/graphics/particles/smoke_orange/0.png mode change 100644 => 100755 assets/graphics/particles/smoke_orange/1.png mode change 100644 => 100755 assets/graphics/particles/smoke_orange/2.png mode change 100644 => 100755 assets/graphics/particles/smoke_orange/3.png mode change 100644 => 100755 assets/graphics/particles/smoke_orange/4.png mode change 100644 => 100755 assets/graphics/particles/smoke_orange/5.png mode change 100644 => 100755 assets/graphics/particles/sparkle/0.png mode change 100644 => 100755 assets/graphics/particles/sparkle/1.png mode change 100644 => 100755 assets/graphics/particles/sparkle/2.png mode change 100644 => 100755 assets/graphics/particles/sparkle/3.png mode change 100644 => 100755 assets/graphics/particles/sparkle/4.png mode change 100644 => 100755 assets/graphics/particles/thunder/0.png mode change 100644 => 100755 assets/graphics/particles/thunder/1.png mode change 100644 => 100755 assets/graphics/particles/thunder/2.png mode change 100644 => 100755 assets/graphics/particles/thunder/3.png mode change 100644 => 100755 assets/graphics/particles/thunder/4.png mode change 100644 => 100755 assets/graphics/particles/thunder/5.png mode change 100644 => 100755 assets/graphics/particles/thunder/6.png mode change 100644 => 100755 assets/graphics/particles/thunder/7.png mode change 100644 => 100755 assets/graphics/player/down/down_0.png mode change 100644 => 100755 assets/graphics/player/down/down_1.png mode change 100644 => 100755 assets/graphics/player/down/down_2.png mode change 100644 => 100755 assets/graphics/player/down/down_3.png mode change 100644 => 100755 assets/graphics/player/down_attack/attack_down.png mode change 100644 => 100755 assets/graphics/player/down_idle/idle_down.png mode change 100644 => 100755 assets/graphics/player/left/left_0.png mode change 100644 => 100755 assets/graphics/player/left/left_1.png mode change 100644 => 100755 assets/graphics/player/left/left_2.png mode change 100644 => 100755 assets/graphics/player/left/left_3.png mode change 100644 => 100755 assets/graphics/player/left_attack/attack_left.png mode change 100644 => 100755 assets/graphics/player/left_idle/idle_left.png mode change 100644 => 100755 assets/graphics/player/right/right_0.png mode change 100644 => 100755 assets/graphics/player/right/right_1.png mode change 100644 => 100755 assets/graphics/player/right/right_2.png mode change 100644 => 100755 assets/graphics/player/right/right_3.png mode change 100644 => 100755 assets/graphics/player/right_attack/attack_right.png mode change 100644 => 100755 assets/graphics/player/right_idle/idle_right.png mode change 100644 => 100755 assets/graphics/player/up/up_0.png mode change 100644 => 100755 assets/graphics/player/up/up_1.png mode change 100644 => 100755 assets/graphics/player/up/up_2.png mode change 100644 => 100755 assets/graphics/player/up/up_3.png mode change 100644 => 100755 assets/graphics/player/up_attack/attack_up.png mode change 100644 => 100755 assets/graphics/player/up_idle/idle_up.png mode change 100644 => 100755 assets/graphics/test/player.png mode change 100644 => 100755 assets/graphics/test/rock.png mode change 100644 => 100755 assets/graphics/tilemap/Floor.png mode change 100644 => 100755 assets/graphics/tilemap/details.png mode change 100644 => 100755 assets/graphics/tilemap/ground.png mode change 100644 => 100755 assets/graphics/weapons/axe/down.png mode change 100644 => 100755 assets/graphics/weapons/axe/full.png mode change 100644 => 100755 assets/graphics/weapons/axe/left.png mode change 100644 => 100755 assets/graphics/weapons/axe/right.png mode change 100644 => 100755 assets/graphics/weapons/axe/up.png mode change 100644 => 100755 assets/graphics/weapons/lance/down.png mode change 100644 => 100755 assets/graphics/weapons/lance/full.png mode change 100644 => 100755 assets/graphics/weapons/lance/left.png mode change 100644 => 100755 assets/graphics/weapons/lance/right.png mode change 100644 => 100755 assets/graphics/weapons/lance/up.png mode change 100644 => 100755 assets/graphics/weapons/rapier/down.png mode change 100644 => 100755 assets/graphics/weapons/rapier/full.png mode change 100644 => 100755 assets/graphics/weapons/rapier/left.png mode change 100644 => 100755 assets/graphics/weapons/rapier/right.png mode change 100644 => 100755 assets/graphics/weapons/rapier/up.png mode change 100644 => 100755 assets/graphics/weapons/sai/down.png mode change 100644 => 100755 assets/graphics/weapons/sai/full.png mode change 100644 => 100755 assets/graphics/weapons/sai/left.png mode change 100644 => 100755 assets/graphics/weapons/sai/right.png mode change 100644 => 100755 assets/graphics/weapons/sai/up.png mode change 100644 => 100755 assets/graphics/weapons/sword/down.png mode change 100644 => 100755 assets/graphics/weapons/sword/full.png mode change 100644 => 100755 assets/graphics/weapons/sword/left.png mode change 100644 => 100755 assets/graphics/weapons/sword/right.png mode change 100644 => 100755 assets/graphics/weapons/sword/up.png mode change 100644 => 100755 code/exp.gd mode change 100644 => 100755 scenes/attack.tscn mode change 100644 => 100755 scenes/killzone.tscn mode change 100644 => 100755 scenes/notice.tscn mode change 100644 => 100755 scenes/weapon.tscn diff --git a/addons/Todo_Manager/CONTRIBUTING.md b/addons/Todo_Manager/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/ColourPicker.gd b/addons/Todo_Manager/ColourPicker.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/Current.gd b/addons/Todo_Manager/Current.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/Dock.gd b/addons/Todo_Manager/Dock.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/Pattern.gd b/addons/Todo_Manager/Pattern.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/Project.gd b/addons/Todo_Manager/Project.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/README.md b/addons/Todo_Manager/README.md old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/READMECN.md b/addons/Todo_Manager/READMECN.md old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/UI/ColourPicker.tscn b/addons/Todo_Manager/UI/ColourPicker.tscn old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/UI/Dock.tscn b/addons/Todo_Manager/UI/Dock.tscn old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/UI/Pattern.tscn b/addons/Todo_Manager/UI/Pattern.tscn old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/example.gd b/addons/Todo_Manager/doc/example.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/Instruct1.png b/addons/Todo_Manager/doc/images/Instruct1.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/Instruct2.png b/addons/Todo_Manager/doc/images/Instruct2.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/Instruct3.png b/addons/Todo_Manager/doc/images/Instruct3.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/Instruct4.png b/addons/Todo_Manager/doc/images/Instruct4.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/Instruct5.png b/addons/Todo_Manager/doc/images/Instruct5.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/TODO_Manager_Logo.png b/addons/Todo_Manager/doc/images/TODO_Manager_Logo.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/TodoExternal.gif b/addons/Todo_Manager/doc/images/TodoExternal.gif old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/example1.png b/addons/Todo_Manager/doc/images/example1.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/doc/images/example2.png b/addons/Todo_Manager/doc/images/example2.png old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/plugin.cfg b/addons/Todo_Manager/plugin.cfg old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/plugin.gd b/addons/Todo_Manager/plugin.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/todoItem_class.gd b/addons/Todo_Manager/todoItem_class.gd old mode 100644 new mode 100755 diff --git a/addons/Todo_Manager/todo_class.gd b/addons/Todo_Manager/todo_class.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/controller/ai_controller_2d.gd b/addons/godot_rl_agents/controller/ai_controller_2d.gd index 0a32a64..6536956 100644 --- a/addons/godot_rl_agents/controller/ai_controller_2d.gd +++ b/addons/godot_rl_agents/controller/ai_controller_2d.gd @@ -34,37 +34,37 @@ var _player: Node2D func _ready(): - add_to_group("AGENT") + add_to_group("AGENT") func init(player: Node2D): - _player = player + _player = player #-- Methods that need implementing using the "extend script" option in Godot --# func get_obs() -> Dictionary: - assert(false, "the get_obs method is not implemented when extending from ai_controller") - return {"obs": []} + assert(false, "the get_obs method is not implemented when extending from ai_controller") + return {"obs": []} func get_reward() -> float: - assert(false, "the get_reward method is not implemented when extending from ai_controller") - return 0.0 + assert(false, "the get_reward method is not implemented when extending from ai_controller") + return 0.0 func get_action_space() -> Dictionary: - assert( - false, - "the get get_action_space method is not implemented when extending from ai_controller" - ) - return { - "example_actions_continous": {"size": 2, "action_type": "continuous"}, - "example_actions_discrete": {"size": 2, "action_type": "discrete"}, - } + assert( + false, + "the get get_action_space method is not implemented when extending from ai_controller" + ) + return { + "example_actions_continous": {"size": 2, "action_type": "continuous"}, + "example_actions_discrete": {"size": 2, "action_type": "discrete"}, + } func set_action(action) -> void: - assert(false, "the set_action method is not implemented when extending from ai_controller") + assert(false, "the set_action method is not implemented when extending from ai_controller") #-----------------------------------------------------------------------------# @@ -73,47 +73,47 @@ func set_action(action) -> void: #-- Methods that sometimes need implementing using the "extend script" option in Godot --# # Only needed if you are recording expert demos with this AIController func get_action() -> Array: - assert(false, "the get_action method is not implemented in extended AIController but demo_recorder is used") - return [] + assert(false, "the get_action method is not implemented in extended AIController but demo_recorder is used") + return [] # -----------------------------------------------------------------------------# func _physics_process(delta): - n_steps += 1 - if n_steps > reset_after: - needs_reset = true + n_steps += 1 + if n_steps > reset_after: + needs_reset = true func get_obs_space(): - # may need overriding if the obs space is complex - var obs = get_obs() - return { - "obs": {"size": [len(obs["obs"])], "space": "box"}, - } + # may need overriding if the obs space is complex + var obs = get_obs() + return { + "obs": {"size": [len(obs["obs"])], "space": "box"}, + } func reset(): - n_steps = 0 - needs_reset = false + n_steps = 0 + needs_reset = false func reset_if_done(): - if done: - reset() + if done: + reset() func set_heuristic(h): - # sets the heuristic from "human" or "model" nothing to change here - heuristic = h + # sets the heuristic from "human" or "model" nothing to change here + heuristic = h func get_done(): - return done + return done func set_done_false(): - done = false + done = false func zero_reward(): - reward = 0.0 + reward = 0.0 diff --git a/addons/godot_rl_agents/controller/ai_controller_3d.gd b/addons/godot_rl_agents/controller/ai_controller_3d.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/godot_rl_agents.gd b/addons/godot_rl_agents/godot_rl_agents.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/icon.png b/addons/godot_rl_agents/icon.png old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/onnx/csharp/ONNXInference.cs b/addons/godot_rl_agents/onnx/csharp/ONNXInference.cs old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs b/addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml b/addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml b/addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd b/addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/plugin.cfg b/addons/godot_rl_agents/plugin.cfg old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn b/addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd b/addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd b/addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd b/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn b/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn b/addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd b/addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd b/addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd b/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn b/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd b/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn b/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn old mode 100644 new mode 100755 diff --git a/addons/godot_rl_agents/sync.gd b/addons/godot_rl_agents/sync.gd index 889127a..b939470 100644 --- a/addons/godot_rl_agents/sync.gd +++ b/addons/godot_rl_agents/sync.gd @@ -51,430 +51,430 @@ var _obs_space_training: Array[Dictionary] = [] # Called when the node enters the scene tree for the first time. func _ready(): - await get_tree().root.ready - get_tree().set_pause(true) - _initialize() - await get_tree().create_timer(1.0).timeout - get_tree().set_pause(false) + await get_tree().root.ready + get_tree().set_pause(true) + _initialize() + await get_tree().create_timer(1.0).timeout + get_tree().set_pause(false) func _initialize(): - _get_agents() - args = _get_args() - Engine.physics_ticks_per_second = _get_speedup() * 60 # Replace with function body. - Engine.time_scale = _get_speedup() * 1.0 - prints( - "physics ticks", - Engine.physics_ticks_per_second, - Engine.time_scale, - _get_speedup(), - speed_up - ) + _get_agents() + args = _get_args() + Engine.physics_ticks_per_second = _get_speedup() * 60 # Replace with function body. + Engine.time_scale = _get_speedup() * 1.0 + prints( + "physics ticks", + Engine.physics_ticks_per_second, + Engine.time_scale, + _get_speedup(), + speed_up + ) - _set_heuristic("human", all_agents) + _set_heuristic("human", all_agents) - _initialize_training_agents() - _initialize_inference_agents() - _initialize_demo_recording() + _initialize_training_agents() + _initialize_inference_agents() + _initialize_demo_recording() - _set_seed() - _set_action_repeat() - initialized = true + _set_seed() + _set_action_repeat() + initialized = true func _initialize_training_agents(): - if agents_training.size() > 0: - _obs_space_training.resize(agents_training.size()) - _action_space_training.resize(agents_training.size()) - for agent_idx in range(0, agents_training.size()): - _obs_space_training[agent_idx] = agents_training[agent_idx].get_obs_space() - _action_space_training[agent_idx] = agents_training[agent_idx].get_action_space() - connected = connect_to_server() - if connected: - _set_heuristic("model", agents_training) - _handshake() - _send_env_info() - else: - push_warning( - "Couldn't connect to Python server, using human controls instead. ", - "Did you start the training server using e.g. `gdrl` from the console?" - ) + if agents_training.size() > 0: + _obs_space_training.resize(agents_training.size()) + _action_space_training.resize(agents_training.size()) + for agent_idx in range(0, agents_training.size()): + _obs_space_training[agent_idx] = agents_training[agent_idx].get_obs_space() + _action_space_training[agent_idx] = agents_training[agent_idx].get_action_space() + connected = connect_to_server() + if connected: + _set_heuristic("model", agents_training) + _handshake() + _send_env_info() + else: + push_warning( + "Couldn't connect to Python server, using human controls instead. ", + "Did you start the training server using e.g. `gdrl` from the console?" + ) func _initialize_inference_agents(): - if agents_inference.size() > 0: - if control_mode == ControlModes.ONNX_INFERENCE: - assert( - FileAccess.file_exists(onnx_model_path), - "Onnx Model Path set on Sync node does not exist: %s" % onnx_model_path - ) - onnx_models[onnx_model_path] = ONNXModel.new(onnx_model_path, 1) + if agents_inference.size() > 0: + if control_mode == ControlModes.ONNX_INFERENCE: + assert( + FileAccess.file_exists(onnx_model_path), + "Onnx Model Path set on Sync node does not exist: %s" % onnx_model_path + ) + onnx_models[onnx_model_path] = ONNXModel.new(onnx_model_path, 1) - for agent in agents_inference: - var action_space = agent.get_action_space() - _action_space_inference.append(action_space) + for agent in agents_inference: + var action_space = agent.get_action_space() + _action_space_inference.append(action_space) - var agent_onnx_model: ONNXModel - if agent.onnx_model_path.is_empty(): - assert( - onnx_models.has(onnx_model_path), - ( - "Node %s has no onnx model path set " % agent.get_path() - + "and sync node's control mode is not set to OnnxInference. " - + "Either add the path to the AIController, " - + "or if you want to use the path set on sync node instead, " - + "set control mode to OnnxInference." - ) - ) - prints( - "Info: AIController %s" % agent.get_path(), - "has no onnx model path set.", - "Using path set on the sync node instead." - ) - agent_onnx_model = onnx_models[onnx_model_path] - else: - if not onnx_models.has(agent.onnx_model_path): - assert( - FileAccess.file_exists(agent.onnx_model_path), - ( - "Onnx Model Path set on %s node does not exist: %s" - % [agent.get_path(), agent.onnx_model_path] - ) - ) - onnx_models[agent.onnx_model_path] = ONNXModel.new(agent.onnx_model_path, 1) - agent_onnx_model = onnx_models[agent.onnx_model_path] + var agent_onnx_model: ONNXModel + if agent.onnx_model_path.is_empty(): + assert( + onnx_models.has(onnx_model_path), + ( + "Node %s has no onnx model path set " % agent.get_path() + + "and sync node's control mode is not set to OnnxInference. " + + "Either add the path to the AIController, " + + "or if you want to use the path set on sync node instead, " + + "set control mode to OnnxInference." + ) + ) + prints( + "Info: AIController %s" % agent.get_path(), + "has no onnx model path set.", + "Using path set on the sync node instead." + ) + agent_onnx_model = onnx_models[onnx_model_path] + else: + if not onnx_models.has(agent.onnx_model_path): + assert( + FileAccess.file_exists(agent.onnx_model_path), + ( + "Onnx Model Path set on %s node does not exist: %s" + % [agent.get_path(), agent.onnx_model_path] + ) + ) + onnx_models[agent.onnx_model_path] = ONNXModel.new(agent.onnx_model_path, 1) + agent_onnx_model = onnx_models[agent.onnx_model_path] - agent.onnx_model = agent_onnx_model - if not agent_onnx_model.action_means_only_set: - agent_onnx_model.set_action_means_only(action_space) - - _set_heuristic("model", agents_inference) + agent.onnx_model = agent_onnx_model + if not agent_onnx_model.action_means_only_set: + agent_onnx_model.set_action_means_only(action_space) + + _set_heuristic("model", agents_inference) func _initialize_demo_recording(): - if agent_demo_record: - expert_demo_save_path = agent_demo_record.expert_demo_save_path - assert( - not expert_demo_save_path.is_empty(), - "Expert demo save path set in %s is empty." % agent_demo_record.get_path() - ) + if agent_demo_record: + expert_demo_save_path = agent_demo_record.expert_demo_save_path + assert( + not expert_demo_save_path.is_empty(), + "Expert demo save path set in %s is empty." % agent_demo_record.get_path() + ) - InputMap.add_action("RemoveLastDemoEpisode") - InputMap.action_add_event( - "RemoveLastDemoEpisode", agent_demo_record.remove_last_episode_key - ) - current_demo_trajectory.resize(2) - current_demo_trajectory[0] = [] - current_demo_trajectory[1] = [] - agent_demo_record.heuristic = "demo_record" + InputMap.add_action("RemoveLastDemoEpisode") + InputMap.action_add_event( + "RemoveLastDemoEpisode", agent_demo_record.remove_last_episode_key + ) + current_demo_trajectory.resize(2) + current_demo_trajectory[0] = [] + current_demo_trajectory[1] = [] + agent_demo_record.heuristic = "demo_record" func _physics_process(_delta): - # two modes, human control, agent control - # pause tree, send obs, get actions, set actions, unpause tree + # two modes, human control, agent control + # pause tree, send obs, get actions, set actions, unpause tree - _demo_record_process() + _demo_record_process() - if n_action_steps % action_repeat != 0: - n_action_steps += 1 - return + if n_action_steps % action_repeat != 0: + n_action_steps += 1 + return - n_action_steps += 1 + n_action_steps += 1 - _training_process() - _inference_process() - _heuristic_process() + _training_process() + _inference_process() + _heuristic_process() func _training_process(): - if connected: - get_tree().set_pause(true) + if connected: + get_tree().set_pause(true) - if just_reset: - just_reset = false - var obs = _get_obs_from_agents(agents_training) + if just_reset: + just_reset = false + var obs = _get_obs_from_agents(agents_training) - var reply = {"type": "reset", "obs": obs} - _send_dict_as_json_message(reply) - # this should go straight to getting the action and setting it checked the agent, no need to perform one phyics tick - get_tree().set_pause(false) - return + var reply = {"type": "reset", "obs": obs} + _send_dict_as_json_message(reply) + # this should go straight to getting the action and setting it checked the agent, no need to perform one phyics tick + get_tree().set_pause(false) + return - if need_to_send_obs: - need_to_send_obs = false - var reward = _get_reward_from_agents() - var done = _get_done_from_agents() - #_reset_agents_if_done() # this ensures the new observation is from the next env instance : NEEDS REFACTOR + if need_to_send_obs: + need_to_send_obs = false + var reward = _get_reward_from_agents() + var done = _get_done_from_agents() + #_reset_agents_if_done() # this ensures the new observation is from the next env instance : NEEDS REFACTOR - var obs = _get_obs_from_agents(agents_training) + var obs = _get_obs_from_agents(agents_training) - var reply = {"type": "step", "obs": obs, "reward": reward, "done": done} - _send_dict_as_json_message(reply) + var reply = {"type": "step", "obs": obs, "reward": reward, "done": done} + _send_dict_as_json_message(reply) - var handled = handle_message() + var handled = handle_message() func _inference_process(): - if agents_inference.size() > 0: - var obs: Array = _get_obs_from_agents(agents_inference) - var actions = [] + if agents_inference.size() > 0: + var obs: Array = _get_obs_from_agents(agents_inference) + var actions = [] - for agent_id in range(0, agents_inference.size()): - var model: ONNXModel = agents_inference[agent_id].onnx_model - var action = model.run_inference( - obs[agent_id]["obs"], 1.0 - ) - var action_dict = _extract_action_dict( - action["output"], _action_space_inference[agent_id], model.action_means_only - ) - actions.append(action_dict) + for agent_id in range(0, agents_inference.size()): + var model: ONNXModel = agents_inference[agent_id].onnx_model + var action = model.run_inference( + obs[agent_id]["obs"], 1.0 + ) + var action_dict = _extract_action_dict( + action["output"], _action_space_inference[agent_id], model.action_means_only + ) + actions.append(action_dict) - _set_agent_actions(actions, agents_inference) - _reset_agents_if_done(agents_inference) - get_tree().set_pause(false) + _set_agent_actions(actions, agents_inference) + _reset_agents_if_done(agents_inference) + get_tree().set_pause(false) func _demo_record_process(): - if not agent_demo_record: - return + if not agent_demo_record: + return - if Input.is_action_just_pressed("RemoveLastDemoEpisode"): - print("[Sync script][Demo recorder] Removing last recorded episode.") - demo_trajectories.remove_at(demo_trajectories.size() - 1) - print("Remaining episode count: %d" % demo_trajectories.size()) + if Input.is_action_just_pressed("RemoveLastDemoEpisode"): + print("[Sync script][Demo recorder] Removing last recorded episode.") + demo_trajectories.remove_at(demo_trajectories.size() - 1) + print("Remaining episode count: %d" % demo_trajectories.size()) - if n_action_steps % agent_demo_record.action_repeat != 0: - return + if n_action_steps % agent_demo_record.action_repeat != 0: + return - var obs_dict: Dictionary = agent_demo_record.get_obs() + var obs_dict: Dictionary = agent_demo_record.get_obs() - # Get the current obs from the agent - assert( - obs_dict.has("obs"), - "Demo recorder needs an 'obs' key in get_obs() returned dictionary to record obs from." - ) - current_demo_trajectory[0].append(obs_dict.obs) + # Get the current obs from the agent + assert( + obs_dict.has("obs"), + "Demo recorder needs an 'obs' key in get_obs() returned dictionary to record obs from." + ) + current_demo_trajectory[0].append(obs_dict.obs) - # Get the action applied for the current obs from the agent - agent_demo_record.set_action() - var acts = agent_demo_record.get_action() + # Get the action applied for the current obs from the agent + agent_demo_record.set_action() + var acts = agent_demo_record.get_action() - var terminal = agent_demo_record.get_done() - # Record actions only for non-terminal states - if terminal: - agent_demo_record.set_done_false() - else: - current_demo_trajectory[1].append(acts) + var terminal = agent_demo_record.get_done() + # Record actions only for non-terminal states + if terminal: + agent_demo_record.set_done_false() + else: + current_demo_trajectory[1].append(acts) - if terminal: - #current_demo_trajectory[2].append(true) - demo_trajectories.append(current_demo_trajectory.duplicate(true)) - print("[Sync script][Demo recorder] Recorded episode count: %d" % demo_trajectories.size()) - current_demo_trajectory[0].clear() - current_demo_trajectory[1].clear() + if terminal: + #current_demo_trajectory[2].append(true) + demo_trajectories.append(current_demo_trajectory.duplicate(true)) + print("[Sync script][Demo recorder] Recorded episode count: %d" % demo_trajectories.size()) + current_demo_trajectory[0].clear() + current_demo_trajectory[1].clear() func _heuristic_process(): - for agent in agents_heuristic: - _reset_agents_if_done(agents_heuristic) + for agent in agents_heuristic: + _reset_agents_if_done(agents_heuristic) func _extract_action_dict(action_array: Array, action_space: Dictionary, action_means_only: bool): - var index = 0 - var result = {} - for key in action_space.keys(): - var size = action_space[key]["size"] - var action_type = action_space[key]["action_type"] - if action_type == "discrete": - var largest_logit: float # Value of the largest logit for this action in the actions array - var largest_logit_idx: int # Index of the largest logit for this action in the actions array - for logit_idx in range(0, size): - var logit_value = action_array[index + logit_idx] - if logit_value > largest_logit: - largest_logit = logit_value - largest_logit_idx = logit_idx - result[key] = largest_logit_idx # Index of the largest logit is the discrete action value - index += size - elif action_type == "continuous": - # For continous actions, we only take the action mean values - result[key] = clamp_array(action_array.slice(index, index + size), -1.0, 1.0) - if action_means_only: - index += size # model only outputs action means, so we move index by size - else: - index += size * 2 # model outputs logstd after action mean, we skip the logstd part + var index = 0 + var result = {} + for key in action_space.keys(): + var size = action_space[key]["size"] + var action_type = action_space[key]["action_type"] + if action_type == "discrete": + var largest_logit: float # Value of the largest logit for this action in the actions array + var largest_logit_idx: int # Index of the largest logit for this action in the actions array + for logit_idx in range(0, size): + var logit_value = action_array[index + logit_idx] + if logit_value > largest_logit: + largest_logit = logit_value + largest_logit_idx = logit_idx + result[key] = largest_logit_idx # Index of the largest logit is the discrete action value + index += size + elif action_type == "continuous": + # For continous actions, we only take the action mean values + result[key] = clamp_array(action_array.slice(index, index + size), -1.0, 1.0) + if action_means_only: + index += size # model only outputs action means, so we move index by size + else: + index += size * 2 # model outputs logstd after action mean, we skip the logstd part - else: - assert(false, 'Only "discrete" and "continuous" action types supported. Found: %s action type set.' % action_type) - + else: + assert(false, 'Only "discrete" and "continuous" action types supported. Found: %s action type set.' % action_type) + - return result + return result ## For AIControllers that inherit mode from sync, sets the correct mode. func _set_agent_mode(agent: Node): - var agent_inherits_mode: bool = agent.control_mode == agent.ControlModes.INHERIT_FROM_SYNC + var agent_inherits_mode: bool = agent.control_mode == agent.ControlModes.INHERIT_FROM_SYNC - if agent_inherits_mode: - match control_mode: - ControlModes.HUMAN: - agent.control_mode = agent.ControlModes.HUMAN - ControlModes.TRAINING: - agent.control_mode = agent.ControlModes.TRAINING - ControlModes.ONNX_INFERENCE: - agent.control_mode = agent.ControlModes.ONNX_INFERENCE + if agent_inherits_mode: + match control_mode: + ControlModes.HUMAN: + agent.control_mode = agent.ControlModes.HUMAN + ControlModes.TRAINING: + agent.control_mode = agent.ControlModes.TRAINING + ControlModes.ONNX_INFERENCE: + agent.control_mode = agent.ControlModes.ONNX_INFERENCE func _get_agents(): - all_agents = get_tree().get_nodes_in_group("AGENT") - for agent in all_agents: - _set_agent_mode(agent) + all_agents = get_tree().get_nodes_in_group("AGENT") + for agent in all_agents: + _set_agent_mode(agent) - if agent.control_mode == agent.ControlModes.TRAINING: - agents_training.append(agent) - elif agent.control_mode == agent.ControlModes.ONNX_INFERENCE: - agents_inference.append(agent) - elif agent.control_mode == agent.ControlModes.HUMAN: - agents_heuristic.append(agent) - elif agent.control_mode == agent.ControlModes.RECORD_EXPERT_DEMOS: - assert( - not agent_demo_record, - "Currently only a single AIController can be used for recording expert demos." - ) - agent_demo_record = agent - - var training_agent_count = agents_training.size() - agents_training_policy_names.resize(training_agent_count) - for i in range(0, training_agent_count): - agents_training_policy_names[i] = agents_training[i].policy_name + if agent.control_mode == agent.ControlModes.TRAINING: + agents_training.append(agent) + elif agent.control_mode == agent.ControlModes.ONNX_INFERENCE: + agents_inference.append(agent) + elif agent.control_mode == agent.ControlModes.HUMAN: + agents_heuristic.append(agent) + elif agent.control_mode == agent.ControlModes.RECORD_EXPERT_DEMOS: + assert( + not agent_demo_record, + "Currently only a single AIController can be used for recording expert demos." + ) + agent_demo_record = agent + + var training_agent_count = agents_training.size() + agents_training_policy_names.resize(training_agent_count) + for i in range(0, training_agent_count): + agents_training_policy_names[i] = agents_training[i].policy_name func _set_heuristic(heuristic, agents: Array): - for agent in agents: - agent.set_heuristic(heuristic) + for agent in agents: + agent.set_heuristic(heuristic) func _handshake(): - print("performing handshake") + print("performing handshake") - var json_dict = _get_dict_json_message() - assert(json_dict["type"] == "handshake") - var major_version = json_dict["major_version"] - var minor_version = json_dict["minor_version"] - if major_version != MAJOR_VERSION: - print("WARNING: major verison mismatch ", major_version, " ", MAJOR_VERSION) - if minor_version != MINOR_VERSION: - print("WARNING: minor verison mismatch ", minor_version, " ", MINOR_VERSION) + var json_dict = _get_dict_json_message() + assert(json_dict["type"] == "handshake") + var major_version = json_dict["major_version"] + var minor_version = json_dict["minor_version"] + if major_version != MAJOR_VERSION: + print("WARNING: major verison mismatch ", major_version, " ", MAJOR_VERSION) + if minor_version != MINOR_VERSION: + print("WARNING: minor verison mismatch ", minor_version, " ", MINOR_VERSION) - print("handshake complete") + print("handshake complete") func _get_dict_json_message(): - # returns a dictionary from of the most recent message - # this is not waiting - while stream.get_available_bytes() == 0: - stream.poll() - if stream.get_status() != 2: - print("server disconnected status, closing") - get_tree().quit() - return null + # returns a dictionary from of the most recent message + # this is not waiting + while stream.get_available_bytes() == 0: + stream.poll() + if stream.get_status() != 2: + print("server disconnected status, closing") + get_tree().quit() + return null - OS.delay_usec(10) + OS.delay_usec(10) - var message = stream.get_string() - var json_data = JSON.parse_string(message) + var message = stream.get_string() + var json_data = JSON.parse_string(message) - return json_data + return json_data func _send_dict_as_json_message(dict): - stream.put_string(JSON.stringify(dict, "", false)) + stream.put_string(JSON.stringify(dict, "", false)) func _send_env_info(): - var json_dict = _get_dict_json_message() - assert(json_dict["type"] == "env_info") + var json_dict = _get_dict_json_message() + assert(json_dict["type"] == "env_info") - var message = { - "type": "env_info", - "observation_space": _obs_space_training, - "action_space": _action_space_training, - "n_agents": len(agents_training), - "agent_policy_names": agents_training_policy_names - } - _send_dict_as_json_message(message) + var message = { + "type": "env_info", + "observation_space": _obs_space_training, + "action_space": _action_space_training, + "n_agents": len(agents_training), + "agent_policy_names": agents_training_policy_names + } + _send_dict_as_json_message(message) func connect_to_server(): - print("Waiting for one second to allow server to start") - OS.delay_msec(1000) - print("trying to connect to server") - stream = StreamPeerTCP.new() + print("Waiting for one second to allow server to start") + OS.delay_msec(1000) + print("trying to connect to server") + stream = StreamPeerTCP.new() - # "localhost" was not working on windows VM, had to use the IP - var ip = "127.0.0.1" - var port = _get_port() - var connect = stream.connect_to_host(ip, port) - stream.set_no_delay(true) # TODO check if this improves performance or not - stream.poll() - # Fetch the status until it is either connected (2) or failed to connect (3) - while stream.get_status() < 2: - stream.poll() - return stream.get_status() == 2 + # "localhost" was not working on windows VM, had to use the IP + var ip = "127.0.0.1" + var port = _get_port() + var connect = stream.connect_to_host(ip, port) + stream.set_no_delay(true) # TODO check if this improves performance or not + stream.poll() + # Fetch the status until it is either connected (2) or failed to connect (3) + while stream.get_status() < 2: + stream.poll() + return stream.get_status() == 2 func _get_args(): - print("getting command line arguments") - var arguments = {} - for argument in OS.get_cmdline_args(): - print(argument) - if argument.find("=") > -1: - var key_value = argument.split("=") - arguments[key_value[0].lstrip("--")] = key_value[1] - else: - # Options without an argument will be present in the dictionary, - # with the value set to an empty string. - arguments[argument.lstrip("--")] = "" + print("getting command line arguments") + var arguments = {} + for argument in OS.get_cmdline_args(): + print(argument) + if argument.find("=") > -1: + var key_value = argument.split("=") + arguments[key_value[0].lstrip("--")] = key_value[1] + else: + # Options without an argument will be present in the dictionary, + # with the value set to an empty string. + arguments[argument.lstrip("--")] = "" - return arguments + return arguments func _get_speedup(): - print(args) - return args.get("speedup", str(speed_up)).to_float() + print(args) + return args.get("speedup", str(speed_up)).to_float() func _get_port(): - return args.get("port", DEFAULT_PORT).to_int() + return args.get("port", DEFAULT_PORT).to_int() func _set_seed(): - var _seed = args.get("env_seed", DEFAULT_SEED).to_int() - seed(_seed) + var _seed = args.get("env_seed", DEFAULT_SEED).to_int() + seed(_seed) func _set_action_repeat(): - action_repeat = args.get("action_repeat", str(action_repeat)).to_int() + action_repeat = args.get("action_repeat", str(action_repeat)).to_int() func disconnect_from_server(): - stream.disconnect_from_host() + stream.disconnect_from_host() func handle_message() -> bool: - # get json message: reset, step, close - var message = _get_dict_json_message() - if message["type"] == "close": - print("received close message, closing game") - get_tree().quit() - get_tree().set_pause(false) - return true + # get json message: reset, step, close + var message = _get_dict_json_message() + if message["type"] == "close": + print("received close message, closing game") + get_tree().quit() + get_tree().set_pause(false) + return true - if message["type"] == "reset": - print("resetting all agents") - _reset_agents() - just_reset = true - get_tree().set_pause(false) - #print("resetting forcing draw") + if message["type"] == "reset": + print("resetting all agents") + _reset_agents() + just_reset = true + get_tree().set_pause(false) + #print("resetting forcing draw") # RenderingServer.force_draw() # var obs = _get_obs_from_agents() # print("obs ", obs) @@ -483,97 +483,97 @@ func handle_message() -> bool: # "obs": obs # } # _send_dict_as_json_message(reply) - return true + return true - if message["type"] == "call": - var method = message["method"] - var returns = _call_method_on_agents(method) - var reply = {"type": "call", "returns": returns} - print("calling method from Python") - _send_dict_as_json_message(reply) - return handle_message() + if message["type"] == "call": + var method = message["method"] + var returns = _call_method_on_agents(method) + var reply = {"type": "call", "returns": returns} + print("calling method from Python") + _send_dict_as_json_message(reply) + return handle_message() - if message["type"] == "action": - var action = message["action"] - _set_agent_actions(action, agents_training) - need_to_send_obs = true - get_tree().set_pause(false) - return true + if message["type"] == "action": + var action = message["action"] + _set_agent_actions(action, agents_training) + need_to_send_obs = true + get_tree().set_pause(false) + return true - print("message was not handled") - return false + print("message was not handled") + return false func _call_method_on_agents(method): - var returns = [] - for agent in all_agents: - returns.append(agent.call(method)) + var returns = [] + for agent in all_agents: + returns.append(agent.call(method)) - return returns + return returns func _reset_agents_if_done(agents = all_agents): - for agent in agents: - if agent.get_done(): - agent.set_done_false() + for agent in agents: + if agent.get_done(): + agent.set_done_false() func _reset_agents(agents = all_agents): - for agent in agents: - agent.needs_reset = true - #agent.reset() + for agent in agents: + agent.needs_reset = true + #agent.reset() func _get_obs_from_agents(agents: Array = all_agents): - var obs = [] - for agent in agents: - obs.append(agent.get_obs()) - return obs + var obs = [] + for agent in agents: + obs.append(agent.get_obs()) + return obs func _get_reward_from_agents(agents: Array = agents_training): - var rewards = [] - for agent in agents: - rewards.append(agent.get_reward()) - agent.zero_reward() - return rewards + var rewards = [] + for agent in agents: + rewards.append(agent.get_reward()) + agent.zero_reward() + return rewards func _get_done_from_agents(agents: Array = agents_training): - var dones = [] - for agent in agents: - var done = agent.get_done() - if done: - agent.set_done_false() - dones.append(done) - return dones + var dones = [] + for agent in agents: + var done = agent.get_done() + if done: + agent.set_done_false() + dones.append(done) + return dones func _set_agent_actions(actions, agents: Array = all_agents): - for i in range(len(actions)): - agents[i].set_action(actions[i]) + for i in range(len(actions)): + agents[i].set_action(actions[i]) func clamp_array(arr: Array, min: float, max: float): - var output: Array = [] - for a in arr: - output.append(clamp(a, min, max)) - return output + var output: Array = [] + for a in arr: + output.append(clamp(a, min, max)) + return output ## Save recorded export demos on window exit (Close game window instead of "Stop" button in Godot Editor) func _notification(what): - if demo_trajectories.size() == 0 or expert_demo_save_path.is_empty(): - return + if demo_trajectories.size() == 0 or expert_demo_save_path.is_empty(): + return - if what == NOTIFICATION_PREDELETE: - var json_string = JSON.stringify(demo_trajectories, "", false) - var file = FileAccess.open(expert_demo_save_path, FileAccess.WRITE) + if what == NOTIFICATION_PREDELETE: + var json_string = JSON.stringify(demo_trajectories, "", false) + var file = FileAccess.open(expert_demo_save_path, FileAccess.WRITE) - if not file: - var error: Error = FileAccess.get_open_error() - assert(not error, "There was an error opening the file: %d" % error) + if not file: + var error: Error = FileAccess.get_open_error() + assert(not error, "There was an error opening the file: %d" % error) - file.store_line(json_string) - var error = file.get_error() - assert(not error, "There was an error after trying to write to the file: %d" % error) + file.store_line(json_string) + var error = file.get_error() + assert(not error, "There was an error after trying to write to the file: %d" % error) diff --git a/assets/audio/Fire.wav b/assets/audio/Fire.wav old mode 100644 new mode 100755 diff --git a/assets/audio/attack/claw.wav b/assets/audio/attack/claw.wav old mode 100644 new mode 100755 diff --git a/assets/audio/attack/fireball.wav b/assets/audio/attack/fireball.wav old mode 100644 new mode 100755 diff --git a/assets/audio/attack/slash.wav b/assets/audio/attack/slash.wav old mode 100644 new mode 100755 diff --git a/assets/audio/death.wav b/assets/audio/death.wav old mode 100644 new mode 100755 diff --git a/assets/audio/heal.wav b/assets/audio/heal.wav old mode 100644 new mode 100755 diff --git a/assets/audio/hit.wav b/assets/audio/hit.wav old mode 100644 new mode 100755 diff --git a/assets/audio/main.ogg b/assets/audio/main.ogg old mode 100644 new mode 100755 diff --git a/assets/audio/sword.wav b/assets/audio/sword.wav old mode 100644 new mode 100755 diff --git a/assets/graphics/font/joystix.ttf b/assets/graphics/font/joystix.ttf old mode 100644 new mode 100755 diff --git a/assets/graphics/grass/grass_1.png b/assets/graphics/grass/grass_1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/grass/grass_2.png b/assets/graphics/grass/grass_2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/grass/grass_3.png b/assets/graphics/grass/grass_3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/attack/0.png b/assets/graphics/monsters/bamboo/attack/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/idle/0.png b/assets/graphics/monsters/bamboo/idle/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/idle/1.png b/assets/graphics/monsters/bamboo/idle/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/idle/2.png b/assets/graphics/monsters/bamboo/idle/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/idle/3.png b/assets/graphics/monsters/bamboo/idle/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/move/0.png b/assets/graphics/monsters/bamboo/move/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/move/1.png b/assets/graphics/monsters/bamboo/move/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/move/2.png b/assets/graphics/monsters/bamboo/move/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/bamboo/move/3.png b/assets/graphics/monsters/bamboo/move/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/attack/0.png b/assets/graphics/monsters/raccoon/attack/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/attack/1.png b/assets/graphics/monsters/raccoon/attack/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/attack/2.png b/assets/graphics/monsters/raccoon/attack/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/attack/3.png b/assets/graphics/monsters/raccoon/attack/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/idle/0.png b/assets/graphics/monsters/raccoon/idle/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/idle/1.png b/assets/graphics/monsters/raccoon/idle/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/idle/2.png b/assets/graphics/monsters/raccoon/idle/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/idle/3.png b/assets/graphics/monsters/raccoon/idle/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/idle/4.png b/assets/graphics/monsters/raccoon/idle/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/idle/5.png b/assets/graphics/monsters/raccoon/idle/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/move/0.png b/assets/graphics/monsters/raccoon/move/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/move/1.png b/assets/graphics/monsters/raccoon/move/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/move/2.png b/assets/graphics/monsters/raccoon/move/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/move/3.png b/assets/graphics/monsters/raccoon/move/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/raccoon/move/4.png b/assets/graphics/monsters/raccoon/move/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/attack/0.png b/assets/graphics/monsters/spirit/attack/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/idle/0.png b/assets/graphics/monsters/spirit/idle/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/idle/1.png b/assets/graphics/monsters/spirit/idle/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/idle/2.png b/assets/graphics/monsters/spirit/idle/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/idle/3.png b/assets/graphics/monsters/spirit/idle/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/move/0.png b/assets/graphics/monsters/spirit/move/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/move/1.png b/assets/graphics/monsters/spirit/move/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/move/2.png b/assets/graphics/monsters/spirit/move/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/spirit/move/3.png b/assets/graphics/monsters/spirit/move/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/attack/0 - Copy (2).png b/assets/graphics/monsters/squid/attack/0 - Copy (2).png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/attack/0 - Copy (3).png b/assets/graphics/monsters/squid/attack/0 - Copy (3).png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/attack/0 - Copy.png b/assets/graphics/monsters/squid/attack/0 - Copy.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/attack/0.png b/assets/graphics/monsters/squid/attack/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/idle/0.png b/assets/graphics/monsters/squid/idle/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/idle/1.png b/assets/graphics/monsters/squid/idle/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/idle/2.png b/assets/graphics/monsters/squid/idle/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/idle/3.png b/assets/graphics/monsters/squid/idle/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/idle/4.png b/assets/graphics/monsters/squid/idle/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/move/0.png b/assets/graphics/monsters/squid/move/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/move/1.png b/assets/graphics/monsters/squid/move/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/move/2.png b/assets/graphics/monsters/squid/move/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/monsters/squid/move/3.png b/assets/graphics/monsters/squid/move/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/0.png b/assets/graphics/objects/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/01.png b/assets/graphics/objects/01.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/02.png b/assets/graphics/objects/02.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/03.png b/assets/graphics/objects/03.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/04.png b/assets/graphics/objects/04.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/05.png b/assets/graphics/objects/05.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/06.png b/assets/graphics/objects/06.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/07.png b/assets/graphics/objects/07.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/08.png b/assets/graphics/objects/08.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/09.png b/assets/graphics/objects/09.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/10.png b/assets/graphics/objects/10.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/11.png b/assets/graphics/objects/11.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/12.png b/assets/graphics/objects/12.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/13.png b/assets/graphics/objects/13.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/14.png b/assets/graphics/objects/14.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/15.png b/assets/graphics/objects/15.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/16.png b/assets/graphics/objects/16.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/17.png b/assets/graphics/objects/17.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/18.png b/assets/graphics/objects/18.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/19.png b/assets/graphics/objects/19.png old mode 100644 new mode 100755 diff --git a/assets/graphics/objects/20.png b/assets/graphics/objects/20.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/aura/0.png b/assets/graphics/particles/aura/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/aura/1.png b/assets/graphics/particles/aura/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/aura/2.png b/assets/graphics/particles/aura/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/aura/3.png b/assets/graphics/particles/aura/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/bamboo/0.png b/assets/graphics/particles/bamboo/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/bamboo/1.png b/assets/graphics/particles/bamboo/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/claw/0.png b/assets/graphics/particles/claw/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/claw/1.png b/assets/graphics/particles/claw/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/claw/2.png b/assets/graphics/particles/claw/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/claw/3.png b/assets/graphics/particles/claw/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/fire.png b/assets/graphics/particles/flame/fire.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/0.png b/assets/graphics/particles/flame/frames/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/01.png b/assets/graphics/particles/flame/frames/01.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/02.png b/assets/graphics/particles/flame/frames/02.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/03.png b/assets/graphics/particles/flame/frames/03.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/04.png b/assets/graphics/particles/flame/frames/04.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/05.png b/assets/graphics/particles/flame/frames/05.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/06.png b/assets/graphics/particles/flame/frames/06.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/07.png b/assets/graphics/particles/flame/frames/07.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/08.png b/assets/graphics/particles/flame/frames/08.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/09.png b/assets/graphics/particles/flame/frames/09.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/10.png b/assets/graphics/particles/flame/frames/10.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/flame/frames/11.png b/assets/graphics/particles/flame/frames/11.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/heal/frames/0.png b/assets/graphics/particles/heal/frames/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/heal/frames/1.png b/assets/graphics/particles/heal/frames/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/heal/frames/2.png b/assets/graphics/particles/heal/frames/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/heal/frames/3.png b/assets/graphics/particles/heal/frames/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/heal/frames/4.png b/assets/graphics/particles/heal/frames/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/heal/heal.png b/assets/graphics/particles/heal/heal.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00000.png b/assets/graphics/particles/leaf1/leaf1_00000.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00001.png b/assets/graphics/particles/leaf1/leaf1_00001.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00002.png b/assets/graphics/particles/leaf1/leaf1_00002.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00003.png b/assets/graphics/particles/leaf1/leaf1_00003.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00004.png b/assets/graphics/particles/leaf1/leaf1_00004.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00005.png b/assets/graphics/particles/leaf1/leaf1_00005.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00006.png b/assets/graphics/particles/leaf1/leaf1_00006.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00007.png b/assets/graphics/particles/leaf1/leaf1_00007.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00008.png b/assets/graphics/particles/leaf1/leaf1_00008.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00009.png b/assets/graphics/particles/leaf1/leaf1_00009.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00010.png b/assets/graphics/particles/leaf1/leaf1_00010.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf1/leaf1_00011.png b/assets/graphics/particles/leaf1/leaf1_00011.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00000.png b/assets/graphics/particles/leaf2/leaf1_00000.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00001.png b/assets/graphics/particles/leaf2/leaf1_00001.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00002.png b/assets/graphics/particles/leaf2/leaf1_00002.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00003.png b/assets/graphics/particles/leaf2/leaf1_00003.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00004.png b/assets/graphics/particles/leaf2/leaf1_00004.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00005.png b/assets/graphics/particles/leaf2/leaf1_00005.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00006.png b/assets/graphics/particles/leaf2/leaf1_00006.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00007.png b/assets/graphics/particles/leaf2/leaf1_00007.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00008.png b/assets/graphics/particles/leaf2/leaf1_00008.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00009.png b/assets/graphics/particles/leaf2/leaf1_00009.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00010.png b/assets/graphics/particles/leaf2/leaf1_00010.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00011.png b/assets/graphics/particles/leaf2/leaf1_00011.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf2/leaf1_00012.png b/assets/graphics/particles/leaf2/leaf1_00012.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00000.png b/assets/graphics/particles/leaf3/leaf1_00000.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00001.png b/assets/graphics/particles/leaf3/leaf1_00001.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00002.png b/assets/graphics/particles/leaf3/leaf1_00002.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00003.png b/assets/graphics/particles/leaf3/leaf1_00003.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00004.png b/assets/graphics/particles/leaf3/leaf1_00004.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00005.png b/assets/graphics/particles/leaf3/leaf1_00005.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00006.png b/assets/graphics/particles/leaf3/leaf1_00006.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00007.png b/assets/graphics/particles/leaf3/leaf1_00007.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00008.png b/assets/graphics/particles/leaf3/leaf1_00008.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf3/leaf1_00009.png b/assets/graphics/particles/leaf3/leaf1_00009.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00000.png b/assets/graphics/particles/leaf4/leaf1_00000.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00001.png b/assets/graphics/particles/leaf4/leaf1_00001.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00002.png b/assets/graphics/particles/leaf4/leaf1_00002.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00003.png b/assets/graphics/particles/leaf4/leaf1_00003.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00004.png b/assets/graphics/particles/leaf4/leaf1_00004.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00005.png b/assets/graphics/particles/leaf4/leaf1_00005.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00006.png b/assets/graphics/particles/leaf4/leaf1_00006.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00007.png b/assets/graphics/particles/leaf4/leaf1_00007.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00008.png b/assets/graphics/particles/leaf4/leaf1_00008.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00009.png b/assets/graphics/particles/leaf4/leaf1_00009.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf4/leaf1_00010.png b/assets/graphics/particles/leaf4/leaf1_00010.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00000.png b/assets/graphics/particles/leaf5/leaf1_00000.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00001.png b/assets/graphics/particles/leaf5/leaf1_00001.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00002.png b/assets/graphics/particles/leaf5/leaf1_00002.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00003.png b/assets/graphics/particles/leaf5/leaf1_00003.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00004.png b/assets/graphics/particles/leaf5/leaf1_00004.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00005.png b/assets/graphics/particles/leaf5/leaf1_00005.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00006.png b/assets/graphics/particles/leaf5/leaf1_00006.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00007.png b/assets/graphics/particles/leaf5/leaf1_00007.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00008.png b/assets/graphics/particles/leaf5/leaf1_00008.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf5/leaf1_00009.png b/assets/graphics/particles/leaf5/leaf1_00009.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00000.png b/assets/graphics/particles/leaf6/leaf1_00000.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00001.png b/assets/graphics/particles/leaf6/leaf1_00001.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00002.png b/assets/graphics/particles/leaf6/leaf1_00002.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00003.png b/assets/graphics/particles/leaf6/leaf1_00003.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00004.png b/assets/graphics/particles/leaf6/leaf1_00004.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00005.png b/assets/graphics/particles/leaf6/leaf1_00005.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00006.png b/assets/graphics/particles/leaf6/leaf1_00006.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00007.png b/assets/graphics/particles/leaf6/leaf1_00007.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00008.png b/assets/graphics/particles/leaf6/leaf1_00008.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00009.png b/assets/graphics/particles/leaf6/leaf1_00009.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00010.png b/assets/graphics/particles/leaf6/leaf1_00010.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf6/leaf1_00011.png b/assets/graphics/particles/leaf6/leaf1_00011.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/0.png b/assets/graphics/particles/leaf_attack/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/1.png b/assets/graphics/particles/leaf_attack/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/2.png b/assets/graphics/particles/leaf_attack/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/3.png b/assets/graphics/particles/leaf_attack/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/4.png b/assets/graphics/particles/leaf_attack/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/5.png b/assets/graphics/particles/leaf_attack/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/leaf_attack/6.png b/assets/graphics/particles/leaf_attack/6.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/nova/0.png b/assets/graphics/particles/nova/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/nova/1.png b/assets/graphics/particles/nova/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/nova/2.png b/assets/graphics/particles/nova/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/nova/3.png b/assets/graphics/particles/nova/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/nova/4.png b/assets/graphics/particles/nova/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/nova/5.png b/assets/graphics/particles/nova/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/raccoon/0.png b/assets/graphics/particles/raccoon/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/raccoon/1.png b/assets/graphics/particles/raccoon/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/raccoon/2.png b/assets/graphics/particles/raccoon/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/raccoon/3.png b/assets/graphics/particles/raccoon/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/raccoon/4.png b/assets/graphics/particles/raccoon/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/raccoon/5.png b/assets/graphics/particles/raccoon/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/slash/0.png b/assets/graphics/particles/slash/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/slash/1.png b/assets/graphics/particles/slash/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/slash/2.png b/assets/graphics/particles/slash/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/slash/3.png b/assets/graphics/particles/slash/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke/0.png b/assets/graphics/particles/smoke/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke/1.png b/assets/graphics/particles/smoke/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke/2.png b/assets/graphics/particles/smoke/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke/3.png b/assets/graphics/particles/smoke/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke/4.png b/assets/graphics/particles/smoke/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke/5.png b/assets/graphics/particles/smoke/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke2/0.png b/assets/graphics/particles/smoke2/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke2/1.png b/assets/graphics/particles/smoke2/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke2/2.png b/assets/graphics/particles/smoke2/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke2/3.png b/assets/graphics/particles/smoke2/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke2/4.png b/assets/graphics/particles/smoke2/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke2/5.png b/assets/graphics/particles/smoke2/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke_orange/0.png b/assets/graphics/particles/smoke_orange/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke_orange/1.png b/assets/graphics/particles/smoke_orange/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke_orange/2.png b/assets/graphics/particles/smoke_orange/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke_orange/3.png b/assets/graphics/particles/smoke_orange/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke_orange/4.png b/assets/graphics/particles/smoke_orange/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/smoke_orange/5.png b/assets/graphics/particles/smoke_orange/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/sparkle/0.png b/assets/graphics/particles/sparkle/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/sparkle/1.png b/assets/graphics/particles/sparkle/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/sparkle/2.png b/assets/graphics/particles/sparkle/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/sparkle/3.png b/assets/graphics/particles/sparkle/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/sparkle/4.png b/assets/graphics/particles/sparkle/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/0.png b/assets/graphics/particles/thunder/0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/1.png b/assets/graphics/particles/thunder/1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/2.png b/assets/graphics/particles/thunder/2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/3.png b/assets/graphics/particles/thunder/3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/4.png b/assets/graphics/particles/thunder/4.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/5.png b/assets/graphics/particles/thunder/5.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/6.png b/assets/graphics/particles/thunder/6.png old mode 100644 new mode 100755 diff --git a/assets/graphics/particles/thunder/7.png b/assets/graphics/particles/thunder/7.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/down/down_0.png b/assets/graphics/player/down/down_0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/down/down_1.png b/assets/graphics/player/down/down_1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/down/down_2.png b/assets/graphics/player/down/down_2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/down/down_3.png b/assets/graphics/player/down/down_3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/down_attack/attack_down.png b/assets/graphics/player/down_attack/attack_down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/down_idle/idle_down.png b/assets/graphics/player/down_idle/idle_down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/left/left_0.png b/assets/graphics/player/left/left_0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/left/left_1.png b/assets/graphics/player/left/left_1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/left/left_2.png b/assets/graphics/player/left/left_2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/left/left_3.png b/assets/graphics/player/left/left_3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/left_attack/attack_left.png b/assets/graphics/player/left_attack/attack_left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/left_idle/idle_left.png b/assets/graphics/player/left_idle/idle_left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/right/right_0.png b/assets/graphics/player/right/right_0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/right/right_1.png b/assets/graphics/player/right/right_1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/right/right_2.png b/assets/graphics/player/right/right_2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/right/right_3.png b/assets/graphics/player/right/right_3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/right_attack/attack_right.png b/assets/graphics/player/right_attack/attack_right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/right_idle/idle_right.png b/assets/graphics/player/right_idle/idle_right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/up/up_0.png b/assets/graphics/player/up/up_0.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/up/up_1.png b/assets/graphics/player/up/up_1.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/up/up_2.png b/assets/graphics/player/up/up_2.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/up/up_3.png b/assets/graphics/player/up/up_3.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/up_attack/attack_up.png b/assets/graphics/player/up_attack/attack_up.png old mode 100644 new mode 100755 diff --git a/assets/graphics/player/up_idle/idle_up.png b/assets/graphics/player/up_idle/idle_up.png old mode 100644 new mode 100755 diff --git a/assets/graphics/test/player.png b/assets/graphics/test/player.png old mode 100644 new mode 100755 diff --git a/assets/graphics/test/rock.png b/assets/graphics/test/rock.png old mode 100644 new mode 100755 diff --git a/assets/graphics/tilemap/Floor.png b/assets/graphics/tilemap/Floor.png old mode 100644 new mode 100755 diff --git a/assets/graphics/tilemap/details.png b/assets/graphics/tilemap/details.png old mode 100644 new mode 100755 diff --git a/assets/graphics/tilemap/ground.png b/assets/graphics/tilemap/ground.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/axe/down.png b/assets/graphics/weapons/axe/down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/axe/full.png b/assets/graphics/weapons/axe/full.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/axe/left.png b/assets/graphics/weapons/axe/left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/axe/right.png b/assets/graphics/weapons/axe/right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/axe/up.png b/assets/graphics/weapons/axe/up.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/lance/down.png b/assets/graphics/weapons/lance/down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/lance/full.png b/assets/graphics/weapons/lance/full.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/lance/left.png b/assets/graphics/weapons/lance/left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/lance/right.png b/assets/graphics/weapons/lance/right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/lance/up.png b/assets/graphics/weapons/lance/up.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/rapier/down.png b/assets/graphics/weapons/rapier/down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/rapier/full.png b/assets/graphics/weapons/rapier/full.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/rapier/left.png b/assets/graphics/weapons/rapier/left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/rapier/right.png b/assets/graphics/weapons/rapier/right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/rapier/up.png b/assets/graphics/weapons/rapier/up.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sai/down.png b/assets/graphics/weapons/sai/down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sai/full.png b/assets/graphics/weapons/sai/full.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sai/left.png b/assets/graphics/weapons/sai/left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sai/right.png b/assets/graphics/weapons/sai/right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sai/up.png b/assets/graphics/weapons/sai/up.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sword/down.png b/assets/graphics/weapons/sword/down.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sword/full.png b/assets/graphics/weapons/sword/full.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sword/left.png b/assets/graphics/weapons/sword/left.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sword/right.png b/assets/graphics/weapons/sword/right.png old mode 100644 new mode 100755 diff --git a/assets/graphics/weapons/sword/up.png b/assets/graphics/weapons/sword/up.png old mode 100644 new mode 100755 diff --git a/code/AIController2D.gd b/code/AIController2D.gd index efbd446..ad80062 100644 --- a/code/AIController2D.gd +++ b/code/AIController2D.gd @@ -11,33 +11,33 @@ extends AIController2D @onready var move: int func get_obs() -> Dictionary: - var dict = {"obs":[ - player.position.x, - player.position.y, - player.health, - player.experience, - ]} - for bamboo in bamboos.get_children(): - dict["obs"].append(bamboo.position.x) - dict["obs"].append(bamboo.position.y) - dict["obs"].append(bamboo.health) - dict["obs"].append(bamboo.position.direction_to(player.position).x) - dict["obs"].append(bamboo.position.direction_to(player.position).y) - return dict + var dict = {"obs":[ + player.position.x, + player.position.y, + player.health, + player.experience, + ]} + for bamboo in bamboos.get_children(): + dict["obs"].append(bamboo.position.x) + dict["obs"].append(bamboo.position.y) + dict["obs"].append(bamboo.health) + dict["obs"].append(bamboo.position.direction_to(player.position).x) + dict["obs"].append(bamboo.position.direction_to(player.position).y) + return dict func get_reward() -> float: - return reward - + return reward + func get_action_space() -> Dictionary: - return { - "move" : { - "size": 5, - "action_type": "discrete" - } - } - + return { + "move" : { + "size": 5, + "action_type": "discrete" + } + } + func set_action(action) -> void: - move = action["move"] + move = action["move"] # -----------------------------------------------------------------------------# #-- Methods that can be overridden if needed --# diff --git a/code/bamboo.gd b/code/bamboo.gd index 3c44d52..cc6b15e 100644 --- a/code/bamboo.gd +++ b/code/bamboo.gd @@ -24,75 +24,75 @@ signal death func change_hp(dmg): - if not is_dead: - health += dmg - if health <= 0: - health = 0 - for body in attack.get_overlapping_bodies(): - body.change_hp(DAMAGE) - body.add_exp(EXP_AMOUNT) - is_dead = true - death.emit() + if not is_dead: + health += dmg + if health <= 0: + health = 0 + for body in attack.get_overlapping_bodies(): + body.change_hp(DAMAGE) + body.add_exp(EXP_AMOUNT) + is_dead = true + death.emit() func _on_notice_body_entered(body): - near_player = true - body.ai_controller.reward += 1 + near_player = true + body.ai_controller.reward += 1 - + func _on_notice_body_exited(body): - near_player = false + near_player = false func _on_attack_body_entered(body): - is_attacking = false - body.ai_controller.reward += 1 + is_attacking = false + body.ai_controller.reward += 1 func _on_attack_body_exited(body): - is_attacking = true + is_attacking = true func _physics_process(delta): - if near_player and not is_dead: - if not is_knocked: - for body in notice.get_overlapping_bodies(): - if self.to_local(body.global_position).x > 30: - velocity.x = SPEED - elif self.to_local(body.global_position).x < -30: - velocity.x = -SPEED - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - - if self.to_local(body.global_position).y > 30: - velocity.y = SPEED - elif self.to_local(body.global_position).y < -30: - velocity.y = -SPEED - else: - velocity.y = move_toward(velocity.y, 0, SPEED) + if near_player and not is_dead: + if not is_knocked: + for body in notice.get_overlapping_bodies(): + if self.to_local(body.global_position).x > 30: + velocity.x = SPEED + elif self.to_local(body.global_position).x < -30: + velocity.x = -SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + + if self.to_local(body.global_position).y > 30: + velocity.y = SPEED + elif self.to_local(body.global_position).y < -30: + velocity.y = -SPEED + else: + velocity.y = move_toward(velocity.y, 0, SPEED) - if not is_attacking: - for enemy in attack.get_overlapping_bodies(): - enemy.change_hp(-DAMAGE) - attack_timer.start() - is_attacking = true - - - else: - if can_move: - self.velocity = knockback - knockback_timer.start() - can_move = false - else: - velocity.x = move_toward(velocity.x, 0, SPEED) - velocity.y = move_toward(velocity.y, 0, SPEED) - - move_and_slide() + if not is_attacking: + for enemy in attack.get_overlapping_bodies(): + enemy.change_hp(-DAMAGE) + attack_timer.start() + is_attacking = true + + + else: + if can_move: + self.velocity = knockback + knockback_timer.start() + can_move = false + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + velocity.y = move_toward(velocity.y, 0, SPEED) + + move_and_slide() func _on_attack_timer_timeout(): - is_attacking = false + is_attacking = false func _on_knockback_timer_timeout(): - knockback = Vector2.ZERO - is_knocked = false - can_move = true - + knockback = Vector2.ZERO + is_knocked = false + can_move = true + func _on_death(): - animation_player.play("death") + animation_player.play("death") diff --git a/code/exp.gd b/code/exp.gd old mode 100644 new mode 100755 diff --git a/code/killzone.gd b/code/killzone.gd index 65bb34d..2a6fc2b 100644 --- a/code/killzone.gd +++ b/code/killzone.gd @@ -1,4 +1,4 @@ extends Area2D func _on_body_entered(body): - body.death.emit() + body.death.emit() diff --git a/code/main.gd b/code/main.gd index dc8dff7..e675e64 100644 --- a/code/main.gd +++ b/code/main.gd @@ -15,49 +15,49 @@ extends Node2D # Called when the node enters the scene tree for the first time. func _ready(): - main_camera.make_current() - for player in players.get_children(): - player_starting_pos.append(player.position) - for bamboo in bamboos.get_children(): - bamboo_starting_pos.append(bamboo.position) - timer.start() + main_camera.make_current() + for player in players.get_children(): + player_starting_pos.append(player.position) + for bamboo in bamboos.get_children(): + bamboo_starting_pos.append(bamboo.position) + timer.start() func _input(event): - if event.is_action_pressed("reset_camera"): - main_camera.make_current() - player_camera.visible = false + if event.is_action_pressed("reset_camera"): + main_camera.make_current() + player_camera.visible = false func _process(delta): - var dead_state = 0 - var i=0 - - for bamboo in bamboos.get_children(): - if bamboo.is_dead: - dead_state += 1 - - if dead_state == bamboos.get_children().size(): - for player in players.get_children(): - player.change_hp(-1000) - + var dead_state = 0 + var i=0 + + for bamboo in bamboos.get_children(): + if bamboo.is_dead: + dead_state += 1 + + if dead_state == bamboos.get_children().size(): + for player in players.get_children(): + player.change_hp(-1000) + func _on_player_death(): - var i = 0 - for player in players.get_children(): - player.ai_controller.done = true - player.ai_controller.needs_reset = true - player.ai_controller.reset() - player.position = player_starting_pos[i] - player.health = 100 - i += 1 - var j = 0 - for bamboo in bamboos.get_children(): - bamboo.position = bamboo_starting_pos[j] - bamboo.health = 40 - bamboo.is_dead = false - bamboo.animation_player.play("RESET") - j += 1 + var i = 0 + for player in players.get_children(): + player.ai_controller.done = true + player.ai_controller.needs_reset = true + player.ai_controller.reset() + player.position = player_starting_pos[i] + player.health = 100 + i += 1 + var j = 0 + for bamboo in bamboos.get_children(): + bamboo.position = bamboo_starting_pos[j] + bamboo.health = 40 + bamboo.is_dead = false + bamboo.animation_player.play("RESET") + j += 1 func _on_timer_timeout(): - for player in players.get_children(): - player.change_hp(-1000) - timer.start() - + for player in players.get_children(): + player.change_hp(-1000) + timer.start() + diff --git a/code/player.gd b/code/player.gd index 783ae3a..ca5ff10 100644 --- a/code/player.gd +++ b/code/player.gd @@ -26,165 +26,164 @@ signal death @onready var weapon = $Weapon @onready var weapon_player = $Weapon/AnimationPlayer - @export var health = 100 @export var experience = 0 func _ready(): - exp_label.text = "Experience\n"+str(experience) - hp_label.text = "Health\n"+str(health) - + exp_label.text = "Experience\n"+str(experience) + hp_label.text = "Health\n"+str(health) + func add_exp(exp_amount): - experience += exp_amount - ai_controller.reward = experience - exp_label.text = "Experience\n"+str(experience) + experience += exp_amount + ai_controller.reward = experience + exp_label.text = "Experience\n"+str(experience) - + func change_hp(dmg): - health += dmg - #ai_controller.reward += dmg/10 - if health <= 0: - health = 0 - add_exp(-1) - death.emit() - hp_label.text = "Health\n"+str(health) - + health += dmg + #ai_controller.reward += dmg/10 + if health <= 0: + health = 0 + add_exp(-1) + death.emit() + hp_label.text = "Health\n"+str(health) + func move_left(): - last_action = 1 - velocity.x = -SPEED + last_action = 1 + velocity.x = -SPEED func move_right(): - last_action = 3 - velocity.x = SPEED + last_action = 3 + velocity.x = SPEED func move_up(): - last_action = 2 - velocity.y = -SPEED + last_action = 2 + velocity.y = -SPEED func move_down(): - last_action = 0 - velocity.y = SPEED + last_action = 0 + velocity.y = SPEED func _physics_process(_delta): - velocity.x = move_toward(velocity.x, 0, SPEED) - velocity.y = move_toward(velocity.y, 0, SPEED) - - # Get the input direction and handle the movement/deceleration. - if not is_attacking: - # Handle and movement - ## X Axis - if Input.is_action_pressed("move_right") or ai_controller.move == 3: - move_right() - if Input.is_action_pressed("move_left") or ai_controller.move == 1: - move_left() + velocity.x = move_toward(velocity.x, 0, SPEED) + velocity.y = move_toward(velocity.y, 0, SPEED) + + # Get the input direction and handle the movement/deceleration. + if not is_attacking: + # Handle and movement + ## X Axis + if Input.is_action_pressed("move_right") or ai_controller.move == 3: + move_right() + if Input.is_action_pressed("move_left") or ai_controller.move == 1: + move_left() - ## Y Axis - if Input.is_action_pressed("move_up") or ai_controller.move == 2: - move_up() - if Input.is_action_pressed("move_down") or ai_controller.move == 0: - move_down() - - # Handle animations - if velocity.x > 0: - animated_sprite.play("move_right") - elif velocity.x < 0: - animated_sprite.play("move_left") - elif velocity.y > 0 : - animated_sprite.play("move_down") - elif velocity.y < 0: - animated_sprite.play("move_up") - - # Stop movement or change direction (left/right or up/down) - if Input.is_action_just_released("move_right"): - if Input.is_action_pressed("move_left"): - move_left() - else: - last_action = 3 - velocity.x = move_toward(velocity.x, 0, SPEED) - animated_sprite.play("idle_right") - if Input.is_action_just_released("move_left"): - if Input.is_action_pressed("move_right"): - move_right() - else: - last_action = 1 - velocity.x = move_toward(velocity.x, 0, SPEED) - animated_sprite.play("idle_left") - - if Input.is_action_just_released("move_up"): - if Input.is_action_pressed("move_down"): - move_down() - else: - last_action = 2 - velocity.y = move_toward(velocity.y, 0, SPEED) - animated_sprite.play("idle_up") - if Input.is_action_just_released("move_down"): - if Input.is_action_pressed("move_up"): - move_up() - else: - last_action = 0 - velocity.y = move_toward(velocity.y, 0, SPEED) - animated_sprite.play("idle_down") - - # Handle attacking and magic - if Input.is_action_just_pressed("attack") or ai_controller.move == 4: + ## Y Axis + if Input.is_action_pressed("move_up") or ai_controller.move == 2: + move_up() + if Input.is_action_pressed("move_down") or ai_controller.move == 0: + move_down() + + # Handle animations + if velocity.x > 0: + animated_sprite.play("move_right") + elif velocity.x < 0: + animated_sprite.play("move_left") + elif velocity.y > 0 : + animated_sprite.play("move_down") + elif velocity.y < 0: + animated_sprite.play("move_up") + + # Stop movement or change direction (left/right or up/down) + if Input.is_action_just_released("move_right"): + if Input.is_action_pressed("move_left"): + move_left() + else: + last_action = 3 + velocity.x = move_toward(velocity.x, 0, SPEED) + animated_sprite.play("idle_right") + if Input.is_action_just_released("move_left"): + if Input.is_action_pressed("move_right"): + move_right() + else: + last_action = 1 + velocity.x = move_toward(velocity.x, 0, SPEED) + animated_sprite.play("idle_left") + + if Input.is_action_just_released("move_up"): + if Input.is_action_pressed("move_down"): + move_down() + else: + last_action = 2 + velocity.y = move_toward(velocity.y, 0, SPEED) + animated_sprite.play("idle_up") + if Input.is_action_just_released("move_down"): + if Input.is_action_pressed("move_up"): + move_up() + else: + last_action = 0 + velocity.y = move_toward(velocity.y, 0, SPEED) + animated_sprite.play("idle_down") + + # Handle attacking and magic + if Input.is_action_just_pressed("attack") or ai_controller.move == 4: - is_attacking = true - if last_action == 1: - weapon.position = Vector2i(-54,14) - weapon.rotation_degrees = 90*last_action - animated_sprite.play("attack_left") - weapon_player.play("attack") - elif last_action == 2: - weapon.position = Vector2i(8,-44) - animated_sprite.play("attack_up") - weapon.rotation_degrees = 90*last_action - weapon_player.play("attack") - elif last_action == 3: - weapon.rotation_degrees = 90*last_action - weapon.position = Vector2i(54,14) - animated_sprite.play("attack_right") - weapon_player.play("attack") - else: - weapon.position = Vector2i(-12,52) - animated_sprite.play("attack_down") - weapon.rotation_degrees = 90*last_action - weapon_player.play("attack") + is_attacking = true + if last_action == 1: + weapon.position = Vector2i(-54,14) + weapon.rotation_degrees = 90*last_action + animated_sprite.play("attack_left") + weapon_player.play("attack") + elif last_action == 2: + weapon.position = Vector2i(8,-44) + animated_sprite.play("attack_up") + weapon.rotation_degrees = 90*last_action + weapon_player.play("attack") + elif last_action == 3: + weapon.rotation_degrees = 90*last_action + weapon.position = Vector2i(54,14) + animated_sprite.play("attack_right") + weapon_player.play("attack") + else: + weapon.position = Vector2i(-12,52) + animated_sprite.play("attack_down") + weapon.rotation_degrees = 90*last_action + weapon_player.play("attack") # - ## TODO: Fix magic - #elif Input.is_action_just_pressed("cast_magic"): - #is_attacking = true - #velocity.x = move_toward(velocity.x, 0, SPEED) - #velocity.y = move_toward(velocity.y, 0, SPEED) - #if last_action == 1: - #animated_sprite.play("attack_right") - #elif last_action == 2: - #animated_sprite.play("attack_left") - #elif last_action == 3: - #animated_sprite.play("attack_up") - #else: - #animated_sprite.play("attack_down") - - move_and_slide() - - else: - attack_cooldown() + ## TODO: Fix magic + #elif Input.is_action_just_pressed("cast_magic"): + #is_attacking = true + #velocity.x = move_toward(velocity.x, 0, SPEED) + #velocity.y = move_toward(velocity.y, 0, SPEED) + #if last_action == 1: + #animated_sprite.play("attack_right") + #elif last_action == 2: + #animated_sprite.play("attack_left") + #elif last_action == 3: + #animated_sprite.play("attack_up") + #else: + #animated_sprite.play("attack_down") + + move_and_slide() + + else: + attack_cooldown() func attack_cooldown(): - if cooldown_start == false: - attack_timer.start() - cooldown_start = true + if cooldown_start == false: + attack_timer.start() + cooldown_start = true # TODO: Find more elegant way to go back func _on_button_pressed(): - if not zoomed_in: - camera.visible = true - camera.make_current() - zoomed_in = true - else: - camera.visible = false - overworld.make_current() - zoomed_in = false - + if not zoomed_in: + camera.visible = true + camera.make_current() + zoomed_in = true + else: + camera.visible = false + overworld.make_current() + zoomed_in = false + func _on_attack_timer_timeout(): - is_attacking = false - cooldown_start = false - weapon_player.play("RESET") + is_attacking = false + cooldown_start = false + weapon_player.play("RESET") diff --git a/code/weapon.gd b/code/weapon.gd index 7151c3b..3bda96a 100644 --- a/code/weapon.gd +++ b/code/weapon.gd @@ -4,9 +4,9 @@ const DAMAGE = 20 const KNOCKBACK_STR = 120 func _on_body_entered(body): - var direction = self.global_position.direction_to(body.global_position) - var knockback_force = direction * KNOCKBACK_STR - if not body.is_dead: - body.change_hp(-DAMAGE) - body.knockback = knockback_force - body.is_knocked = true + var direction = self.global_position.direction_to(body.global_position) + var knockback_force = direction * KNOCKBACK_STR + if not body.is_dead: + body.change_hp(-DAMAGE) + body.knockback = knockback_force + body.is_knocked = true diff --git a/scenes/attack.tscn b/scenes/attack.tscn old mode 100644 new mode 100755 diff --git a/scenes/killzone.tscn b/scenes/killzone.tscn old mode 100644 new mode 100755 diff --git a/scenes/main.tscn b/scenes/main.tscn index c7acd44..e93f44a 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1395,7 +1395,7 @@ zoom = Vector2(0.21, 0.21) [node name="Sync" type="Node" parent="."] script = ExtResource("7_c27o5") -speed_up = 20.0 +speed_up = 100.0 [node name="WorldTimer" type="Timer" parent="."] unique_name_in_owner = true diff --git a/scenes/notice.tscn b/scenes/notice.tscn old mode 100644 new mode 100755 diff --git a/scenes/weapon.tscn b/scenes/weapon.tscn old mode 100644 new mode 100755 diff --git a/script_templates/AIController/controller_template.gd b/script_templates/AIController/controller_template.gd index ea1ddf1..5c569a1 100644 --- a/script_templates/AIController/controller_template.gd +++ b/script_templates/AIController/controller_template.gd @@ -6,28 +6,28 @@ extends _BASE_ #-- Methods that need implementing using the "extend script" option in Godot --# func get_obs() -> Dictionary: - assert(false, "the get_obs method is not implemented when extending from ai_controller") - return {"obs":[]} + assert(false, "the get_obs method is not implemented when extending from ai_controller") + return {"obs":[]} func get_reward() -> float: - assert(false, "the get_reward method is not implemented when extending from ai_controller") - return 0.0 - + assert(false, "the get_reward method is not implemented when extending from ai_controller") + return 0.0 + func get_action_space() -> Dictionary: - assert(false, "the get get_action_space method is not implemented when extending from ai_controller") - return { - "example_actions_continous" : { - "size": 2, - "action_type": "continuous" - }, - "example_actions_discrete" : { - "size": 2, - "action_type": "discrete" - }, - } - + assert(false, "the get get_action_space method is not implemented when extending from ai_controller") + return { + "example_actions_continous" : { + "size": 2, + "action_type": "continuous" + }, + "example_actions_discrete" : { + "size": 2, + "action_type": "discrete" + }, + } + func set_action(action) -> void: - assert(false, "the get set_action method is not implemented when extending from ai_controller") + assert(false, "the get set_action method is not implemented when extending from ai_controller") # -----------------------------------------------------------------------------# #-- Methods that can be overridden if needed --#