code:
buildscript {
    repositories {
        mavenCentral()
        maven { url = 'http://files.minecraftforge.net/maven' }
        maven { url = 'https://repo.spongepowered.org/maven' }
    }
    dependencies {
        classpath files('forgegradle/ForgeGradle-2.1.2.jar')
        classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
    }
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'eclipse'

version = mod_version
group = mod_group
archivesBaseName = mod_id

sourceCompatibility = targetCompatibility = '1.8'
compileJava {
    sourceCompatibility = targetCompatibility = '1.8'
}

minecraft {
    version = "${minecraft_version}-${forge_version}"
    runDir = "run"
    mappings = mappings_version
    String resolved_core_config = mod_mixin_configs.replace('${mod_id}', mod_id)
    clientRunArgs.addAll('--tweakClass', 'org.spongepowered.asm.launch.MixinTweaker', '--mixin', resolved_core_config)
    serverRunArgs.addAll('--tweakClass', 'org.spongepowered.asm.launch.MixinTweaker', '--mixin', resolved_core_config)
}

repositories {
    mavenCentral()
    maven { url = 'https://repo.spongepowered.org/maven' }
}

configurations {
    embed
    compile.extendsFrom(embed)
}

dependencies {
    embed('org.spongepowered:mixin:0.7.11-SNAPSHOT') {
        exclude module: 'guava'
        exclude module: 'commons-io'
        exclude module: 'gson'
    }
    annotationProcessor 'org.spongepowered:mixin:0.7.11-SNAPSHOT'
}

processResources {
    inputs.property 'version', project.version
    inputs.property 'mcversion', project.minecraft.version

    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'

        expand 'mod_id': mod_id, 'mod_name': mod_name, 'version': project.version,
                'mcversion': project.minecraft.version, 'mod_description': mod_description,
                'mod_author': mod_author
    }

    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}

sourceSets {
    main {
        refMap = mod_mixin_refmap.replace('${mod_id}', mod_id)
    }
}

jar {
    from(configurations.embed.collect {
        it.isDirectory() ? it : zipTree(it)
    }) {
        exclude 'LICENSE.txt', 'META-INF/MANIFSET.MF', 'META-INF/maven/**', 'META-INF/*.RSA', 'META-INF/*.SF'
    }

    manifest.attributes(
            'ForceLoadAsMod': 'true',
            'FMLCorePluginContainsFMLMod': 'true',
            'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
            'TweakOrder': '0',
            'MixinConfigs': mod_mixin_configs.replace('${mod_id}', mod_id)
    )
}


code:
mod_id=gondola
mod_name=Gondola Skibidi
mod_group=ihm.gondola
mod_version=1.0.0
mod_author=["ihm"]
mod_description=Gondola enderPOCs and skibidi toilet baby zombies
minecraft_version=1.8.9
forge_version=11.15.1.2318-1.8.9
mappings_version=stable_22
mod_mixin_configs=mixins.${mod_id}.json
mod_mixin_refmap=refmap.${mod_id}.json
org.gradle.daemon=false
org.gradle.jvmargs=-Xmx3G

repo_name: ihm/gondola

license: mit


code:
#!/usr/bin/env sh

##############################################################################
##
##  Gradle start up script for UN*X
##
##############################################################################

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
    else
        PRG=`dirname "$PRG"`"/$link"
    fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn () {
    echo "$*"
}

die () {
    echo
    echo "$*"
    echo
    exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
  CYGWIN* )
    cygwin=true
    ;;
  Darwin* )
    darwin=true
    ;;
  MINGW* )
    msys=true
    ;;
  NONSTOP* )
    nonstop=true
    ;;
esac

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
    MAX_FD_LIMIT=`ulimit -H -n`
    if [ $? -eq 0 ] ; then
        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
            MAX_FD="$MAX_FD_LIMIT"
        fi
        ulimit -n $MAX_FD
        if [ $? -ne 0 ] ; then
            warn "Could not set maximum file descriptor limit: $MAX_FD"
        fi
    else
        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
    fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
    JAVACMD=`cygpath --unix "$JAVACMD"`

    # We build the pattern for arguments to be converted via cygpath
    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
    SEP=""
    for dir in $ROOTDIRSRAW ; do
        ROOTDIRS="$ROOTDIRS$SEP$dir"
        SEP="|"
    done
    OURCYGPATTERN="(^($ROOTDIRS))"
    # Add a user-defined pattern to the cygpath arguments
    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
    fi
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option

        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac
fi

# Escape application args
save () {
    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
    echo " "
}
APP_ARGS=$(save "$@")

# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
  cd "$(dirname "$0")"
fi

exec "$JAVACMD" "$@"

path: gradlew


code:
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windows variants

if not "%OS%" == "Windows_NT" goto win9xME_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega


code:
package ihm.gondola;

import net.minecraft.client.model.ModelBase;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.Mod;

@Mod(modid = Gondola.MOD_ID, version = Gondola.VERSION)
public class Gondola {
    public static final String MOD_ID = "gondola";
    public static final String VERSION = "1.0.0";

    // The new enderman model has a modified UV
    public static final ResourceLocation GONDOLA_TEXTURE = new ResourceLocation("gondola", "textures/entity/gondola.png");

    public static final ModelBase SKIBIDI_TOILET = new ModelSkibidi();
    public static final ResourceLocation SKIBIDI_TEXTURE = new ResourceLocation("gondola", "textures/entity/skibidi.png");
}


code:
package ihm.gondola;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelBox;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.monster.EntityZombie;

public class ModelSkibidi extends ModelBiped {
    public ModelSkibidi() {
        super(0.0f, 0.0f, 64, 64);

        this.bipedBody = new ModelRenderer(this);
        this.bipedBody.setRotationPoint(0.0f, 24.0f, 0.0f);
		this.bipedBody.cubeList.add(new ModelBox(this.bipedBody, 0, 0, -8.0f, -1.0f, -8.0f, 16, 1, 16, 0.0f, false));
		this.bipedBody.cubeList.add(new ModelBox(this.bipedBody, 0, 0, -6.0f, -7.0f, -7.0f, 12, 6, 14, 0.0f, false));
		this.bipedBody.cubeList.add(new ModelBox(this.bipedBody, 0, 0, -8.0f, -19.0f, 2.0f, 16, 14, 6, 0.0f, false));
		this.bipedBody.cubeList.add(new ModelBox(this.bipedBody, 6, 43, -7.0f, -8.0f, -8.0f, 14, 1, 10, 0.0f, false));
		this.bipedBody.cubeList.add(new ModelBox(this.bipedBody, 16, 40, -1.0f, -20.0f, 4.0f, 2, 1, 2, 0.0f, false));
        this.bipedBody.cubeList.add(new ModelBox(this.bipedBody, 0, 20, -2.0f, -26.0f, -5.0f, 4, 24, 4, 0.0f, false));

        this.bipedHead = new ModelRenderer(this);
        this.bipedHead.setRotationPoint(0.0f, 0.0f, -3.0f);
        this.bipedHead.cubeList.add(new ModelBox(this.bipedHead, 16, 20, -4.0f, -8.0f, -4.0f, 8, 8, 8, 0.0f, false));
    }

