troublemakers
This commit is contained in:
parent
f6b36c722c
commit
7b36f2d53b
18 changed files with 630 additions and 8 deletions
BIN
sprites/ceres/items/ltc.png
Normal file
BIN
sprites/ceres/items/ltc.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
34
sprites/ceres/items/ltc.png.import
Normal file
34
sprites/ceres/items/ltc.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dhrj7a0xr4bh1"
|
||||
path="res://.godot/imported/ltc.png-5590e18256969f120615104700fbbd3c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/ceres/items/ltc.png"
|
||||
dest_files=["res://.godot/imported/ltc.png-5590e18256969f120615104700fbbd3c.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
|
116
sprites/ceres/pamela/pamela.gd
Normal file
116
sprites/ceres/pamela/pamela.gd
Normal file
|
@ -0,0 +1,116 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
var theta: float = 0.0
|
||||
@export_range(0,2*PI) var alpha: float = 1.5
|
||||
var bullet = load("res://sprites/common/bullet/tnt.tscn")
|
||||
|
||||
|
||||
|
||||
const SPEED = 300.0
|
||||
const fspeed = 100.0
|
||||
|
||||
const JUMP_VELOCITY = -400.0
|
||||
var vangle = 2
|
||||
var weakness = 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var movex = 0
|
||||
var movey = 0
|
||||
var attack = 59
|
||||
var crit = 5
|
||||
|
||||
|
||||
|
||||
func _ready():
|
||||
if Global.isboss:
|
||||
Global.cboss = ["Pamela Hashimoto",800,800]
|
||||
var stimer = $Speed
|
||||
stimer.start(0.05)
|
||||
|
||||
func get_vector(angle):
|
||||
theta = angle + alpha
|
||||
return Vector2(cos(theta),sin(theta))
|
||||
|
||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||
|
||||
@onready var anim := $AnimationPlayer
|
||||
|
||||
func _physics_process(delta):
|
||||
if Global.live == 1:
|
||||
if Global.playerx < position.x && (position.x - Global.playerx) > 200:
|
||||
movex = -1
|
||||
elif Global.playerx > position.x && (Global.playerx - position.x) > 200:
|
||||
movex = 1
|
||||
else:
|
||||
movex = 0
|
||||
if Global.playery < position.y && (position.y - Global.playery) > 200:
|
||||
movey = -1
|
||||
elif Global.playery > position.y && (Global.playery - position.y) > 200:
|
||||
movey = 1
|
||||
else:
|
||||
movey = 0
|
||||
else:
|
||||
movex = 0
|
||||
movey = 0
|
||||
velocity.x = movex * fspeed * delta
|
||||
velocity.y = movey * fspeed * delta
|
||||
# Add the gravity.
|
||||
#var velocity = Vector2.ZERO
|
||||
#if Global.live == 1:
|
||||
#velocity = (Vector2.RIGHT.rotated(rotation) * 500 * Global.xm * delta)-Vector2.UP.rotated(rotation) * 500 * Global.ym * delta
|
||||
#origmpos = get_viewport().get_mouse_position()
|
||||
#if Input.get_joy_axis(0,JOY_AXIS_LEFT_Y) != 0:
|
||||
# velocity = Vector2.UP.rotated(rotation) * -400 * Input.get_joy_axis(0,JOY_AXIS_LEFT_Y)
|
||||
#position += velocity
|
||||
position += velocity
|
||||
if velocity.y > 0.3:
|
||||
vangle = 2
|
||||
elif velocity.y < -0.3:
|
||||
vangle = 0
|
||||
elif velocity.x > 0.3:
|
||||
vangle = 1
|
||||
elif velocity.x < -0.3:
|
||||
vangle = 3
|
||||
if velocity.y != 0 || velocity.x != 0:
|
||||
if vangle == 0:
|
||||
anim.play("nwalk")
|
||||
elif vangle == 1:
|
||||
anim.play("ewalk")
|
||||
elif vangle == 3:
|
||||
anim.play("wwalk")
|
||||
else:
|
||||
anim.play("swalk")
|
||||
else:
|
||||
if vangle == 0:
|
||||
anim.play("nidle")
|
||||
elif vangle == 1:
|
||||
anim.play("eidle")
|
||||
elif vangle == 3:
|
||||
anim.play("widle")
|
||||
else:
|
||||
anim.play("sidle")
|
||||
#move_and_slide()
|
||||
func shoot(angle):
|
||||
var new_bullet = bullet.instantiate()
|
||||
new_bullet.position = Vector2(position.x, position.y)
|
||||
new_bullet.direction = get_vector(angle)
|
||||
new_bullet.btype = "boss"
|
||||
new_bullet.attack = attack
|
||||
new_bullet.crit = crit
|
||||
new_bullet.speciality = 3
|
||||
get_parent().call_deferred("add_child",new_bullet)
|
||||
|
||||
|
||||
func _on_speed_timeout():
|
||||
if Global.live == 1:
|
||||
shoot(theta)
|
184
sprites/ceres/pamela/pamela.tscn
Normal file
184
sprites/ceres/pamela/pamela.tscn
Normal file
|
@ -0,0 +1,184 @@
|
|||
[gd_scene load_steps=14 format=3 uid="uid://dya2jipk8eq2s"]
|
||||
|
||||
[ext_resource type="Script" path="res://sprites/ceres/pamela/pamela.gd" id="1_6fvfy"]
|
||||
[ext_resource type="Texture2D" uid="uid://dt8ufdvgghipy" path="res://sprites/ceres/pamela/sprite.png" id="2_v1g13"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mcaff"]
|
||||
size = Vector2(86, 256)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_i5rhc"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_8my4d"]
|
||||
resource_name = "eidle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [6]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_op07l"]
|
||||
resource_name = "ewalk"
|
||||
length = 0.3
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [7, 6, 8]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_cajcr"]
|
||||
resource_name = "nidle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.2),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [3]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7lhgw"]
|
||||
resource_name = "nwalk"
|
||||
length = 0.3
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [4, 3, 5]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_w3ius"]
|
||||
resource_name = "sidle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_u56r5"]
|
||||
resource_name = "swalk"
|
||||
length = 0.3
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [1, 0, 2]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_isodq"]
|
||||
resource_name = "widle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.2),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_letwb"]
|
||||
resource_name = "wwalk"
|
||||
length = 0.3
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite2D:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [10, 9, 11]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mh65y"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_i5rhc"),
|
||||
"eidle": SubResource("Animation_8my4d"),
|
||||
"ewalk": SubResource("Animation_op07l"),
|
||||
"nidle": SubResource("Animation_cajcr"),
|
||||
"nwalk": SubResource("Animation_7lhgw"),
|
||||
"sidle": SubResource("Animation_w3ius"),
|
||||
"swalk": SubResource("Animation_u56r5"),
|
||||
"widle": SubResource("Animation_isodq"),
|
||||
"wwalk": SubResource("Animation_letwb")
|
||||
}
|
||||
|
||||
[node name="Pamela" type="CharacterBody2D"]
|
||||
script = ExtResource("1_6fvfy")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2_v1g13")
|
||||
hframes = 3
|
||||
vframes = 4
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_mcaff")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_mh65y")
|
||||
}
|
||||
|
||||
[node name="Speed" type="Timer" parent="."]
|
||||
wait_time = 0.1
|
||||
|
||||
[connection signal="timeout" from="Speed" to="." method="_on_speed_timeout"]
|
84
sprites/common/bullet/tnt.gd
Normal file
84
sprites/common/bullet/tnt.gd
Normal file
|
@ -0,0 +1,84 @@
|
|||
extends Area2D
|
||||
var velocity: Vector2 = Vector2()
|
||||
var direction
|
||||
var speed = 100
|
||||
var btype
|
||||
var isvisible
|
||||
var speciality
|
||||
var attack
|
||||
var crit
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
isvisible = $VisibleOnScreenNotifier2D
|
||||
add_to_group(btype)
|
||||
#pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
func _physics_process(delta):
|
||||
if isvisible.is_on_screen() && Global.live != 4:
|
||||
if direction == null:
|
||||
position += velocity * delta
|
||||
else:
|
||||
position += speed * delta * direction
|
||||
|
||||
|
||||
func _on_body_entered(body):
|
||||
if !body.is_in_group(btype) && Global.live == 1:
|
||||
if body.is_in_group("players") && Global.dificulty != 1:
|
||||
if body.weakness == 1:
|
||||
print("weakness")
|
||||
#Input.start_joy_vibration(0,0,1,3)
|
||||
if Global.debug:
|
||||
if Global.dstats[Global.dparty[Global.dcpchar][0]][0] > (attack * crit):
|
||||
Global.dstats[Global.dparty[Global.dcpchar][0]][0] -= attack * crit
|
||||
else:
|
||||
Global.dstats[Global.dparty[Global.dcpchar][0]][0] = 0
|
||||
else:
|
||||
if Global.cstats[Global.party[Global.cpchar][0]][0] > (attack * crit):
|
||||
Global.cstats[Global.party[Global.cpchar][0]][0] -= attack * crit
|
||||
else:
|
||||
Global.cstats[Global.party[Global.cpchar][0]][0] = 0
|
||||
else:
|
||||
#Input.start_joy_vibration(0,1,0,2)
|
||||
if Global.debug:
|
||||
if Global.dstats[Global.dparty[Global.dcpchar][0]][0] > attack:
|
||||
Global.dstats[Global.dparty[Global.dcpchar][0]][0] -= attack
|
||||
else:
|
||||
Global.dstats[Global.dparty[Global.dcpchar][0]][0] = 0
|
||||
else:
|
||||
if Global.cstats[Global.party[Global.cpchar][0]][0] > attack:
|
||||
Global.cstats[Global.party[Global.cpchar][0]][0] -= attack
|
||||
else:
|
||||
Global.cstats[Global.party[Global.cpchar][0]][0] = 0
|
||||
elif body.is_in_group("boss") && Global.dificulty != 1:
|
||||
if body.weakness == 1:
|
||||
print("weakness")
|
||||
if Global.cboss[1] >= (attack * crit):
|
||||
Global.cboss[1] -= attack * crit
|
||||
else:
|
||||
Global.cboss[1] = 0
|
||||
else:
|
||||
if Global.cboss[1] >= (attack):
|
||||
Global.cboss[1] -= attack
|
||||
else:
|
||||
Global.cboss[1] = 0
|
||||
elif body.is_in_group("enemies") && Global.dificulty != 1:
|
||||
if body.weakness == 1:
|
||||
print("weakness")
|
||||
#if body.is_in_group("players"):
|
||||
# Global.live = 2
|
||||
#elif body.is_in_group("enemies"):
|
||||
# Global.live = 3
|
||||
#elif body.is_in_group("boss"):
|
||||
# Global.live = 3
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_area_entered(area):
|
||||
if !area.is_in_group(btype):
|
||||
queue_free()
|
||||
#pass # Replace with function body.
|
BIN
sprites/common/bullet/tnt.png
Normal file
BIN
sprites/common/bullet/tnt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
34
sprites/common/bullet/tnt.png.import
Normal file
34
sprites/common/bullet/tnt.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cjbt01ulncdgj"
|
||||
path="res://.godot/imported/tnt.png-6541ca3ae0c96323a95e42f780200f46.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://sprites/common/bullet/tnt.png"
|
||||
dest_files=["res://.godot/imported/tnt.png-6541ca3ae0c96323a95e42f780200f46.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
|
25
sprites/common/bullet/tnt.tscn
Normal file
25
sprites/common/bullet/tnt.tscn
Normal file
|
@ -0,0 +1,25 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://bii2vgqrqw754"]
|
||||
|
||||
[ext_resource type="Script" path="res://sprites/common/bullet/tnt.gd" id="1_eqk30"]
|
||||
[ext_resource type="Texture2D" uid="uid://cjbt01ulncdgj" path="res://sprites/common/bullet/tnt.png" id="2_ha8c6"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_g125y"]
|
||||
size = Vector2(18, 65)
|
||||
|
||||
[node name="Tnt" type="Area2D"]
|
||||
script = ExtResource("1_eqk30")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
position = Vector2(-9, 0)
|
||||
texture = ExtResource("2_ha8c6")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(1, 0.5)
|
||||
shape = SubResource("RectangleShape2D_g125y")
|
||||
|
||||
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
|
||||
position = Vector2(0.999999, -1.78814e-07)
|
||||
scale = Vector2(0.9, 3.2)
|
||||
|
||||
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
|
||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
Loading…
Add table
Add a link
Reference in a new issue