felflame 1.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -2
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG.mdown +60 -5
  5. data/Gemfile +2 -3
  6. data/Gemfile.lock +4 -4
  7. data/README.mdown +127 -74
  8. data/Rakefile +30 -10
  9. data/bin/console +3 -3
  10. data/docs/FelFlame/ComponentManager.html +131 -519
  11. data/docs/FelFlame/Components.html +29 -119
  12. data/docs/FelFlame/Entities.html +125 -387
  13. data/docs/FelFlame/Order.html +251 -0
  14. data/docs/FelFlame/Scenes.html +72 -68
  15. data/docs/FelFlame/Stage.html +30 -56
  16. data/docs/FelFlame/Systems.html +208 -244
  17. data/docs/FelFlame.html +34 -32
  18. data/docs/Felflame_.html +143 -0
  19. data/docs/_index.html +24 -4
  20. data/docs/class_list.html +1 -1
  21. data/docs/file.README.html +145 -83
  22. data/docs/file.version.html +74 -0
  23. data/docs/index.html +145 -83
  24. data/docs/method_list.html +52 -108
  25. data/docs/top-level-namespace.html +5 -5
  26. data/felflame.gemspec +22 -22
  27. data/lib/felflame/component_manager.rb +99 -71
  28. data/lib/felflame/entity_manager.rb +84 -59
  29. data/lib/felflame/order.rb +24 -0
  30. data/lib/felflame/scene_manager.rb +23 -12
  31. data/lib/felflame/stage_manager.rb +10 -33
  32. data/lib/felflame/system_manager.rb +92 -47
  33. data/lib/felflame/version.rb +5 -1
  34. data/lib/felflame.rb +23 -15
  35. metadata +34 -53
  36. data/.yardopts +0 -13
  37. data/codeclimate/env.rb +0 -1
  38. data/codeclimate/export-coverage.rb +0 -16
  39. data/codeclimate/test-reporter-latest-linux-amd64 +0 -0
  40. data/deprecated/components/00_renderable.rb +0 -19
  41. data/deprecated/components/01_sprite.rb +0 -57
  42. data/deprecated/components/02_label.rb +0 -32
  43. data/deprecated/components/03_player_control.rb +0 -26
  44. data/deprecated/components/04_map.rb +0 -21
  45. data/deprecated/components/05_interactable.rb +0 -16
  46. data/deprecated/components/06_collidable.rb +0 -22
  47. data/deprecated/components/07_battle.rb +0 -4
  48. data/deprecated/components/07_indoor.rb +0 -4
  49. data/deprecated/components/07_overworld.rb +0 -16
  50. data/deprecated/components/debug_singleton.rb +0 -13
  51. data/deprecated/helpers/00_tileset.rb +0 -56
  52. data/deprecated/helpers/01_component.rb +0 -74
  53. data/deprecated/systems/00_update_levels.rb +0 -34
  54. data/deprecated/systems/10_player.rb +0 -41
  55. data/deprecated/systems/99_render.rb +0 -37
  56. data/logos/felflame-logo-text.png +0 -0
  57. data/logos/felflame-logo-text.svg +0 -172
  58. data/logos/felflame-logo.png +0 -0
  59. data/logos/felflame-logo.svg +0 -97