    @Override
    public void render(Entity entity, float f1, float f2, float f3, float f4, float f5, float scale) {
        EntityLivingBase living = (EntityLivingBase)entity;
        GlStateManager.pushMatrix();

        this.bipedBody.render(scale);
        int deathTime = living.deathTime;
        float deathScale = deathTime / 20.0f;
        GlStateManager.pushMatrix();
        if (deathTime > 0) {
            //System.out.println(deathTime);
            GlStateManager.translate(0.0, deathScale * 2.0f, 0.0);
            this.bipedHead.rotateAngleX = 0.0f;
            this.bipedHead.rotateAngleY = 0.0f;
        }
        this.bipedHead.render(scale);
        GlStateManager.popMatrix();
        GlStateManager.popMatrix();
    }
}


code:
package ihm.gondola.mixin;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.RendererLivingEntity;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(RendererLivingEntity.class)
public interface AccessorRendererLivingEntity {
    @Accessor("mainModel") void setMainModel(ModelBase model);
}


code:
package ihm.gondola.mixin;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelEnderman;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(ModelEnderman.class)
public abstract class MixinModelEnderman {
    /** Edit model to look like gondola */
    @Inject(at = @At("RETURN"), method = "<init>")
    private void init(CallbackInfo ci) {
        ModelBiped self = (ModelBiped)(Object)this;
        self.textureHeight += 6;

        self.bipedHead = new ModelRenderer(self);
        self.bipedHeadwear = new ModelRenderer(self);
        self.bipedLeftArm = new ModelRenderer(self);
        self.bipedRightArm = new ModelRenderer(self);

        self.bipedBody = new ModelRenderer(self, 32, 16);
        self.bipedBody.addBox(-4.0f, -8.0f, -2.0f, 8, 12, 4);
        self.bipedBody.setRotationPoint(0.0f, -14.0f, 0.0f);

        self.bipedRightLeg = new ModelRenderer(self, 56, 0);
        self.bipedRightLeg.addBox(-1.0f, 0.0f, -1.0f, 2, 30 + 6, 2, 0.0f);
        self.bipedRightLeg.setRotationPoint(-2.0F, 0.0f, 0.0f);

        self.bipedLeftLeg = new ModelRenderer(self, 56, 0);
        self.bipedLeftLeg.mirror = true;
        self.bipedLeftLeg.addBox(-1.0f, 0.0f, -1.0f, 2, 30 + 6, 2, 0.0f);
        self.bipedLeftLeg.setRotationPoint(2.0f, 0.0f, 0.0f);
    }
    /** setRotationAngles overrides the rotation points */
    @Inject(at = @At("RETURN"), method = "setRotationAngles")
    private void setRotationAngles(float f1, float f2, float f3, float f4, float f5, float f6, Entity entity, CallbackInfo ci) {
        ModelBiped self = (ModelBiped)(Object)this;
        self.bipedRightLeg.rotationPointY = 2.0f - 14.0f;
        self.bipedLeftLeg.rotationPointY = 2.0f - 14.0f;
    }
}


code:
package ihm.gondola.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import ihm.gondola.Gondola;
import net.minecraft.client.renderer.entity.RenderEnderman;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.util.ResourceLocation;

@Mixin(RenderEnderman.class)
public abstract class MixinRenderEnderman {
    /** Override enderman texture */
    @Inject(at = @At("HEAD"), method = "getEntityTexture", cancellable = true)
    protected void getEntityTexture(EntityEnderman entity, CallbackInfoReturnable<ResourceLocation> cir) {
        cir.setReturnValue(Gondola.GONDOLA_TEXTURE);
    }
}


code:
package ihm.gondola.mixin;

import net.minecraft.client.renderer.entity.RenderZombie;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.util.ResourceLocation;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import ihm.gondola.Gondola;

@Mixin(RenderZombie.class)
public abstract class MixinRenderZombie {
    /** Override skibidi texture */
    @Inject(at = @At("HEAD"), method = "getEntityTexture", cancellable = true)
    protected void getEntityTexture(EntityZombie entity, CallbackInfoReturnable<ResourceLocation> cir) {
        if (entity.isChild())
            cir.setReturnValue(Gondola.SKIBIDI_TEXTURE);
    }
    /** Override skibidi model */
    @Inject(at = @At("HEAD"), method = "func_82427_a", cancellable = true)
    private void getModel(EntityZombie entity, CallbackInfo ci) {
        AccessorRendererLivingEntity self = (AccessorRendererLivingEntity)this;
        if (entity.isChild()) {
            self.setMainModel(Gondola.SKIBIDI_TOILET);
            ci.cancel();
        }
    }
    /** Disable death animation for skibidi */
    /*@Inject(at = @At("HEAD"), method = "rotateCorpse", cancellable = true)
    protected void rotateCorpse(EntityZombie entity, float f1, float f2, float tickDelta, CallbackInfo ci) {
        if (entity.isChild())
            ci.cancel();
    }*/
}


code:
[
{
  "modid": "${mod_id}",
  "name": "${mod_name}",
  "description": "${mod_description}",
  "version": "${version}",
  "mcversion": "${mcversion}",
  "url": "",
  "updateUrl": "",
  "authorList": ${mod_author},
  "credits": "",
  "logoFile": "",
  "screenshots": [],
  "dependencies": []
}
]


client: AccessorRendererLivingEntity MixinModelEnderman MixinRenderEnderman MixinRenderZombie


description: Mod assets


code:
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

repo_name: QuiteUnusualDev/charge

path: .gitattributes


code:
# Godot 4+ specific ignores
.godot/

path: .gitignore


code:
Avoid running into the Creeps while you try to click on them to kill them.

