troublemakers
This commit is contained in:
parent
f6b36c722c
commit
7b36f2d53b
18 changed files with 630 additions and 8 deletions
10
global.gd
10
global.gd
|
@ -13,17 +13,17 @@ var playerx
|
|||
var playery
|
||||
var ccutscene = null
|
||||
const cutscenes = [["res://levels/Cutscenes/opening/aboutkaizo.tscn", "res://levels/Cutscenes/opening/midorihello.tscn", 18, false], ["res://levels/Cutscenes/opening/midorihello.tscn", "res://levels/Cutscenes/opening/fearlessmidori.tscn", 18, false], ["res://levels/Cutscenes/opening/fearlessmidori.tscn", "res://levels/Cutscenes/opening/midoriwaterfall.tscn", 0, false], ["res://levels/Cutscenes/opening/midoriwaterfall.tscn", "res://levels/Cutscenes/opening/midorireading.tscn", 0, false], ["res://levels/Cutscenes/opening/midorireading.tscn", "res://levels/Cutscenes/opening/boomboomtorofi.tscn", 0, false], ["res://levels/Cutscenes/opening/boomboomtorofi.tscn", "res://levels/ui/gameplay.tscn", 0, true], ["res://levels/Cutscenes/unfunaversary/punishment.tscn", "res://levels/Cutscenes/unfunaversary/sadness.tscn", 1, false], ["res://levels/Cutscenes/unfunaversary/sadness.tscn", "res://levels/Cutscenes/unfunaversary/r3.tscn", 1, false], ["res://levels/Cutscenes/unfunaversary/r3.tscn", "res://levels/Cutscenes/unfunaversary/firstclass.tscn", 1, false], ["res://levels/Cutscenes/unfunaversary/firstclass.tscn", "res://backgounds/result.tscn", 5, true]]
|
||||
const pcnames = ["Midori Asgardius", "Diana Asgardius", null, "Kimberly Arch", null, null, null, null, null, "Natasha Dostoyevsky"]
|
||||
const pcnames = ["Midori Asgardius", "Diana Asgardius", null, "Kimberly Arch", null, null, null, "Pamela Hashimoto", "Lety Hashimoto", "Natasha Dostoyevsky"]
|
||||
const npcnames = ["Lily", null, null, "Kimberly Arch", null, null, null, null, null, "Natasha Dostoyevsky"]
|
||||
const pcfaces = [["res://sprites/common/midori/face.png"], ["res://sprites/common/tuna/face.png"], [null], ["res://sprites/common/kimberly/face.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/face.png"]]
|
||||
const hudfaces = [["res://sprites/common/midori/facehud.png"], ["res://sprites/common/tuna/facehud.png"], [null], ["res://sprites/common/kimberly/facehud.png"], [null], [null], [null], [null], [null], ["res://sprites/common/natasha/facehud.png"]]
|
||||
const pcfaces = [["res://sprites/common/midori/face.png"], ["res://sprites/common/tuna/face.png"], [null], ["res://sprites/common/kimberly/face.png"], [null], [null], [null], ["res://sprites/ceres/pamela/face.png"], ["res://sprites/ceres/lety/face.png"], ["res://sprites/common/natasha/face.png"]]
|
||||
const hudfaces = [["res://sprites/common/midori/facehud.png"], ["res://sprites/common/tuna/facehud.png"], [null], ["res://sprites/common/kimberly/facehud.png"], [null], [null], [null], ["res://sprites/ceres/pamela/facehud.png"], ["res://sprites/ceres/lety/facehud.png"], ["res://sprites/common/natasha/facehud.png"]]
|
||||
const npcfaces = ["res://sprites/common/midori/face.png",null, null, "res://sprites/common/kimberly/face.png", null, null, null, null, null, "res://sprites/common/natasha/face.png"]
|
||||
const basestats = [[800, 200, 52, 12, 136, 25, 800], [1094, 200, 54, 7, 106, 48, 600], [null], [1143, 200, 59, 5, 117, 18, 650], [null], [null], [null], [null], [null], [1026, 200, 87, 7, 105, 49, 115]]
|
||||
var cstats = [[800, 200, 52, 12, 136, 25, 800], [1094, 200, 54, 7, 106, 48, 600], [null], [1143, 200, 59, 5, 117, 18, 650], [null], [null], [null], [null], [null], [1026, 200, 87, 7, 105, 49, 115]]
|
||||
var dstats = [[800, 200, 52, 12, 136, 25, 800], [1094, 200, 54, 7, 106, 48, 600], [null], [1143, 200, 59, 5, 117, 18, 650], [null], [null], [null], [null], [null], [1026, 200, 87, 7, 105, 49, 115]]
|
||||
var mstats = [[null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null], [null, null, null, null, null, null, null]]
|
||||
var cdialog = []
|
||||
const places = [[[["res://levels/Ceres/map.tscn", 5, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]], [null, null, null, null, null, null, null, null, [null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/honkerrailway.tscn", 19, false]], null, null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/L20.tscn", 3, true]]]]
|
||||
const places = [[[["res://levels/Ceres/map.tscn", 5, false], [null, null, false]], [["res://levels/Testrooms/bullethell.tscn", 11, true], ["res://levels/Testrooms/lilytest.tscn", 6, false]], [["res://levels/Testrooms/dialogtest.tscn", 19, false], ["res://levels/Testrooms/testspawn.tscn", 2 ,false]]], [null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/troublemakers.tscn", 6, true]], null, null, null, null, null, null, [null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/honkerrailway.tscn", 19, false]], null, null, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, ["res://levels/Ceres/L20.tscn", 3, true]]]]
|
||||
var cplace = [0,2,1]
|
||||
var dplace = [null, null, null]
|
||||
const pbbullets = ["res://sprites/common/bullet/fireball.tscn", "res://sprites/common/bullet/sword.tscn", null, "res://sprites/common/bullet/arrow.tscn", null, null, null, null, null, "res://sprites/common/bullet/snowflake.tscn"]
|
||||
|
@ -34,7 +34,7 @@ var cboss = [null, null, null]
|
|||
var isboss
|
||||
var party = [[0,0], [1,0], [9,0], [3,0]]
|
||||
const specialities = [2, 0, 3, 1, 5, 4]
|
||||
var dparty = [[0,0], [1,0], [9,0], [3,0]]
|
||||
var dparty = [[0,0], [1,0], [3,0], [9,0]]
|
||||
var level = [1,1,1,1,1,1,1,1,1,1]
|
||||
var dlevel = [1,1,1,1,1,1,1,1,1,1]
|
||||
var cpchar = 0
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=19 format=3 uid="uid://c4ldh7ydn78bh"]
|
||||
[gd_scene load_steps=21 format=3 uid="uid://c4ldh7ydn78bh"]
|
||||
|
||||
[ext_resource type="Script" path="res://levels/Ceres/honkerrailway.gd" id="1_75qhf"]
|
||||
[ext_resource type="Texture2D" uid="uid://l26qimo56l1w" path="res://sprites/ceres/items/hkr.png" id="2_qaay0"]
|
||||
[ext_resource type="Texture2D" uid="uid://dhrj7a0xr4bh1" path="res://sprites/ceres/items/ltc.png" id="3_4ekhw"]
|
||||
[ext_resource type="Texture2D" uid="uid://c1jjhut8fuf1w" path="res://sprites/ceres/railway/sprite.png" id="3_4r2wm"]
|
||||
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="3_uvwc3"]
|
||||
|
||||
|
@ -14,6 +15,9 @@ size = Vector2(1283, 20)
|
|||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_dw13o"]
|
||||
size = Vector2(224, 409)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6hhd2"]
|
||||
size = Vector2(68, 152)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hyd1a"]
|
||||
size = Vector2(86, 256)
|
||||
|
||||
|
@ -217,6 +221,15 @@ texture = ExtResource("2_qaay0")
|
|||
position = Vector2(1, -4.5)
|
||||
shape = SubResource("RectangleShape2D_dw13o")
|
||||
|
||||
[node name="StaticBody2D6" type="StaticBody2D" parent="."]
|
||||
position = Vector2(384, 186)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="StaticBody2D6"]
|
||||
texture = ExtResource("3_4ekhw")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D6"]
|
||||
shape = SubResource("RectangleShape2D_6hhd2")
|
||||
|
||||
[node name="Railwaygirl" type="CharacterBody2D" parent="."]
|
||||
position = Vector2(473, 133)
|
||||
|
||||
|
|
50
levels/Ceres/troublemakers.gd
Normal file
50
levels/Ceres/troublemakers.gd
Normal file
|
@ -0,0 +1,50 @@
|
|||
extends Node2D
|
||||
var talk = load("res://levels/ui/talk.tscn").instantiate()
|
||||
var boss
|
||||
var player
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
boss = $Pamela
|
||||
player = $Player
|
||||
boss.add_to_group("boss")
|
||||
Global.cdialog = [[tr("DIALOG_TROUBLEMAKER_0"), true, 0, 0], [tr("DIALOG_TROUBLEMAKER_1"), true, 7, 0], [tr("DIALOG_TROUBLEMAKER_2"), true, 0, 0]]
|
||||
Global.live = 0
|
||||
get_tree().root.add_child.call(talk)
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
func _physics_process(delta):
|
||||
if Global.debug:
|
||||
if Global.dstats[Global.dparty[0][0]][0] <= 0 && Global.live == 1:
|
||||
_winner()
|
||||
else:
|
||||
if Global.cstats[Global.party[0][0]][0] <= 0 && Global.live == 1:
|
||||
_winner()
|
||||
|
||||
func _input(event):
|
||||
if Global.cdialog.size() != 0 && Global.live == 1:
|
||||
get_tree().root.remove_child(talk)
|
||||
Global.cdialog = []
|
||||
|
||||
func _winner():
|
||||
Global.cdialog = [[tr("DIALOG_CERES_L20_3"), true, 0, 0], [tr("DIALOG_CERES_L20_4"), false, 3], [tr("DIALOG_CERES_L20_5"), true, 0, 0]]
|
||||
Global.live = 3
|
||||
Global.ccutscene = 6
|
||||
#talk.queue_free()
|
||||
talk = load("res://levels/ui/talk.tscn").instantiate()
|
||||
get_tree().root.add_child.call(talk)
|
||||
|
||||
func _statrebase():
|
||||
if Global.debug:
|
||||
for i in 4:
|
||||
if Global.dparty[i][0] != null:
|
||||
for j in 7:
|
||||
Global.mstats[Global.dparty[i][0]][j] = Global.basestats[Global.dparty[i][0]][j] * Global.dlevel[Global.dparty[i][0]]
|
||||
else:
|
||||
for i in 4:
|
||||
if Global.party[i][0] != null:
|
||||
for j in 7:
|
||||
Global.mstats[Global.party[i][0]][j] = Global.basestats[Global.party[i][0]][j] * Global.level[Global.dparty[i][0]]
|
66
levels/Ceres/troublemakers.tscn
Normal file
66
levels/Ceres/troublemakers.tscn
Normal file
|
@ -0,0 +1,66 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://b06kxtu82485n"]
|
||||
|
||||
[ext_resource type="Script" path="res://levels/Ceres/troublemakers.gd" id="1_8o6q0"]
|
||||
[ext_resource type="Texture2D" uid="uid://dursxelwwxe8u" path="res://sprites/common/placeholder/player.png" id="2_sgxbf"]
|
||||
[ext_resource type="PackedScene" uid="uid://dya2jipk8eq2s" path="res://sprites/ceres/pamela/pamela.tscn" id="3_8xsbu"]
|
||||
[ext_resource type="PackedScene" uid="uid://cehe6sm8ly06u" path="res://sprites/common/player/player.tscn" id="4_nfhf4"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1jr1w"]
|
||||
size = Vector2(20, 761)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_iptg6"]
|
||||
size = Vector2(1283, 20)
|
||||
|
||||
[node name="Troublemakers" type="Node2D"]
|
||||
script = ExtResource("1_8o6q0")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
custom_minimum_size = Vector2(1280, 720)
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
color = Color(0, 0.619608, 0.270588, 1)
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
offset_left = 583.0
|
||||
offset_top = 4.0
|
||||
offset_right = 711.0
|
||||
offset_bottom = 260.0
|
||||
texture = ExtResource("2_sgxbf")
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
offset_left = 327.0
|
||||
offset_top = 354.0
|
||||
offset_right = 957.0
|
||||
offset_bottom = 409.0
|
||||
theme_override_font_sizes/font_size = 40
|
||||
text = "Boss spawns at EBU pattern area"
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
position = Vector2(-11, 361.5)
|
||||
shape = SubResource("RectangleShape2D_1jr1w")
|
||||
|
||||
[node name="StaticBody2D2" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D2"]
|
||||
position = Vector2(1293, 358)
|
||||
shape = SubResource("RectangleShape2D_1jr1w")
|
||||
|
||||
[node name="StaticBody2D3" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D3"]
|
||||
position = Vector2(641.5, -9)
|
||||
shape = SubResource("RectangleShape2D_iptg6")
|
||||
|
||||
[node name="StaticBody2D4" type="StaticBody2D" parent="."]
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D4"]
|
||||
position = Vector2(644, 731)
|
||||
shape = SubResource("RectangleShape2D_iptg6")
|
||||
|
||||
[node name="Pamela" parent="." instance=ExtResource("3_8xsbu")]
|
||||
position = Vector2(643, 129)
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("4_nfhf4")]
|
||||
position = Vector2(652, 590)
|
|
@ -62,3 +62,9 @@ func _on_dialogtest_pressed() -> void:
|
|||
Global.dplace = [1, 8, 11]
|
||||
Global.live = 1
|
||||
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
|
||||
|
||||
|
||||
func _on_bullethell_pressed() -> void:
|
||||
Global.dplace = [1, 1, 17]
|
||||
Global.live = 1
|
||||
get_tree().change_scene_to_file("res://levels/ui/gameplay.tscn")
|
||||
|
|
|
@ -73,7 +73,7 @@ text = "Honker Railway"
|
|||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 32
|
||||
theme_override_styles/focus = SubResource("StyleBoxFlat_6u0xs")
|
||||
text = "BUTTON_PLACEHOLDER"
|
||||
text = "TWIN_TROUBLEMAKERS"
|
||||
|
||||
[node name="Credits" type="Button" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
@ -96,4 +96,5 @@ text = "BUTTON_RETURN"
|
|||
[connection signal="pressed" from="VBoxContainer/L20" to="." method="_on_l_20_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/Lilytest" to="." method="_on_lilytest_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/Dialogtest" to="." method="_on_dialogtest_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/Bullethell" to="." method="_on_bullethell_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/Back" to="." method="_on_back_pressed"]
|
||||
|
|
|
@ -26,6 +26,7 @@ color = Color(0, 0, 0, 1)
|
|||
[node name="Bottomhud" parent="CanvasLayer" instance=ExtResource("2_jnb0v")]
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer"]
|
||||
layout_direction = 3
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ func _input(event):
|
|||
if dindex < Global.cdialog.size():
|
||||
if Global.cdialog[dindex][1]:
|
||||
cname.set_text(Global.pcnames[Global.cdialog[dindex][2]])
|
||||
pface.texture = load((Global.pcfaces[Global.cdialog[dindex][2]][Global.cdialog[dindex][2]]))
|
||||
pface.texture = load((Global.pcfaces[Global.cdialog[dindex][2]][Global.cdialog[dindex][3]]))
|
||||
else:
|
||||
cname.set_text(Global.npcnames[Global.cdialog[dindex][2]])
|
||||
pface.texture = load((Global.npcfaces[Global.cdialog[dindex][2]]))
|
||||
|
|
|
@ -65,11 +65,13 @@ text = "100/100"
|
|||
horizontal_alignment = 2
|
||||
|
||||
[node name="Topminibg" type="ColorRect" parent="CanvasLayer"]
|
||||
layout_direction = 3
|
||||
offset_right = 438.0
|
||||
offset_bottom = 116.0
|
||||
color = Color(0.254902, 0.254902, 0.254902, 1)
|
||||
|
||||
[node name="Topmini" type="HBoxContainer" parent="CanvasLayer"]
|
||||
layout_direction = 3
|
||||
offset_right = 377.0
|
||||
offset_bottom = 116.0
|
||||
|
||||
|
@ -159,12 +161,14 @@ color = Color(0, 0, 1, 1)
|
|||
|
||||
[node name="Topleftbg" type="ColorRect" parent="CanvasLayer"]
|
||||
visible = false
|
||||
layout_direction = 3
|
||||
offset_right = 437.0
|
||||
offset_bottom = 476.0
|
||||
color = Color(0.254902, 0.254902, 0.254902, 1)
|
||||
|
||||
[node name="Topleft" type="VBoxContainer" parent="CanvasLayer"]
|
||||
visible = false
|
||||
layout_direction = 3
|
||||
offset_right = 377.0
|
||||
offset_bottom = 476.0
|
||||
|
||||
|
|
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"]
|
4
text.csv
4
text.csv
|
@ -110,7 +110,11 @@ DIALOG_CERES_L20_2;My magic wand VS your bow;Mi vara mágica contra tu arco;私
|
|||
DIALOG_CERES_L20_3;I'm tired;Estoy cansada;私は疲れている
|
||||
DIALOG_CERES_L20_4;You must study at Kaizo Magic School as you promised;Debes estudiar en la escuela de Magia Kaizo como prometiste;約束通りカイゾー魔法学校で勉強しなくちゃ
|
||||
DIALOG_CERES_L20_5;It seems I'm lucky;Parece que tengo suerte;私は幸運のようです
|
||||
DIALOG_TROUBLEMAKER_0;Hey, I just want to be your friend.;Oye, solamente quiero ser tu amiga;ねえ、私はただあなたと友達になりたいだけよ。
|
||||
DIALOG_TROUBLEMAKER_1;I hate rubber terrorists like you;Odio a las terroristas de hule como tu;あなたのようなゴムテロリストは嫌いです
|
||||
DIALOG_TROUBLEMAKER_2;I am not a terrorist;No soy una terrorista;私はテロリストではない
|
||||
CERES_L20_DESC;Kimberly’s Challenge;Reto de Kimberly;キンバリーの挑戦
|
||||
TWIN_TROUBLEMAKERS;Twin Troublemakers;Gemelas problématicas;双子のトラブルメーカー
|
||||
MENU_CHARACTER;Character List;Lista de Personajes;キャラクター一覧
|
||||
MENU_TEAM;Team List;Lista de Equipos;チーム
|
||||
MENU_MAP;World Map;Mapa Mundial;世界地図
|
||||
|
|
|
Loading…
Reference in a new issue