@@ -1,26 +0,0 @@
1
-
2
- FelFlame::Components.new :PlayerControl, north: 'up', south: 'down', east: 'right',
3
- west: 'left', interact: 'space', menu: 'enter'
4
- =begin
5
- class Components
6
- # Gives control(keyboard or otherwise) over an object
7
- class PlayerControl < Helper::BaseComponent
8
- attr_accessor :north, :south, :east, :west, :interact, :menu
9
-
10
- def initialize
11
- @north = 'up'
12
- @south = 'down'
13
- @east = 'right'
14
- @west = 'left'
15
- @interact = 'space'
16
- @menu = 'enter'
17
- end
18
-
19
- def set(**opts)
20
- opts.each do |key, value|
21
- send "#{key}=", value
22
- end
23
- end
24
- end
25
- end
26
- =end
@@ -1,21 +0,0 @@
1
- class Components
2
- # dragonruby label wrapper
3
- class Map < Helper::BaseComponent
4
-
5
- attr_accessor :json_name, :json, :x, :y, :tilewidth, :tileheight, :a, :r, :g, :b
6
-
7
- def set(json_name: @json_name, x: @x, y: @y, tilewidth: @tilewidth,
8
- tileheight: @tileheight, a: @a, r: @r, g: @g, b: @b)
9
- { json_name: @json_name = json_name,
10
- json: @json = Helper.get_json_tiles(json_name),
11
- x: @x = x,
12
- y: @y = y,
13
- tilewidth: @tilewidth = tilewidth,
14
- tileheight: @tileheight = tileheight,
15
- r: @r = r,
16
- g: @g = g,
17
- b: @b = b,
18
- a: @a = a }
19
- end
20
- end
21
- end
@@ -1,16 +0,0 @@
1
- class Components
2
- # If an entity can be rendered on screen
3
- class Interactable < Helper::BaseComponent
4
- attr_accessor :z
5
-
6
- def initialize
7
- @z = z
8
- end
9
-
10
- def set(**opts)
11
- opts.each do |key, value|
12
- self.send "#{key}=", value
13
- end
14
- end
15
- end
16
- end
@@ -1,22 +0,0 @@
1
- class Components
2
- # If an entity can be rendered on screen
3
- class Collidable < Helper::BaseComponent
4
- class <<self
5
- def add(entity_id)
6
- super(entity_id)
7
- #add to grid?
8
- end
9
- end
10
- attr_accessor :grid
11
-
12
- def initialize
13
- @grid = [[]]
14
- end
15
-
16
- def set(**opts)
17
- opts.each do |key, value|
18
- self.send "#{key}=", value
19
- end
20
- end
21
- end
22
- end
@@ -1,4 +0,0 @@
1
- class Components
2
- class Battle < Helper::Level
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- class Components
2
- class Indoor < Helper::Level
3
- end
4
- end
@@ -1,16 +0,0 @@
1
- class Components
2
- class Overworld < Helper::Level
3
- attr_accessor :x, :y
4
-
5
- def initialize
6
- @x = 0
7
- @y = 0
8
- end
9
-
10
- def set(**opts)
11
- opts.each do |key, value|
12
- self.send "#{key}=", value
13
- end
14
- end
15
- end
16
- end
@@ -1,13 +0,0 @@
1
- class Components
2
- # If an entity can be rendered on screen
3
- class DebugSingleton
4
- class <<self
5
- @data = false
6
- attr_accessor :data
7
-
8
- def id
9
- 0
10
- end
11
- end
12
- end
13
- end
@@ -1,56 +0,0 @@
1
- # Coverage Ignored because the functionality of this
2
- # code will not be used for the core of FelFlame.
3
- # It will most likely be released as a seperate package
4
- # The code will most likely be kept here until it
5
- # eventually will be migrated to a new git repo
6
- # :nocov:
7
- class Helper
8
- # Returns a loaded map and its dependecies(images,json)
9
- # If any are missing then it will load them from files
10
-
11
- @json_data = {}
12
- class <<self
13
- attr_accessor :json_data
14
-
15
- def get_json_tiles(json_name, hitbox: false)
16
- unless hitbox
17
- return nil if json_name == 'hitbox' && !Components::DebugSingleton.data
18
- end
19
-
20
- if self.json_data[json_name].nil?
21
- self.json_data[json_name] = $gtk.parse_json_file "assets/json/#{json_name}.json"
22
- raise Exception.new "#{json_name} is null and not loaded. Cannot get json tile" if self.json_data[json_name].nil?
23
-
24
- if self.json_data[json_name]['type'] == 'map' #json_name.split("_").first == 'map'
25
- self.json_data[json_name]['tilesets'].each do |tileset|
26
- tileset = Helper.get_json_tiles(tileset['source'].split('/').last.delete_suffix('.tsx'))
27
- # download tileset here
28
- # $gtk.args.gtk.http_get 'https://mysite.net/#{tileset['name']}.png'
29
- end
30
- end
31
- end
32
- self.json_data[json_name]
33
- end
34
-
35
- def get_tile(json_name:, tile_index:)
36
- if json_name == 'hitbox' && !Components::DebugSingleton.data
37
- return tile_index - 1 if tile_index > 1
38
- return {}
39
- end
40
-
41
- json_tiles = self.get_json_tiles(json_name)
42
- raise Exception.new "Error, json file not a tileset" unless json_tiles['type'] == 'tileset'
43
- return tile_index - json_tiles['tilecount'] if tile_index > json_tiles['tilecount']
44
- source_height_tiles = (tile_index.to_i / json_tiles['columns'].to_i).to_i# * json_tiles['tileheight']
45
- { w: json_tiles['tilewidth'],
46
- h: json_tiles['tileheight'],
47
- path: json_tiles['image'].split('mygame/').last.delete('\\'),
48
- source_x: [((tile_index % json_tiles['columns']) - 1) * json_tiles['tilewidth'], 0].max,
49
- # source_y gets special treatment
50
- source_y: [json_tiles['imageheight'] - ((source_height_tiles + 1) * json_tiles['tileheight']), 0].max,
51
- source_w: json_tiles['tilewidth'],
52
- source_h: json_tiles['tileheight'] }
53
- end
54
- end
55
- end
56
- # :nocov:
@@ -1,74 +0,0 @@
1
- class FelFlame
2
- class Helper
3
-
4
- =begin
5
- # Unused:
6
- class Level < FelFlame::Helper::ComponentManager
7
- class <<self
8
- def data
9
- @data ||= { add: [], remove: [], grid: FelFlame::Helper::Array2D.new }
10
- end
11
-
12
- def add(entity_id)
13
- super
14
- data[:add].push entity_id
15
- end
16
-
17
- def remove(entity_id)
18
- data[:remove].push entity_id
19
- super
20
- end
21
- end
22
- end
23
- =end
24
- =begin
25
- class Array2D < Array
26
- def [](val)
27
- unless val.nil?
28
- return self[val] = [] if super.nil?
29
- end
30
- super
31
- end
32
- end
33
- =end
34
- =begin
35
- class ArrayOfHashes < Array
36
- def [](val)
37
- unless val.nil?
38
- return self[val] = {} if super.nil?
39
- end
40
- super
41
- end
42
- end
43
- =end
44
-
45
- =begin
46
- module ComponentHelper
47
- class <<self
48
- def up? char
49
- char == char.upcase
50
- end
51
-
52
- def down? char
53
- char == char.downcase
54
- end
55
-
56
- def underscore(input)
57
- output = input[0].downcase
58
- (1...(input.length - 1)).each do |iter|
59
- if down?(input[iter]) && up?(input[iter + 1])
60
- output += "#{input[iter].downcase}_"
61
- elsif up?(input[iter - 1]) && up?(input[iter]) && down?(input[iter + 1])
62
- output += "_#{input[iter].downcase}"
63
- else
64
- output += input[iter].downcase
65
- end
66
- end
67
- output += input[-1].downcase unless input.length == 1
68
- output
69
- end
70
- end
71
- end
72
- =end
73
- end
74
- end
@@ -1,34 +0,0 @@
1
- class Systems
2
- class UpdateLevels
3
- @co = Components::Overworld
4
- def self.run
5
- @co.data[:add].each do |id|
6
- @co.data[:add].delete(id)
7
- if !(Components::Sprite.id & Entity.signatures[id]).zero?
8
- @co.data[:grid][@co.data[id].x][@co.data[id].y] = {} if @co.data[:grid][@co.data[id].x][@co.data[id].y].nil?
9
- #@co.data[:grid][@co.data[id].x][@co.data[id].y].merge!({ player: true })
10
- puts @co.data[:grid][@co.data[id].x][@co.data[id].y].inspect
11
- elsif !(Components::Map.id & Entity.signatures[id]).zero?
12
- if Components::Map.data[id].json['tilesets'].last['source'].split('/').last.delete('\\').delete_suffix('.tsx') == 'hitbox'
13
- Components::Map.data[id].json['layers'].each do |layer|
14
- layer['chunks'].each do |chunk|
15
- chunk['data'].each_slice(chunk['width']).with_index do |row, row_index|
16
- row.each_with_index do |tile, column_index|
17
- if tile.to_i == Components::Map.data[id].json['tilesets'].last['firstgid'].to_i
18
- @co.data[:grid][column_index][row_index] = {} if @co.data[:grid][column_index][row_index].nil?
19
- @co.data[:grid][column_index][row_index].merge!({ hitbox: true })
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
27
- puts @co.data[:grid]
28
- end
29
- Components::Overworld.data[:remove].each do |id|
30
- Components::Overworld.data[:remove].delete(id)
31
- end
32
- end
33
- end
34
- end
@@ -1,41 +0,0 @@
1
- class Systems
2
- class Player
3
- @co = Components::Overworld
4
- def self.run
5
- Components::PlayerControl.data.each do |id, data|
6
- puts6 "Right: #{@co.data[:grid][@co.data[id].x+1][@co.data[id].y]}"
7
- puts6 "Left #{@co.data[:grid][@co.data[id].x-1][@co.data[id].y]}"
8
- puts6 "Down #{@co.data[:grid][@co.data[id].x][@co.data[id].y+1]}"
9
- puts6 "Up #{@co.data[:grid][@co.data[id].x][@co.data[id].y-1]}"
10
- #puts6 @co.data[:grid][@co.data[id].x + 1][@co.data[id].y][:hitbox].nil?
11
-
12
- if !(Components::Sprite.id & Entity.signatures[id]).zero?
13
- if $gtk.args.inputs.keyboard.key_down.send(data.north) &&\
14
- (@co.data[:grid][@co.data[id].x][@co.data[id].y - 1].nil? ||\
15
- @co.data[:grid][@co.data[id].x][@co.data[id].y - 1][:hitbox].nil?)
16
- Components::Sprite.data[id].y -= 64
17
- @co.data[id].y -= 1
18
- elsif $gtk.args.inputs.keyboard.key_down.send(data.south) &&\
19
- (@co.data[:grid][@co.data[id].x][@co.data[id].y + 1].nil? ||\
20
- @co.data[:grid][@co.data[id].x][@co.data[id].y + 1][:hitbox].nil?)
21
- Components::Sprite.data[id].y += 64
22
- @co.data[id].y += 1
23
- elsif $gtk.args.inputs.keyboard.key_down.send(data.east) &&\
24
- (@co.data[:grid][@co.data[id].x + 1][@co.data[id].y].nil? ||\
25
- @co.data[:grid][@co.data[id].x + 1][@co.data[id].y][:hitbox].nil?)
26
- Components::Sprite.data[id].x += 64
27
- @co.data[id].x += 1
28
- elsif $gtk.args.inputs.keyboard.key_down.send(data.west) &&\
29
- (@co.data[:grid][@co.data[id].x - 1][@co.data[id].y].nil? || @co.data[:grid][@co.data[id].x - 1][@co.data[id].y][:hitbox].nil?)
30
- Components::Sprite.data[id].x -= 64
31
- @co.data[id].x -= 1
32
- end
33
- #Components::Sprite.data[id].y -= 64 if $gtk.args.inputs.keyboard.key_down.send(data.north)
34
- #Components::Sprite.data[id].y += 64 if $gtk.args.inputs.keyboard.key_down.send(data.south)
35
- #Components::Sprite.data[id].x += 64 if $gtk.args.inputs.keyboard.key_down.send(data.east)
36
- #Components::Sprite.data[id].x -= 64 if $gtk.args.inputs.keyboard.key_down.send(data.west)
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,37 +0,0 @@
1
- class Systems
2
- class Render
3
- def self.run
4
- Components::Renderable.data.sort_by { |v| v[1].z }.each do |key, data|
5
- if !(Components::Sprite.id & Entity.signatures[key]).zero?
6
- $gtk.args.outputs.sprites << Components::Sprite.data[key].set
7
- elsif !(Components::Label.id & Entity.signatures[key]).zero?
8
- $gtk.args.outputs.labels << Components::Label.data[key].set
9
- elsif !(Components::Map.id & Entity.signatures[key]).zero?
10
- Components::Map.data[key].json['layers'].each do |layer|
11
- layer['chunks'].each do |chunk|
12
- chunk['data'].each_slice(chunk['width']).with_index do |row, row_index|
13
- row.each_with_index do |tile, column_index|
14
- unless tile.zero?
15
- iter = 0
16
- loop do
17
- tile = Helper.get_tile(json_name: Components::Map.data[key].json['tilesets'][iter]['source'].split('/').last.delete('\\').delete_suffix('.tsx'), tile_index: tile)
18
- break if tile.is_a?(Hash)
19
- raise Exception.new "#{Components::Map.data[key].json['json_name']} not valid map, exceeded tile range" if (iter += 1) >= Components::Map.data[key].json['tilesets'].count
20
- end
21
- unless tile.empty?
22
- tile[:x] = Components::Map.data[key].x + (Components::Map.data[key].tilewidth * column_index) + chunk['x']
23
- tile[:y] = Components::Map.data[key].y + (Components::Map.data[key].tileheight * row_index) + chunk['y']
24
- tile[:w] = Components::Map.data[key].tilewidth
25
- tile[:h] = Components::Map.data[key].tileheight
26
- $gtk.args.outputs.sprites << tile
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
Binary file
@@ -1,172 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
-
4
- <svg
5
- width="408.86401mm"
6
- height="179.90401mm"
7
- viewBox="0 0 408.86401 179.90401"
8
- version="1.1"
9
- id="svg5"
10
- inkscape:version="1.2-dev (25cba68356, 2021-05-16, custom)"
11
- sodipodi:docname="felflame-logo-text.svg"
12
- inkscape:export-filename="/home/tradam/Documents/felflame-logo-text.png"
13
- inkscape:export-xdpi="67.093208"
14
- inkscape:export-ydpi="67.093208"
15
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
16
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
17
- xmlns:xlink="http://www.w3.org/1999/xlink"
18
- xmlns="http://www.w3.org/2000/svg"
19
- xmlns:svg="http://www.w3.org/2000/svg">
20
- <sodipodi:namedview
21
- id="namedview7"
22
- pagecolor="#505050"
23
- bordercolor="#eeeeee"
24
- borderopacity="1"
25
- inkscape:pageshadow="0"
26
- inkscape:pageopacity="0"
27
- inkscape:pagecheckerboard="0"
28
- inkscape:document-units="mm"
29
- showgrid="false"
30
- showborder="true"
31
- inkscape:object-paths="true"
32
- inkscape:snap-smooth-nodes="false"
33
- inkscape:zoom="0.5"
34
- inkscape:cx="885"
35
- inkscape:cy="100"
36
- inkscape:window-width="1670"
37
- inkscape:window-height="1029"
38
- inkscape:window-x="670"
39
- inkscape:window-y="1425"
40
- inkscape:window-maximized="0"
41
- inkscape:current-layer="g7470"
42
- fit-margin-top="15"
43
- fit-margin-left="15"
44
- fit-margin-right="0"
45
- fit-margin-bottom="15"
46
- inkscape:snap-text-baseline="true"
47
- inkscape:snap-global="true" />
48
- <defs
49
- id="defs2" />
50
- <g
51
- inkscape:label="Layer 1"
52
- inkscape:groupmode="layer"
53
- id="layer1"
54
- transform="translate(-5.925697,16.359175)">
55
- <g
56
- id="g5942"
57
- transform="matrix(0.7150444,0,0,0.7150444,7.9079079,19.106173)"
58
- style="fill:#005522" />
59
- <g
60
- id="g7470"
61
- transform="translate(45.740503,25.047998)">
62
- <ellipse
63
- style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#1c241c;fill-opacity:0.7;fill-rule:evenodd;stroke:none;stroke-width:1.24602;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:7.2;stroke-dasharray:none;stroke-dashoffset:3.8766;stroke-opacity:1;paint-order:normal;stop-color:#000000;stop-opacity:1"
64
- id="path6921"
65
- ry="11.676038"
66
- rx="54.259499"
67
- cy="111.82079"
68
- cx="29.444693" />
69
- <g
70
- id="g5900"
71
- transform="matrix(0.94670406,0,0,0.94670406,-1.3225283,-1.4073951)">
72
- <path
73
- id="path846"
74
- style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00ff66;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.79999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:7.2;stroke-dasharray:none;stroke-dashoffset:3.8766;stroke-opacity:1;paint-order:normal;stop-color:#000000;stop-opacity:1"
75
- d="m 48.043994,-26.407173 c -35.640626,21.8403454 -59.4465,56.770237 -59.4465,101.334381 3e-5,44.723632 35.927436,44.724922 44.724917,44.724922 8.797481,0 44.72492,-0.0806 44.72492,-44.724922 0,-43.365499 -48.544546,-56.571942 -30.003337,-101.334381 z"
76
- sodipodi:nodetypes="cczcc" />
77
- <path
78
- id="path4245"
79
- style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#00d455;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:18.1417;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:7.2;stroke-dasharray:none;stroke-dashoffset:3.8766;stroke-opacity:1;paint-order:normal;stop-color:#000000;stop-opacity:1"
80
- d="M 181.58398,-99.806641 C 46.879256,-17.260453 -43.095703,114.75804 -43.095703,283.18945 c 1.13e-4,169.0342 135.78874,169.03907 169.039063,169.03907 3.33332,0 7.73446,-0.012 12.88867,-0.1875 -46.385395,-1.56991 -155.927631,-17.00003 -155.927733,-168.85157 0,-153.77238 79.303367,-290.0927365 194.863233,-373.226336 3.81607,-9.769753 0,0 3.81645,-9.769755 z"
81
- transform="scale(0.26458333)"
82
- sodipodi:nodetypes="ccscccc" />
83
- </g>
84
- <g
85
- id="g5904"
86
- transform="matrix(0.94111257,0,0,0.94111257,3.0800803,7.5916104)">
87
- <path
88
- id="path846-3"
89
- style="font-variation-settings:normal;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.61297;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:7.2;stroke-dasharray:none;stroke-dashoffset:3.8766;stroke-opacity:1;paint-order:normal;stop-color:#000000"
90
- d="M 52.149066,-3.2818086 C 70.471317,22.295981 76.75521,53.486612 63.710707,84.389882 56.651708,101.11305 36.733365,109.54332 19.604384,102.31307 2.4754112,95.082796 -5.5490668,75.335735 1.6811862,58.206753 14.374829,28.134691 51.904029,33.186223 52.149066,-3.2818086 Z"
91
- sodipodi:nodetypes="ccccc" />
92
- <path
93
- id="path4266"
94
- style="font-variation-settings:normal;vector-effect:none;fill:#1c241c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:13.6553;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:7.2;stroke-dasharray:none;stroke-dashoffset:3.8766;stroke-opacity:1;paint-order:normal;stop-color:#000000"
95
- d="M 197.09961,-12.404297 C 196.17349,125.42763 54.329488,106.33595 6.3535156,219.99414 -20.973425,284.7336 9.3562784,359.36829 74.095703,386.69531 c 20.124509,8.49468 41.266977,11.26604 61.652347,9.15821 -11.99594,-1.24491 -23.99476,-4.23747 -35.65235,-9.15821 C 35.356265,359.36829 5.0265759,284.7336 32.353516,219.99414 75.872098,116.89584 196.62125,123.02178 219.375,22.177734 212.5918,10.387797 205.1587,-1.1538421 197.09961,-12.404297 Z"
96
- transform="scale(0.26458333)" />
97
- </g>
98
- <g
99
- id="g10504"
100
- transform="translate(-67.885213,43.329639)">
101
- <g
102
- id="g10530">
103
- <text
104
- xml:space="preserve"
105
- style="font-size:70.5556px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;stroke-width:0.264583"
106
- id="text16309"><textPath
107
- xlink:href="#path8946"
108
- startOffset="50%"
109
- id="textPath16307"><tspan
110
- id="tspan16305"
111
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle;stroke-width:0.264583"><tspan
112
- style="fill:#00ff66;fill-opacity:1"
113
- id="tspan16301">F</tspan>el<tspan
114
- style="fill:#00ff66;fill-opacity:1"
115
- id="tspan16303">F</tspan>lame</tspan></textPath></text>
116
- <g
117
- aria-label="FelFlame"
118
- id="text2900"
119
- style="font-size:70.5556px;line-height:1.25;letter-spacing:0px;stroke-width:0.264583">
120
- <path
121
- d="m 163.3819,-24.820664 q -3.75224,0.869143 -7.23224,2.237747 -3.41434,1.342781 -5.72646,2.403719 l 2.96961,7.55094 q 3.66682,9.3237686 6.3184,12.98154649 l 0.18076,0.4596224 -8.86415,3.48606591 -0.18076,-0.4596224 q -0.55044,-4.48410465 -4.19144,-13.7422131 l -7.20454,-18.3192363 q -3.641,-9.258108 -6.29258,-12.915886 l -0.18076,-0.459622 26.51498,-10.655179 0.32101,5.635754 -0.45962,0.180759 q -4.54976,0.576265 -9.93391,2.693727 -5.38415,2.117462 -6.84269,2.842705 0.51204,2.073102 6.2705,16.715358 l 15.23541,-6.370816 -0.2419,5.553872 z"
122
- style="fill:#00ff66"
123
- id="path19193" />
124
- <path
125
- d="m 197.32692,-10.137557 q -7.20751,1.7132745 -12.31804,-1.785819 -5.11053,-3.499094 -6.84012,-10.775244 -1.74591,-7.344794 1.47917,-13.913144 3.22508,-6.568349 9.95209,-8.167405 12.28709,-2.920725 15.89312,12.249363 l -1.95238,3.074871 -18.25902,4.340294 q 1.37062,5.766006 4.52708,8.061601 3.15645,2.295595 7.34367,1.300264 1.64743,-0.391605 4.43928,-2.07055 2.77554,-1.747587 4.78306,-3.67522 l 2.33611,2.200509 q -0.99419,1.614236 -4.81625,5.06102 -3.75341,3.430468 -6.56777,4.09946 z m -8.14663,-30.915762 q -2.883,0.68531 -4.15177,2.364814 -0.87997,2.094738 -0.98237,5.019941 -0.10239,2.925203 0.38711,4.984491 l 13.94127,-3.894107 q -2.39859,-10.090511 -9.19424,-8.475139 z"
126
- style="font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle"
127
- id="path19195" />
128
- <path
129
- d="m 227.39129,-16.019152 -9.03046,1.136292 -0.1057,-0.840043 q 0.74964,-3.649924 -0.20168,-11.210313 l -3.67313,-29.191501 q -0.70468,-5.600288 -4.31241,-8.275257 l -0.10571,-0.840043 9.37909,-2.886846 0.50811,0.647185 q 0.0454,2.05653 1.48121,13.467117 l 3.37318,26.242541 q 0.95132,7.560389 2.5818,10.910825 z"
130
- style="font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle"
131
- id="path19197" />
132
- <path
133
- d="m 260.90643,-39.860583 q -3.81425,-0.534992 -7.55358,-0.506101 -3.66878,0.02835 -6.20762,0.189076 l 0.0627,8.113652 q 0.0774,10.018597 1.24005,14.384192 l 0.004,0.493875 -9.52472,0.07359 -0.004,-0.493875 q 1.09506,-4.383038 1.0182,-14.331081 l -0.15208,-19.684426 q -0.0769,-9.948043 -1.23952,-14.313638 l -0.004,-0.493875 28.57253,-0.432428 -1.72241,5.375693 -0.49387,0.0038 q -4.4536,-1.094514 -10.23898,-1.049816 -5.78539,0.0447 -7.40703,0.198344 -0.26586,2.118785 -0.1443,17.852215 l 16.50679,-0.480323 -2.21846,5.097296 z"
134
- style="fill:#00ff66"
135
- id="path19199" />
136
- <path
137
- d="m 283.31547,-15.436956 -9.06607,-0.804226 0.0748,-0.843356 q 1.50647,-3.407998 2.17977,-10.998198 l 2.59971,-29.306606 q 0.49874,-5.622371 -2.45981,-9.001453 l 0.0748,-0.843355 9.77793,-0.832611 0.35934,0.740202 q -0.39164,2.019406 -1.40783,13.474986 l -2.26758,26.361096 q -0.67331,7.5902 0.20973,11.210165 z"
138
- style="font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle"
139
- id="path19201" />
140
- <path
141
- d="m 312.35784,-25.845813 q -2.70925,-1.465672 -6.47918,-2.016827 -3.70011,-0.540949 -5.54915,0.400922 -1.28195,1.452611 -1.68001,4.175335 -0.38785,2.652912 0.85369,4.403146 1.24154,1.750234 3.40576,2.066638 2.23403,0.326611 4.70118,-0.453587 2.47735,-0.850012 3.78829,-2.013162 z m -0.35273,10.216443 q -4.94246,4.0549 -10.3181,3.268993 -5.30582,-0.7757 -8.0408,-3.528633 -2.66516,-2.742727 -1.92008,-7.83911 0.75529,-5.166196 4.64239,-6.879691 3.95691,-1.703288 10.51937,-0.74387 l 6.11297,1.10762 0.58177,-3.979367 q 0.54095,-3.700114 -0.93738,-6.269329 -1.47834,-2.569215 -5.17845,-3.110164 -2.73293,-0.328243 -9.49217,3.960187 -1.64695,-2.879088 -1.88252,-7.120561 7.23814,-1.22358 13.03266,-0.376434 5.79451,0.847147 8.8463,4.359454 3.05179,3.512308 2.24547,9.027571 l -1.7147,11.728661 q -0.38949,3.151812 0.12003,6.007222 0.58954,2.795804 1.97234,4.06755 l 0.0376,0.718548 -7.73541,0.723046 q -0.58097,-2.366716 -0.89125,-5.121693 z"
142
- style="font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle"
143
- id="path19203" />
144
- <path
145
- d="m 361.21774,-25.21257 -2.67715,12.486799 q -1.18328,5.5190273 -0.93238,9.3972464 l -0.10353,0.4829149 -8.5545,-1.8340723 0.10354,-0.4829148 q 1.81874,-3.434492 3.00201,-8.9535192 l 2.36654,-11.038055 q 0.84308,-3.932307 0.19283,-5.947854 -0.63546,-2.084535 -3.73992,-2.750126 -3.10445,-0.665591 -9.10186,1.72868 l -2.79548,13.038702 q -1.43472,6.691821 -0.41027,11.6739545 l -0.10354,0.4829149 -9.6583,-2.0707268 0.10354,-0.4829149 q 1.91234,-3.1979467 3.13998,-8.9239377 l 2.51446,-11.727933 q 0.63601,-2.966477 6.5e-4,-6.061215 -0.55157,-3.148934 -1.93122,-4.454955 l 0.1085,-0.842645 9.49593,-0.201014 0.26602,0.778623 q 0.005,2.670878 -0.28147,5.351579 2.94208,-1.60615 4.15439,-2.212141 1.29609,-0.660187 3.43482,-1.211872 2.20772,-0.536893 3.93242,-0.16712 7.10574,1.523463 7.85899,8.107108 8.42214,-4.616455 12.42343,-3.758582 4.82915,1.035363 6.8393,4.785649 2.01014,3.750286 0.73812,9.683241 l -2.12989,9.934249 q -1.40513,6.5538446 -0.34128,11.688745 l -0.10354,0.4829149 -9.72728,-2.08551772 0.10353,-0.48291489 q 1.91234,-3.19794669 3.13999,-8.92393749 l 2.26301,-10.5551398 q 1.73053,-8.071577 -3.30558,-9.151313 -4.20826,-0.902246 -9.87552,1.634968 -0.21701,1.68529 -0.40929,2.582132 z"
146
- style="font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle"
147
- id="path19205" />
148
- <path
149
- d="m 400.76163,8.5291819 q -7.16225,-1.8935634 -10.01455,-7.3913425 -2.8523,-5.4977791 -0.9407,-12.7282454 1.92963,-7.298679 7.87433,-11.565395 5.94471,-4.266717 12.62948,-2.499391 12.20994,3.228075 8.22444,18.3029161 l -3.17307,1.7883745 -18.14438,-4.7970276 q -1.51485,5.7298042 0.18336,9.2439279 1.6982,3.5141237 5.85913,4.6141938 1.63709,0.4328145 4.89089,0.2713404 3.27183,-0.229686 5.95172,-0.9807711 l 1.02001,3.0429025 q -1.63867,0.9533823 -6.63543,2.1866286 -4.92854,1.2512802 -7.72523,0.5118888 z m 7.41904,-31.0983869 q -2.8649,-0.757425 -4.77642,0.123821 -1.76491,1.430866 -3.2366,3.960971 -1.47168,2.530104 -2.0127,4.576463 l 14.12772,3.151261 q 2.65099,-10.027156 -4.102,-11.812516 z"
150
- style="font-size:70.5556px;font-family:Asul;-inkscape-font-specification:Asul;text-align:center;text-anchor:middle"
151
- id="path19207" />
152
- </g>
153
- <path
154
- id="path838"
155
- style="font-size:70.5556px;line-height:1.25;letter-spacing:0px;fill:#00d455;fill-opacity:1;stroke-width:0.264583"
156
- d="m 159.49288,-52.253005 -26.51518,10.655162 0.18087,0.45992 c 1.76772,2.438519 3.86531,6.743935 6.29264,12.916008 l 7.20421,18.3192947 c 2.42734,6.1720721 3.82452,10.75239313 4.19148,13.7417959 l 0.18086,0.4599199 1.14567,-0.4506171 c -0.58682,-2.93751539 -1.89545,-6.988974 -3.93051,-12.1635995 l -7.20421,-18.3192939 c -2.42733,-6.172073 -4.52492,-10.477489 -6.29264,-12.916008 l -0.18087,-0.45992 25.0517,-10.067086 z m 4.59042,21.697899 -15.23529,6.370627 1.58754,1.587545 13.54801,-5.665288 z"
157
- sodipodi:nodetypes="ccccccccccccccccccc" />
158
- <path
159
- style="fill:none;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
160
- d="m 125.46431,18.025536 c 0,0 52.56445,-35.227404 125.89097,-35.227404 73.32652,0 185.57913,35.227404 185.57913,35.227404"
161
- id="path8946"
162
- sodipodi:nodetypes="czc" />
163
- <path
164
- id="path844"
165
- style="font-size:70.5556px;line-height:1.25;letter-spacing:0px;fill:#00d455;fill-opacity:1;stroke-width:0.264583"
166
- d="m 267.11835,-66.861416 -28.57241,0.432014 0.004,0.494027 c 0.77508,2.910397 1.18793,7.681826 1.2392,14.313856 l 0.15245,19.684068 c 0.0512,6.63203 -0.28851,11.4094 -1.01855,14.331426 l 0.004,0.493509 1.82417,-0.01395 c 0.56344,-2.963405 0.82296,-7.369797 0.77774,-13.223484 l -0.15245,-19.684068 c -0.0513,-6.63203 -0.46412,-11.403459 -1.2392,-14.313856 l -0.004,-0.494027 26.46608,-0.399975 z m -3.49953,21.899954 -16.50702,0.480076 c 0.004,0.548283 1.58267,1.01188 1.58757,1.587497 l 14.19913,-0.412893 z"
167
- sodipodi:nodetypes="ccccccccccccccccccc" />
168
- </g>
169
- </g>
170
- </g>
171
- </g>
172
- </svg>
Binary file