felflame 1.0.1 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -2
- data/.ruby-version +1 -0
- data/CHANGELOG.mdown +60 -5
- data/Gemfile +2 -3
- data/Gemfile.lock +4 -4
- data/README.mdown +127 -74
- data/Rakefile +30 -10
- data/bin/console +3 -3
- data/docs/FelFlame/ComponentManager.html +131 -519
- data/docs/FelFlame/Components.html +29 -119
- data/docs/FelFlame/Entities.html +125 -387
- data/docs/FelFlame/Order.html +251 -0
- data/docs/FelFlame/Scenes.html +72 -68
- data/docs/FelFlame/Stage.html +30 -56
- data/docs/FelFlame/Systems.html +208 -244
- data/docs/FelFlame.html +34 -32
- data/docs/Felflame_.html +143 -0
- data/docs/_index.html +24 -4
- data/docs/class_list.html +1 -1
- data/docs/file.README.html +145 -83
- data/docs/file.version.html +74 -0
- data/docs/index.html +145 -83
- data/docs/method_list.html +52 -108
- data/docs/top-level-namespace.html +5 -5
- data/felflame.gemspec +22 -22
- data/lib/felflame/component_manager.rb +99 -71
- data/lib/felflame/entity_manager.rb +84 -59
- data/lib/felflame/order.rb +24 -0
- data/lib/felflame/scene_manager.rb +23 -12
- data/lib/felflame/stage_manager.rb +10 -33
- data/lib/felflame/system_manager.rb +92 -47
- data/lib/felflame/version.rb +5 -1
- data/lib/felflame.rb +23 -15
- metadata +34 -53
- data/.yardopts +0 -13
- data/codeclimate/env.rb +0 -1
- data/codeclimate/export-coverage.rb +0 -16
- data/codeclimate/test-reporter-latest-linux-amd64 +0 -0
- data/deprecated/components/00_renderable.rb +0 -19
- data/deprecated/components/01_sprite.rb +0 -57
- data/deprecated/components/02_label.rb +0 -32
- data/deprecated/components/03_player_control.rb +0 -26
- data/deprecated/components/04_map.rb +0 -21
- data/deprecated/components/05_interactable.rb +0 -16
- data/deprecated/components/06_collidable.rb +0 -22
- data/deprecated/components/07_battle.rb +0 -4
- data/deprecated/components/07_indoor.rb +0 -4
- data/deprecated/components/07_overworld.rb +0 -16
- data/deprecated/components/debug_singleton.rb +0 -13
- data/deprecated/helpers/00_tileset.rb +0 -56
- data/deprecated/helpers/01_component.rb +0 -74
- data/deprecated/systems/00_update_levels.rb +0 -34
- data/deprecated/systems/10_player.rb +0 -41
- data/deprecated/systems/99_render.rb +0 -37
- data/logos/felflame-logo-text.png +0 -0
- data/logos/felflame-logo-text.svg +0 -172
- data/logos/felflame-logo.png +0 -0
- 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,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>
|
data/logos/felflame-logo.png
DELETED
Binary file
|