felflame 1.0.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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