Play @ [Itch.io](https://quiteunusual.itch.io/creeps)

## Attributions

Explosion based on [helpcomputer](https://opengameart.org/users/helpcomputer)'s ["Explosions"](https://opengameart.org/content/explosions-2) is licensed under GPL 3.0

Original Creeps & Player from ["Abstract Platformer"](https://kenney.nl/assets/abstract-platformer) by kenney.nl is licensed under CC-0

Blue and Green Creeps by Alta.

["House in a Forest Loop"](https://opengameart.org/content/loop-house-in-a-forest) by [HorrorPen](https://opengameart.org/users/horrorpen) is licensed under CC-by-3.0

Code by Alta is under GPL 3.0.


code:
[remap]

importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://gnwda82y56hn"
path="res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr"

[deps]

source_file="res://art/House In a Forest Loop.ogg"
dest_files=["res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr"]

[params]

loop=true
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

path: art/House In a Forest Loop.ogg.import


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bnbxrmn3ivgxk"
path="res://.godot/imported/boom.png-59f152acf718d03d83520994e047e0f6.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom.png"
dest_files=["res://.godot/imported/boom.png-59f152acf718d03d83520994e047e0f6.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dx8h8rdu6tln5"
path="res://.godot/imported/boom1.png-74a1adf4f9a10da40afaf42fb9cd7f48.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom1.png"
dest_files=["res://.godot/imported/boom1.png-74a1adf4f9a10da40afaf42fb9cd7f48.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b8jl4uvhmrijh"
path="res://.godot/imported/boom2.png-bcef8e6481c52eb96671b46192266f75.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom2.png"
dest_files=["res://.godot/imported/boom2.png-bcef8e6481c52eb96671b46192266f75.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c6xgfog6eqdwp"
path="res://.godot/imported/boom3.png-246fe6ab6a4a67dbf59f6e711c886f9a.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom3.png"
dest_files=["res://.godot/imported/boom3.png-246fe6ab6a4a67dbf59f6e711c886f9a.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://colgrrlnk6o2y"
path="res://.godot/imported/boom4.png-3e31327d16caee0372e9b42fd3d6bca8.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom4.png"
dest_files=["res://.godot/imported/boom4.png-3e31327d16caee0372e9b42fd3d6bca8.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cji6vbd35hpjy"
path="res://.godot/imported/boom5.png-a926272f55560e2a28dd57df90df0480.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom5.png"
dest_files=["res://.godot/imported/boom5.png-a926272f55560e2a28dd57df90df0480.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c2jgyqgm0ga0d"
path="res://.godot/imported/boom6.png-4e140d0955fab30fc9f29e961120495d.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/boom6.png"
dest_files=["res://.godot/imported/boom6.png-4e140d0955fab30fc9f29e961120495d.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://clqf8xkipisky"
path="res://.godot/imported/enemyFlyingAlt_1.png-559f599b16c69b112c1b53f6332e9489.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyFlyingAlt_1.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_1.png-559f599b16c69b112c1b53f6332e9489.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://c4hk4wfjm5c8v"
path="res://.godot/imported/enemyFlyingAlt_2.png-31dc7310eda6e1b721224f3cd932c076.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyFlyingAlt_2.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_2.png-31dc7310eda6e1b721224f3cd932c076.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://de4pvhm5vs2a6"
path="res://.godot/imported/enemyFlyingAlt_blue_1.png-dc85a240f4d92ebfba981e0ccd80deaa.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyFlyingAlt_blue_1.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_blue_1.png-dc85a240f4d92ebfba981e0ccd80deaa.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://cv0olwp6sx1v0"
path="res://.godot/imported/enemyFlyingAlt_blue_2.png-dc0408401a19cb0915b659b1db4fd28f.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyFlyingAlt_blue_2.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_blue_2.png-dc0408401a19cb0915b659b1db4fd28f.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://b1cdlgfvkrvhx"
path="res://.godot/imported/enemyFlyingAlt_green_1.png-3e4f151d6268195cf8f4ad214066b8dd.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyFlyingAlt_green_1.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_green_1.png-3e4f151d6268195cf8f4ad214066b8dd.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://k1xw36vyjx0m"
path="res://.godot/imported/enemyFlyingAlt_green_2.png-69e97890c0eaccbb0d5041c5b83b2078.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyFlyingAlt_green_2.png"
dest_files=["res://.godot/imported/enemyFlyingAlt_green_2.png-69e97890c0eaccbb0d5041c5b83b2078.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bgh08xyrd5oqq"
path="res://.godot/imported/enemySwimming_1.png-dd0e11759dc3d624c8a704f6e98a3d80.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemySwimming_1.png"
dest_files=["res://.godot/imported/enemySwimming_1.png-dd0e11759dc3d624c8a704f6e98a3d80.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dcpp1qlc3lmuu"
path="res://.godot/imported/enemySwimming_2.png-4c0cbc0732264c4ea3290340bd4a0a62.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemySwimming_2.png"
dest_files=["res://.godot/imported/enemySwimming_2.png-4c0cbc0732264c4ea3290340bd4a0a62.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bt5w8kq3p6cxo"
path="res://.godot/imported/enemySwimming_blue_1.png-67c7a0139fafbf05d73b1ae9ea33d38c.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemySwimming_blue_1.png"
dest_files=["res://.godot/imported/enemySwimming_blue_1.png-67c7a0139fafbf05d73b1ae9ea33d38c.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bttpqkgawcrga"
path="res://.godot/imported/enemySwimming_blue_2.png-ece0638a379861a5b1ea89029114047b.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemySwimming_blue_2.png"
dest_files=["res://.godot/imported/enemySwimming_blue_2.png-ece0638a379861a5b1ea89029114047b.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ciahfca8mv3id"
path="res://.godot/imported/enemySwimming_geen_1.png-7cd2b9b4b235c2e563ab4b404ec47b13.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemySwimming_geen_1.png"
dest_files=["res://.godot/imported/enemySwimming_geen_1.png-7cd2b9b4b235c2e563ab4b404ec47b13.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bc3bctdowb3gv"
path="res://.godot/imported/enemySwimming_green_2.png-24e8cdf286e75809b6acdedf7f956806.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemySwimming_green_2.png"
dest_files=["res://.godot/imported/enemySwimming_green_2.png-24e8cdf286e75809b6acdedf7f956806.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dnbsrcqf0ei8a"
path="res://.godot/imported/enemyWalking_1.png-5af6eedbe61b701677d490ffdc1e6471.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyWalking_1.png"
dest_files=["res://.godot/imported/enemyWalking_1.png-5af6eedbe61b701677d490ffdc1e6471.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://p66m4yo6jfxd"
path="res://.godot/imported/enemyWalking_2.png-67c480ed60c35e95f5acb0436246b935.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyWalking_2.png"
dest_files=["res://.godot/imported/enemyWalking_2.png-67c480ed60c35e95f5acb0436246b935.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bth1qf065s8ld"
path="res://.godot/imported/enemyWalking_blue_1.png-da295b600c5cb01fdd62af47332ef582.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyWalking_blue_1.png"
dest_files=["res://.godot/imported/enemyWalking_blue_1.png-da295b600c5cb01fdd62af47332ef582.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://bu3mavr83rsrl"
path="res://.godot/imported/enemyWalking_blue_2.png-845e5f361f475aac8aafdaaead27fbb8.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyWalking_blue_2.png"
dest_files=["res://.godot/imported/enemyWalking_blue_2.png-845e5f361f475aac8aafdaaead27fbb8.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://clbpkhomieh63"
path="res://.godot/imported/enemyWalking_green_1.png-c8937144e9f44f1613eb9d4fe098c363.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyWalking_green_1.png"
dest_files=["res://.godot/imported/enemyWalking_green_1.png-c8937144e9f44f1613eb9d4fe098c363.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://db035hc6e67e2"
path="res://.godot/imported/enemyWalking_green_2.png-c5e36975470d9ee605ad5db102b52121.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/enemyWalking_green_2.png"
dest_files=["res://.godot/imported/enemyWalking_green_2.png-c5e36975470d9ee605ad5db102b52121.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://4ag63laqxywk"
path="res://.godot/imported/explosions.png-78097f29397119404d1c1583f38fb0b6.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/explosions.png"
dest_files=["res://.godot/imported/explosions.png-78097f29397119404d1c1583f38fb0b6.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="wav"
type="AudioStreamWAV"
uid="uid://45qkl6p3nsxi"
path="res://.godot/imported/gameover.wav-98c95c744b35280048c2bd093cf8a356.sample"

[deps]

source_file="res://art/gameover.wav"
dest_files=["res://.godot/imported/gameover.wav-98c95c744b35280048c2bd093cf8a356.sample"]

[params]

force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://ccjqhx04hyira"
path="res://.godot/imported/playerGrey_up1.png-6bd114d0a6beac91f48e3a7314d44564.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/playerGrey_up1.png"
dest_files=["res://.godot/imported/playerGrey_up1.png-6bd114d0a6beac91f48e3a7314d44564.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dq21sqwlcminh"
path="res://.godot/imported/playerGrey_up2.png-d6aba85f5f2675ebc7045efa7552ee79.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/playerGrey_up2.png"
dest_files=["res://.godot/imported/playerGrey_up2.png-d6aba85f5f2675ebc7045efa7552ee79.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://erv4a07s3ww7"
path="res://.godot/imported/playerGrey_walk1.png-c4773fe7a7bf85d7ab732eb4458c2742.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/playerGrey_walk1.png"
dest_files=["res://.godot/imported/playerGrey_walk1.png-c4773fe7a7bf85d7ab732eb4458c2742.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://fkcque1fag6x"
path="res://.godot/imported/playerGrey_walk2.png-34d2d916366100182d08037c51884043.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://art/playerGrey_walk2.png"
dest_files=["res://.godot/imported/playerGrey_walk2.png-34d2d916366100182d08037c51884043.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1


code:
[remap]

importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dun12r3rlu108"
path="res://.godot/imported/pop.ogg-d9ade22742deb1c94671db5e98c2fe4d.oggvorbisstr"

[deps]

source_file="res://art/pop.ogg"
dest_files=["res://.godot/imported/pop.ogg-d9ade22742deb1c94671db5e98c2fe4d.oggvorbisstr"]

[params]

loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4


code:
[preset.0]

name="Web"
platform="Web"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../../exports/creeps/index.html"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
encrypt_directory=false
script_encryption_key=""

[preset.0.options]

custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)


code:
Please distribute this file along with the Xolonium fonts when possible.

Source

	Find the sourcefiles of Xolonium at
	<gitlab.com/sev/xolonium>

Credits

	Xolonium is created with FontForge <fontforge.org>,
	Inkscape <inkscape.org>, Python <python.org>, and
	FontTools <github.com/fonttools>.

	It originated as a custom font for the open-source
	game Xonotic <xonotic.org>. With many thanks to the
	Xonotic community for your support.

Supported OpenType features

	case  Provides case sensitive placement of punctuation,
	      brackets, and math symbols for uppercase text.
	frac  Replaces number/number sequences with diagonal fractions.
	      Numbers that touch a slash should not exceed 10 digits.
	kern  Provides kerning for Latin, Greek, and Cyrillic scripts.
	locl  Dutch: Replaces j with a stressed version if it follows í.
	      Sami: Replaces n-form Eng with the preferred N-form version.
	      Romanian and Moldovan: Replaces ŞşŢţ with the preferred ȘșȚț.
	pnum  Replaces monospaced digits with proportional versions.
	sinf  Replaces digits with scientific inferiors below the baseline.
	subs  Replaces digits with subscript versions on the baseline.
	sups  Replaces digits with superscript versions.
	zero  Replaces zero with a slashed version.

Supported glyph sets

	Adobe Latin 3
	OpenType W1G
	ISO 8859-1   Western European
	ISO 8859-2   Central European
	ISO 8859-3   South European
	ISO 8859-4   North European
	ISO 8859-5   Cyrillic
	ISO 8859-7   Greek
	ISO 8859-9   Turkish
	ISO 8859-10  Nordic
	ISO 8859-13  Baltic Rim
	ISO 8859-14  Celtic
	ISO 8859-15  Western European
	ISO 8859-16  South-Eastern European

Available glyphs

	 !"#$%&'()*+,-./0123456789:;<=>?
	@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
	`abcdefghijklmnopqrstuvwxyz{|}~

	 ¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿
	ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
	àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
	ĀāĂăĄąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğ
	ĠġĢģĤĥĦħĨĩĪīĬĭĮįİıĲĳĴĵĶķĸĹĺĻļĽľ
	ĿŀŁłŃńŅņŇňŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞş
	ŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž
	ƒǺǻǼǽǾǿȘșȚțȷ

	ˆˇˉ˘˙˚˛˜˝

	ͺ;΄΅Ά·ΈΉΊΌΎΏΐ
	ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰ
	αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ

	ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОП
	РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп
	рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџ
	ѢѣѲѳѴѵҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩ
	ҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽӀӁӂӇӈӋӌӏӐӑӒӓ
	ӔӕӖӗӘәӜӝӞӟӠӡӢӣӤӥӦӧӨөӮӯӰӱӲӳӴӵӶӷӸӹ
	Ԥԥ

	ḂḃḊḋḞḟṀṁṖṗṠṡṪṫẀẁẂẃẄẅẞỲỳ

	     ‒–—―‘’‚‛“”„‟†‡•…‰′″‹›‽‾⁄
	⁰⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
	₤₦₩₫€₯₱₹₺₽₿
	℅ℓ№℗™Ω℮
	⅛⅜⅝⅞
	←↑→↓
	∂∆∏∑−∕∙√∞∟∫≈≠≤≥
	⌖
	■▬▮▰▲▶▼◀◆◊●◢◣◤◥
	☄★☠☢☣⚙⚛⚠⚡⛔
	❇❈❌❤❰❱❲❳
	ﬀﬁﬂﬃﬄ
	🌌🌍🌎🌏👽💣🔥🔫
	😁😃😄😆😇😈😉😊😎😐😒😕😘
	😛😝😞😟😠😣😭😮😲😴😵
	🚀

Debugging glyphs

	  U+EFFD  Font version
	  U+F000  Font hinting indicator

Changelog

	Xolonium 4.1  2016-11-22  Severin Meyer  <sev.ch@web.de>
		Reverted frac OpenType feature to a more stable implementation

	Xolonium 4.0  2016-10-08  Severin Meyer  <sev.ch@web.de>
		Decreased width of most glyphs
		Thinner vertical stems in Xolonium-Regular
		Thicker horizontal stems in Xolonium-Bold
		Revised diagonal stems
		Lowered middle bars
		Revised diacritical bars
		Added glyphs:
			ӏẞ₿
			U+2007 U+2008 U+2009 U+200A U+202F
			U+EFFD U+F000
		Revised glyphs:
			$&,JKQRXkwxy~¢¤ßǻ˜ζκλμξφЖУжћѴѵ∕₱₺₦₩€ℓ№≈ﬀﬃﬄ
			❤🌍🌎🌏😁😄😇😈😉😊😘😭😮😴🚀
		Removed uncommon glyphs:
			ŉſʼҌҍҎҏҾҿӃӄӇӈӚӛӪӫӬӭ
			U+0312 U+0313 U+0326
		Simplified OpenType features pnum, zero, and case
		Removed OpenType feature dlig
		Revised vertical metrics
		Merged outlines of composite glyphs in otf version
		Added ttf version with custom outlines and instructions
		Added woff and woff2 version

	Xolonium 3.1  2015-06-10  Severin Meyer  <sev.ch@web.de>
		Added currency glyphs:
			₦₩₫₱₹₺₽
		Revised glyph:
			₯
		Relicensed public release under the SIL Open Font License 1.1

	Xolonium 3.0  2015-05-04  Severin Meyer  <sev.ch@web.de>
		Decreased width of glyphs
		Decreased descender height
		Increased height of super/subscript glyphs
		Revised width of dashes, underscore, and overscore
		Sharper bends with more circular proportions
		Decreased stroke thickness of mathematical glyphs
		Revised diacritical marks
		Revised diacritical bars
		Revised Cyrillic hooks
		Revised glyphs:
			GQRYjmuwßŊŒſƒǻﬀﬁﬃﬄ
			ΞΨΩδζιξπςστυφω
			ЉЄДЛУЭЯбдлэяєљђєћѢѣҨҩҼҽӃӄӘә
			#$&'()*,/69?@[]{}~¡£¤¥§©®¿
			‹›₤€₯ℓ№℗℮←↑→↓∂∏∑∞≈▰☄❈❰❱❲❳😝
		Raised vertical position of mathematical glyphs
		Unified advance width of numeral and monetary glyphs
		Unified advance width of mathematical glyphs
		Revised bearings
		Rewrote kern feature
		Bolder Xolonium-Bold with improved proportions
		Updated glyph names to conform to the AGLFN 1.7
		Revised hints and PS Private Dictionary
		Added glyphs:
			ӶӷԤԥ
		Added OpenType features:
			case frac liga locl pnum sinf subs sups zero

	Xolonium 2.4  2014-12-23  Severin Meyer  <sev.ch@web.de>
		Added dingbats:
			⛔💣🔥
		Revised size and design of emoticons
		Revised dingbats:
			⌖☄☠☣⚙⚛⚠⚡❇❈🌌🌍🌎🌏🔫
		Removed dingbat:
			💥

	Xolonium 2.3  2014-08-14  Severin Meyer  <sev.ch@web.de>
		Bugfixed ε and έ, thanks to bowzee for the feedback

	Xolonium 2.2  2014-03-01  Severin Meyer  <sev.ch@web.de>
		Added dingbats:
			⌖◆●❌💥
		Revised dingbats:
			•←↑→↓◊☄★☠☣⚙⚛⚠⚡❇❈❤🌌🌍🌎🌏👽🔫🚀
		Removed dingbats:
			♻✪💡📡🔋🔧🔭

	Xolonium 2.1  2013-10-20  Severin Meyer  <sev.ch@web.de>
		Added dingbats:
			←↑→↓❰❱❲❳■▬▮▰▲▶▼◀◢◣◤◥
			☄★☠☢☣♻⚙⚛⚠⚡✪❇❈❤
			🌌🌍🌎🌏👽💡📡🔋🔧🔫🔭🚀
			😁😃😄😆😇😈😉😊😎😐😒😕
			😘😛😝😞😟😠😣😭😮😲😴😵

	Xolonium 2.0.1  2013-07-12  Severin Meyer  <sev.ch@web.de>
		Reorganised and simplified files

	Xolonium 2.0  2012-08-11  Severin Meyer  <sev.ch@web.de>
		Revised bends
		Revised thickness of uppercase diagonal stems
		Revised diacritical marks
		Revised hints and PS Private Dictionary
		Revised glyphs:
			*1469@DPRly{}§©®¶ÐÞƒΘΞαεζνξνυЄЉЊ
			ЏБЗЛУЧЪЫЬЭЯбзлчъыьэяєљњџ•€∂∙√∞∫≠
		Completed glyph sets:
			Adobe Latin 3
			OpenType World Glyph Set 1 (W1G)
			Ghostscript Standard (ghostscript-fonts-std-8.11)
		Added OpenType kern feature
		Added Xolonium-Bold

	Xolonium 1.2  2011-02-12  Severin Meyer  <sev.ch@web.de>
		Revised glyphs:
			D·Ðı
		Completed glyph sets:
			ISO 8859-7 (Greek)
			Unicode Latin Extended-A block
		Added glyphs:
			†‡•…‰⁄™∂∑−√∞≠≤≥

	Xolonium 1.1  2011-01-17  Severin Meyer  <sev.ch@web.de>
		Revised placement of cedilla and ogonek in accented glyphs
		Revised glyphs:
			,;DKTjkvwxy¥§Ð˛€
		Completed glyph sets:
			ISO 8859-2  (Central European)
			ISO 8859-3  (South European, Esperanto)
			ISO 8859-4  (North European)
			ISO 8859-5  (Cyrillic)
			ISO 8859-9  (Turkish)
			ISO 8859-10 (Nordic)
			ISO 8859-13 (Baltic Rim)
			ISO 8859-14 (Celtic)
			ISO 8859-16 (South-Eastern European)
		Added glyphs:
			ȷʼ̒ ЀЍѐѝ‒–—‘’‚‛“”„‟‹›

	Xolonium 1.0  2011-01-04  Severin Meyer  <sev.ch@web.de>
		Completed glyph sets:
			ISO 8859-1  (Western European)
			ISO 8859-15 (Western European)
		Added glyphs:
			ĄĆĘŁŃŚŹŻąćęłńśźżıˆˇ˙˚˛˜


code:
[remap]

importer="font_data_dynamic"
type="FontFile"
uid="uid://bf1hua8doh6c1"
path="res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e2bb73fba.fontdata"

[deps]

source_file="res://fonts/Xolonium-Regular.ttf"
dest_files=["res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e2bb73fba.fontdata"]

[params]

Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}


code:
[remap]

importer="texture"
type="CompressedTexture2D"
uid="uid://dl4cki6keqr8k"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]

[params]

compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false


code:
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
;   [section] ; section goes between []
;   param=value ; assign values to parameters

config_version=5

[application]

config/name="Charge The Creeps"
run/main_scene="res://scenes/map.tscn"
config/features=PackedStringArray("4.0", "GL Compatibility")
config/icon="res://icon.svg"

[input]

LeftMouse={
"deadzone": 0.5,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
]
}

[rendering]

renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"


code:
[gd_scene load_steps=12 format=3 uid="uid://8gaiymxrx23"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_qi520"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_ptgwj"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_im5hd"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_4e0f6"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_bou4p"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_yjgl8"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_tyc1c"]
[ext_resource type="Texture2D" uid="uid://clqf8xkipisky" path="res://art/enemyFlyingAlt_1.png" id="8_xm0yi"]
[ext_resource type="Texture2D" uid="uid://c4hk4wfjm5c8v" path="res://art/enemyFlyingAlt_2.png" id="9_qwhek"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_ptgwj")
}, {
"duration": 1.0,
"texture": ExtResource("3_im5hd")
}, {
"duration": 1.0,
"texture": ExtResource("4_4e0f6")
}, {
"duration": 1.0,
"texture": ExtResource("5_bou4p")
}, {
"duration": 1.0,
"texture": ExtResource("6_yjgl8")
}, {
"duration": 1.0,
"texture": ExtResource("7_tyc1c")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_xm0yi")
}, {
"duration": 1.0,
"texture": ExtResource("9_qwhek")
}],
"loop": true,
"name": &"default",
"speed": 5.5
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 26.0
height = 82.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_qi520")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://wagii5o2sxqh"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_57bqe"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_3sx4h"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_ybw7h"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_778qh"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_48p80"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_k7afm"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_hg0wj"]
[ext_resource type="Texture2D" uid="uid://de4pvhm5vs2a6" path="res://art/enemyFlyingAlt_blue_1.png" id="8_7lym2"]
[ext_resource type="Texture2D" uid="uid://cv0olwp6sx1v0" path="res://art/enemyFlyingAlt_blue_2.png" id="9_21ura"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_3sx4h")
}, {
"duration": 1.0,
"texture": ExtResource("3_ybw7h")
}, {
"duration": 1.0,
"texture": ExtResource("4_778qh")
}, {
"duration": 1.0,
"texture": ExtResource("5_48p80")
}, {
"duration": 1.0,
"texture": ExtResource("6_k7afm")
}, {
"duration": 1.0,
"texture": ExtResource("7_hg0wj")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_7lym2")
}, {
"duration": 1.0,
"texture": ExtResource("9_21ura")
}],
"loop": true,
"name": &"default",
"speed": 5.5
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 26.0
height = 82.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_57bqe")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://cq71tfj387pvn"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_0b7p7"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_ex5s0"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_oy2kd"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_bx6q5"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_is3gq"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_y576u"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_5d4m0"]
[ext_resource type="Texture2D" uid="uid://b1cdlgfvkrvhx" path="res://art/enemyFlyingAlt_green_1.png" id="8_x8gsx"]
[ext_resource type="Texture2D" uid="uid://k1xw36vyjx0m" path="res://art/enemyFlyingAlt_green_2.png" id="9_u56y3"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_ex5s0")
}, {
"duration": 1.0,
"texture": ExtResource("3_oy2kd")
}, {
"duration": 1.0,
"texture": ExtResource("4_bx6q5")
}, {
"duration": 1.0,
"texture": ExtResource("5_is3gq")
}, {
"duration": 1.0,
"texture": ExtResource("6_y576u")
}, {
"duration": 1.0,
"texture": ExtResource("7_5d4m0")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_x8gsx")
}, {
"duration": 1.0,
"texture": ExtResource("9_u56y3")
}],
"loop": true,
"name": &"default",
"speed": 5.5
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 26.0
height = 82.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_0b7p7")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=11 format=3 uid="uid://bvh0lfvypad2"]

[ext_resource type="Script" path="res://scripts/game.gd" id="1_x1ik7"]
[ext_resource type="Script" path="res://scripts/player.gd" id="2_rl2hl"]
[ext_resource type="Texture2D" uid="uid://ccjqhx04hyira" path="res://art/playerGrey_up1.png" id="3_vig20"]
[ext_resource type="Texture2D" uid="uid://dq21sqwlcminh" path="res://art/playerGrey_up2.png" id="4_ppg11"]
[ext_resource type="AudioStream" uid="uid://gnwda82y56hn" path="res://art/House In a Forest Loop.ogg" id="5_tlf13"]
[ext_resource type="AudioStream" uid="uid://dun12r3rlu108" path="res://art/pop.ogg" id="6_pyp6w"]
[ext_resource type="AudioStream" uid="uid://45qkl6p3nsxi" path="res://art/gameover.wav" id="7_du56i"]

[sub_resource type="SpriteFrames" id="SpriteFrames_xsun7"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_vig20")
}, {
"duration": 1.0,
"texture": ExtResource("4_ppg11")
}],
"loop": true,
"name": &"up",
"speed": 3.0
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_bhog7"]
radius = 26.0
height = 66.0

[sub_resource type="CircleShape2D" id="CircleShape2D_77raq"]
radius = 7.0

[node name="Map" type="Node2D"]
script = ExtResource("1_x1ik7")

[node name="Camera2D" type="Camera2D" parent="."]
anchor_mode = 0

[node name="Player" type="Node2D" parent="."]
position = Vector2(67, 77)
script = ExtResource("2_rl2hl")
metadata/_edit_group_ = true

[node name="Node2D" type="Area2D" parent="Player"]
rotation = 1.5708

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Player/Node2D"]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_xsun7")
animation = &"up"
autoplay = "up"

[node name="CollisionShape2D" type="CollisionShape2D" parent="Player/Node2D"]
shape = SubResource("CapsuleShape2D_bhog7")

[node name="Mouse" type="Area2D" parent="."]

[node name="CollisionShape2D" type="CollisionShape2D" parent="Mouse"]
shape = SubResource("CircleShape2D_77raq")

[node name="Timer" type="Timer" parent="."]
wait_time = 2.5
autostart = true

[node name="CanvasLayer" type="CanvasLayer" parent="."]

[node name="Score" type="Label" parent="CanvasLayer"]
offset_left = 5.0
offset_top = 5.0
offset_right = 15.0
offset_bottom = 31.0
size_flags_horizontal = 0
size_flags_vertical = 0
mouse_filter = 1
text = "0"

[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer"]
visible = false
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -32.5
offset_top = -29.0
offset_right = 32.5
offset_bottom = 29.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 4

[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/PanelContainer"]
layout_mode = 2

[node name="Label" type="Label" parent="CanvasLayer/PanelContainer/VBoxContainer"]
layout_mode = 2

[node name="Button" type="Button" parent="CanvasLayer/PanelContainer/VBoxContainer"]
layout_mode = 2
text = "Restart"

[node name="Music" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("5_tlf13")

[node name="Death" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_pyp6w")

[node name="EndSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_du56i")

[connection signal="player_died" from="Player" to="." method="_on_player_player_died"]
[connection signal="body_entered" from="Player/Node2D" to="Player" method="_on_node_2d_body_entered"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
[connection signal="pressed" from="CanvasLayer/PanelContainer/VBoxContainer/Button" to="." method="_on_button_pressed"]


code:
[gd_scene load_steps=12 format=3 uid="uid://blm2stymoj1mn"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_lkgha"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_p7uw0"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_ttwnk"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_abxw2"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_wsug7"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_6esqu"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_yeh7k"]
[ext_resource type="Texture2D" uid="uid://bgh08xyrd5oqq" path="res://art/enemySwimming_1.png" id="8_4r5id"]
[ext_resource type="Texture2D" uid="uid://dcpp1qlc3lmuu" path="res://art/enemySwimming_2.png" id="9_b7ayr"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_p7uw0")
}, {
"duration": 1.0,
"texture": ExtResource("3_ttwnk")
}, {
"duration": 1.0,
"texture": ExtResource("4_abxw2")
}, {
"duration": 1.0,
"texture": ExtResource("5_wsug7")
}, {
"duration": 1.0,
"texture": ExtResource("6_6esqu")
}, {
"duration": 1.0,
"texture": ExtResource("7_yeh7k")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_4r5id")
}, {
"duration": 1.0,
"texture": ExtResource("9_b7ayr")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 23.0
height = 66.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_lkgha")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://dic0li21w55i5"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_3f7qq"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_3lp7f"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_k84np"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_iex67"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_dujrt"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_cy0dg"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_dy6ki"]
[ext_resource type="Texture2D" uid="uid://bt5w8kq3p6cxo" path="res://art/enemySwimming_blue_1.png" id="8_bcyvb"]
[ext_resource type="Texture2D" uid="uid://bttpqkgawcrga" path="res://art/enemySwimming_blue_2.png" id="9_6n4y4"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_3lp7f")
}, {
"duration": 1.0,
"texture": ExtResource("3_k84np")
}, {
"duration": 1.0,
"texture": ExtResource("4_iex67")
}, {
"duration": 1.0,
"texture": ExtResource("5_dujrt")
}, {
"duration": 1.0,
"texture": ExtResource("6_cy0dg")
}, {
"duration": 1.0,
"texture": ExtResource("7_dy6ki")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_bcyvb")
}, {
"duration": 1.0,
"texture": ExtResource("9_6n4y4")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 23.0
height = 66.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_3f7qq")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://ci3t32tldn158"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_pj2ke"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_35qm2"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_5h8y2"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_5v8hf"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_tt5c1"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_t1vuu"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_l8ooi"]
[ext_resource type="Texture2D" uid="uid://ciahfca8mv3id" path="res://art/enemySwimming_geen_1.png" id="8_t44wg"]
[ext_resource type="Texture2D" uid="uid://bc3bctdowb3gv" path="res://art/enemySwimming_green_2.png" id="9_8tjfc"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_35qm2")
}, {
"duration": 1.0,
"texture": ExtResource("3_5h8y2")
}, {
"duration": 1.0,
"texture": ExtResource("4_5v8hf")
}, {
"duration": 1.0,
"texture": ExtResource("5_tt5c1")
}, {
"duration": 1.0,
"texture": ExtResource("6_t1vuu")
}, {
"duration": 1.0,
"texture": ExtResource("7_l8ooi")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_t44wg")
}, {
"duration": 1.0,
"texture": ExtResource("9_8tjfc")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 23.0
height = 66.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_pj2ke")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
rotation = 1.5708
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://xl8qbnpm2fl2"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_uo54x"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_ras3s"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_d0exp"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_ajbvh"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_1o0cb"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_0prkw"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_gmtl1"]
[ext_resource type="Texture2D" uid="uid://dnbsrcqf0ei8a" path="res://art/enemyWalking_1.png" id="8_wknlq"]
[ext_resource type="Texture2D" uid="uid://p66m4yo6jfxd" path="res://art/enemyWalking_2.png" id="9_0b34d"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_ras3s")
}, {
"duration": 1.0,
"texture": ExtResource("3_d0exp")
}, {
"duration": 1.0,
"texture": ExtResource("4_ajbvh")
}, {
"duration": 1.0,
"texture": ExtResource("5_1o0cb")
}, {
"duration": 1.0,
"texture": ExtResource("6_0prkw")
}, {
"duration": 1.0,
"texture": ExtResource("7_gmtl1")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_wknlq")
}, {
"duration": 1.0,
"texture": ExtResource("9_0b34d")
}],
"loop": true,
"name": &"default",
"speed": 4.5
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 24.0
height = 60.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_uo54x")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
rotation = -1.5708
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://dtta6fejcsm20"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_41jl7"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_rd7rp"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_34m7k"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_h65xs"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_ns2s2"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_6gxvr"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_208hg"]
[ext_resource type="Texture2D" uid="uid://bth1qf065s8ld" path="res://art/enemyWalking_blue_1.png" id="8_3eoas"]
[ext_resource type="Texture2D" uid="uid://bu3mavr83rsrl" path="res://art/enemyWalking_blue_2.png" id="9_7m0b8"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_rd7rp")
}, {
"duration": 1.0,
"texture": ExtResource("3_34m7k")
}, {
"duration": 1.0,
"texture": ExtResource("4_h65xs")
}, {
"duration": 1.0,
"texture": ExtResource("5_ns2s2")
}, {
"duration": 1.0,
"texture": ExtResource("6_6gxvr")
}, {
"duration": 1.0,
"texture": ExtResource("7_208hg")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_3eoas")
}, {
"duration": 1.0,
"texture": ExtResource("9_7m0b8")
}],
"loop": true,
"name": &"default",
"speed": 4.5
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 24.0
height = 60.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_41jl7")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
rotation = -1.5708
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
[gd_scene load_steps=12 format=3 uid="uid://dxrxasccdkfoj"]

[ext_resource type="Script" path="res://scripts/enemy.gd" id="1_iw8c3"]
[ext_resource type="Texture2D" uid="uid://dx8h8rdu6tln5" path="res://art/boom1.png" id="2_puk1v"]
[ext_resource type="Texture2D" uid="uid://b8jl4uvhmrijh" path="res://art/boom2.png" id="3_sxeyh"]
[ext_resource type="Texture2D" uid="uid://c6xgfog6eqdwp" path="res://art/boom3.png" id="4_j148v"]
[ext_resource type="Texture2D" uid="uid://colgrrlnk6o2y" path="res://art/boom4.png" id="5_tiuvb"]
[ext_resource type="Texture2D" uid="uid://cji6vbd35hpjy" path="res://art/boom5.png" id="6_05l1h"]
[ext_resource type="Texture2D" uid="uid://c2jgyqgm0ga0d" path="res://art/boom6.png" id="7_mxb10"]
[ext_resource type="Texture2D" uid="uid://clbpkhomieh63" path="res://art/enemyWalking_green_1.png" id="8_86qs3"]
[ext_resource type="Texture2D" uid="uid://db035hc6e67e2" path="res://art/enemyWalking_green_2.png" id="9_hlxsd"]

[sub_resource type="SpriteFrames" id="SpriteFrames_58qyi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_puk1v")
}, {
"duration": 1.0,
"texture": ExtResource("3_sxeyh")
}, {
"duration": 1.0,
"texture": ExtResource("4_j148v")
}, {
"duration": 1.0,
"texture": ExtResource("5_tiuvb")
}, {
"duration": 1.0,
"texture": ExtResource("6_05l1h")
}, {
"duration": 1.0,
"texture": ExtResource("7_mxb10")
}],
"loop": false,
"name": &"boom",
"speed": 15.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_86qs3")
}, {
"duration": 1.0,
"texture": ExtResource("9_hlxsd")
}],
"loop": true,
"name": &"default",
"speed": 4.5
}]

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_efgme"]
radius = 24.0
height = 60.0

[node name="Enemy" type="CharacterBody2D"]
position = Vector2(239, 15)
script = ExtResource("1_iw8c3")

[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
rotation = -1.5708
scale = Vector2(0.5, 0.5)
sprite_frames = SubResource("SpriteFrames_58qyi")
autoplay = "default"

[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_efgme")

[node name="Eye" type="Node2D" parent="."]


code:
extends CharacterBody2D

@onready var eye := $Eye
var target := Vector2.ZERO
var speed := 30

func _ready():
	@warning_ignore("narrowing_conversion")
	speed = randf_range(50, 60)

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _physics_process(_delta):
	velocity = (target - global_position).normalized() * speed
	move_and_slide()
	look_at(target)

func boom():
	print("boom")
	$CollisionShape2D.queue_free()
	$AnimatedSprite2D.play("boom")
	$"../Death".play()
	$AnimatedSprite2D.connect("animation_finished", self.finished)

func finished():
	queue_free()
	pass


code:
extends Node2D

@onready var cam := $Camera2D
@onready var mouse2d := $Mouse
@onready var player : = $Player
var flyer := load("res://scenes/flyer.tscn")
var flyer_green := load("res://scenes/flyer_green.tscn")
var flyer_blue := load("res://scenes/flyer_blue.tscn")
var swimmer := load("res://scenes/swimmer.tscn")
var swimmer_green := load("res://scenes/swimmer_green.tscn")
var swimmer_blue := load("res://scenes/swimmer_blue.tscn")
var walker := load("res://scenes/walker.tscn")
var walker_green := load("res://scenes/walker_green.tscn")
var walker_blue := load("res://scenes/walker_blue.tscn")
var player_speed := 55
var enemies : Array = []
var got_kill = false
var kills := 0
var score := 0.0
var time :=0.0
var last_direction : =Vector2(1.0, 0.0)
@onready var score_gui = $CanvasLayer/Score

# Called when the node enters the scene tree for the first time.
func _ready():
	spam()
	$Music.play()
	enemies.append(spawn())
	player.position = get_viewport_rect().size /2.0
	pass # Replace with function body.

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	time += delta
	var pos = get_local_mouse_position()
	if not Input.is_action_pressed("LeftMouse"):
		mouse2d.position = pos
	var loc = player.position
	var dir :Vector2=  pos - loc
	if mouse2d.has_overlapping_areas():
		player.position = loc.move_toward(loc + last_direction, delta * player_speed)
		var cam_pos = cam.position
		cam.position= cam_pos.move_toward(cam_pos + last_direction, delta * player_speed)
	else:
		last_direction = dir.normalized()
		player.position = loc.move_toward(pos, delta * player_speed)
	pass

func _physics_process(_delta):
	for enemy in enemies:
		if enemy:
			enemy.target = player.global_position
func _unhandled_input(event):
	if event is InputEventMouseMotion:
		if Input.is_action_pressed("LeftMouse"):
			if not mouse2d.has_overlapping_bodies():
				print(event.relative)
				$Camera2D.position -= event.relative
	if event is InputEventMouseButton:
		if Input.is_action_pressed("LeftMouse"):
			if mouse2d.has_overlapping_bodies():
				print("kill")
				kills += 1
				var killed = mouse2d.get_overlapping_bodies()[0]
				killed.boom()
				score += killed.speed
				score_gui.text = str(score)
				killed.target= killed.global_position
				enemies.erase(killed)

func random_pos():
	var vpr = get_viewport_rect().size * randf_range(1.1, 1.4)
#	var vpr_w = (vpr.x / 2)
#	var vpr_h = (vpr.y / 2)
#	var top_left  = Vector2(cam.global_position.x - vpr_w, cam.global_position.y - vpr_h)
#	var top_right = Vector2(cam.global_position.x + vpr_w, cam.global_position.y - vpr_h)
#
#	var bottom_left  = Vector2(cam.global_position.x - vpr_w, cam.global_position.y + vpr_h)
#	var bottom_right = Vector2(cam.global_position.x + vpr_w, cam.global_position.y + vpr_h)
	var top_left  = Vector2(0.0, 0.0)
	var top_right = Vector2(vpr.x, 0.0)
#
	var bottom_left  = Vector2(0.0, vpr.y)
	var bottom_right = Vector2(vpr.x, vpr.y)

	var ar_ray = [top_left, top_right, bottom_right, bottom_left, top_left];
	var idx  = randi_range(0, 3)

	return Vector2(randf_range(ar_ray[idx].x,ar_ray[idx+1].x), randf_range(ar_ray[idx].y,ar_ray[idx+1].y))

func _on_timer_timeout():
	if not $CanvasLayer/PanelContainer.visible:
		for _i in range(0, max(kills / 10, 1)):
			enemies.append(spawn())

func spam():
	if not $CanvasLayer/PanelContainer.visible:
		for _i in range(0, 10):
			enemies.append(spawn())

func spawn():
	print("spawning")

	var new_guy = [flyer, swimmer, walker, flyer_green, swimmer_green, walker_green, flyer_blue, swimmer_blue, walker_blue].pick_random().instantiate()
	new_guy.position = random_pos()
	add_child(new_guy)
	return new_guy

func _on_player_player_died():
	print("game over")
	$Music.stop()
	$EndSound.play()
	$Timer.stop()
	$CanvasLayer/PanelContainer/VBoxContainer/Label.text= "Score: %d Time: %.2f" % [score, time]
	$CanvasLayer/PanelContainer.show()
	kills = 0
	for enemy in enemies:
		enemy.queue_free()
		enemies = []

func _on_button_pressed():
	$Music.play()
	$CanvasLayer/PanelContainer.hide()
	$Timer.start()
	enemies.append(spawn())


code:
extends Node2D
signal player_died
var speed : = 45
# Called when the node enters the scene tree for the first time.
func _ready():
	pass # Replace with function body.
func _process(_delta):
	look_at(get_global_mouse_position())
# Called every frame. 'delta' is the elapsed time since the previous frame.

func _on_node_2d_body_entered(body):
	emit_signal("player_died")
	pass # Replace with function body.


code:
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs     diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc   diff=astextplain
#*.DOC   diff=astextplain
#*.docx  diff=astextplain
#*.DOCX  diff=astextplain
#*.dot   diff=astextplain
#*.DOT   diff=astextplain
#*.pdf   diff=astextplain
#*.PDF   diff=astextplain
#*.rtf   diff=astextplain
#*.RTF   diff=astextplain

repo_name: Ziegiwugen/rimworld

license: unknown


code:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- Backup*.rdl

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush personal settings
.cr/personal

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output
ASALocalRun/

# MSBuild Binary and Structured Log
*.binlog

# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
.mfractor/

# Local History for Visual Studio
.localhistory/

# BeatPulse healthcheck temp database
healthchecksdb
/Source/Patches/PawnAnimationPatches/HarmonyPatch_Pawn_DrawTracker.cs
/Source/Patches/PawnAnimationPatches/HarmonyPatch_PawnRotation.cs
/Source/Patches/PawnAnimationPatches/HarmonyPatch_PawnRenderer.cs
/Source/Patches/OtherModPatches/HarmonyPatch_ShowHairWithHats.cs
/Source/Patches/OtherModPatches/HarmonyPatch_FacialAnimation.cs
/Source/Patches/OtherModPatches/HarmonyPatch_DontShaveYourHead.cs
/Source/Patches/OtherModPatches/HarmonyPatch_CSL.cs
/Source/Patches/OtherModPatches/HarmonyPatch_AlienRace.cs
/Source/Patches/ThingAnimationPatches/HarmonyPatch_ThingDrawAt.cs
/Defs/AnimationDefs/Animations_SexToys.xml