Skip to content

Commit

Permalink
Merge pull request #248 from skni-kod/enhancement/issue-247-Sklep
Browse files Browse the repository at this point in the history
Sklep
  • Loading branch information
CyberSer0 authored Dec 20, 2021
2 parents ce3453e + 1d8f1ab commit bf41924
Show file tree
Hide file tree
Showing 11 changed files with 342 additions and 139 deletions.
Binary file added Assets/npc/sklep.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions Assets/npc/sklep.png.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/sklep.png-081d21bb39b700ef90963b3d0986d156.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://Assets/npc/sklep.png"
dest_files=[ "res://.import/sklep.png-081d21bb39b700ef90963b3d0986d156.stex" ]

[params]

compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0
138 changes: 43 additions & 95 deletions Scenes/Actors/Player.gd
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,6 @@ var knockback = Vector2.ZERO
var knockbackResistance = 1 # rezystancja knockbacku zakres -> (0.6-nieskończoność), poniżej 0.6 przeciwnicy za daleko odlatują
# === ===================== === #

var in_sklep = false
var skl_odw = false


var immortal = 0 #jezeli rowne 1 to niesmiertelny

func UpdatePotions(): #funkcja aktualizująca status potek
Expand Down Expand Up @@ -215,22 +211,11 @@ func _physics_process(delta): #funkcja wywoływana co klatkę
if weapons[1] != weaponToTake.WeaponName and weapons[2] != weaponToTake.WeaponName:
self.speed = 100
current_weapon = check_current_weapon()
if Bufor.in_sklep and skl_odw == false:
if coins >= 50:
coins -= 50
level.get_node("UI/Coins").text = "Coins:"+str(coins)
skl_odw = true
if weapons[2] == "Empty":
swap_weapon(2,weaponToTake)
else:
if current_weapon != null:
swap_weapon(current_weapon,weaponToTake)
if weapons[2] == "Empty":
swap_weapon(2,weaponToTake)
else:
if weapons[2] == "Empty":
swap_weapon(2,weaponToTake)
else:
if current_weapon != null:
swap_weapon(current_weapon,weaponToTake)
if current_weapon != null:
swap_weapon(current_weapon,weaponToTake)

if chest != null: #Jeżeli gracz stoi przy skrzyni
if Input.is_action_just_pressed("pick"):
Expand All @@ -239,51 +224,26 @@ func _physics_process(delta): #funkcja wywoływana co klatkę

if potion != null: #Jeżeli gracz stoi przy potionie
if Input.is_action_just_pressed("pick"): #jeżeli gracz naciśnie przycisk pick
if Bufor.in_sklep:
if coins > 20:
coins-=20
level.get_node("UI/Coins").text = "Coins:"+str(coins)
var potion_name = potion.get_node("PotionNameHolder").text #zmienna przechowująca nazwe potka bez oznaczenia kopii np 50%Potion
var potion_tmp = potion.name #zmienna przechowująca rzeczywistą nazwe danego potka w scenie np 50%Potion2
if potions[1]=="Empty": #jeżeli niema potka na slocie 1 to:
swap_potion(1,potion_name) #ustawienie na slot 1 potka przy ktorym stoi gracz
elif potions[2]=="Empty": #jeżeli niema potka na slocie 2 to:
swap_potion(2,potion_name) #ustawienie na slot 2 potka przy ktorym stoi gracz
else:
potions_amount[potions[1]] = 0 #wyzerowanie ilości potków aktualnego potka na miejscu 1
swap_potion(1,potion_name) #ustawienie na slot 1 potka przy ktorym stoi gracz
if "50%Potion" in potion_name:
potions_amount["50%Potion"]+=1 #zwieksza ilość potek 50% o 1
elif "100%Potion" in potion_name:
potions_amount["100%Potion"]+=1#zwieksza ilość potek 100% o 1
elif "20healthPotion" in potion_name:
potions_amount["20healthPotion"]+=1 #zwieksza ilość potek 20hp o 1
elif "60healthPotion" in potion_name:
potions_amount["60healthPotion"]+=1 #zwieksza ilość potek 60hp o 1
potion = null #wyzerowanie zmiennej potion, czyli gracz niestoi już przy potku
level.get_node(potion_tmp).queue_free() #usuniecie podniesionego potka z sceny
UpdatePotions()
var potion_name = potion.get_node("PotionNameHolder").text #zmienna przechowująca nazwe potka bez oznaczenia kopii np 50%Potion
var potion_tmp = potion.name #zmienna przechowująca rzeczywistą nazwe danego potka w scenie np 50%Potion2
if potions[1]=="Empty": #jeżeli niema potka na slocie 1 to:
swap_potion(1,potion_name) #ustawienie na slot 1 potka przy ktorym stoi gracz
elif potions[2]=="Empty": #jeżeli niema potka na slocie 2 to:
swap_potion(2,potion_name) #ustawienie na slot 2 potka przy ktorym stoi gracz
else:
var potion_name = potion.get_node("PotionNameHolder").text #zmienna przechowująca nazwe potka bez oznaczenia kopii np 50%Potion
var potion_tmp = potion.name #zmienna przechowująca rzeczywistą nazwe danego potka w scenie np 50%Potion2
if potions[1]=="Empty": #jeżeli niema potka na slocie 1 to:
swap_potion(1,potion_name) #ustawienie na slot 1 potka przy ktorym stoi gracz
elif potions[2]=="Empty": #jeżeli niema potka na slocie 2 to:
swap_potion(2,potion_name) #ustawienie na slot 2 potka przy ktorym stoi gracz
else:
potions_amount[potions[1]] = 0 #wyzerowanie ilości potków aktualnego potka na miejscu 1
swap_potion(1,potion_name) #ustawienie na slot 1 potka przy ktorym stoi gracz
if "50%Potion" in potion_name:
potions_amount["50%Potion"]+=1 #zwieksza ilość potek 50% o 1
elif "100%Potion" in potion_name:
potions_amount["100%Potion"]+=1#zwieksza ilość potek 100% o 1
elif "20healthPotion" in potion_name:
potions_amount["20healthPotion"]+=1 #zwieksza ilość potek 20hp o 1
elif "60healthPotion" in potion_name:
potions_amount["60healthPotion"]+=1 #zwieksza ilość potek 60hp o 1
potion = null #wyzerowanie zmiennej potion, czyli gracz niestoi już przy potku
level.get_node(potion_tmp).queue_free() #usuniecie podniesionego potka z sceny
UpdatePotions()
potions_amount[potions[1]] = 0 #wyzerowanie ilości potków aktualnego potka na miejscu 1
swap_potion(1,potion_name) #ustawienie na slot 1 potka przy ktorym stoi gracz
if "50%Potion" in potion_name:
potions_amount["50%Potion"]+=1 #zwieksza ilość potek 50% o 1
elif "100%Potion" in potion_name:
potions_amount["100%Potion"]+=1#zwieksza ilość potek 100% o 1
elif "20healthPotion" in potion_name:
potions_amount["20healthPotion"]+=1 #zwieksza ilość potek 20hp o 1
elif "60healthPotion" in potion_name:
potions_amount["60healthPotion"]+=1 #zwieksza ilość potek 60hp o 1
potion = null #wyzerowanie zmiennej potion, czyli gracz niestoi już przy potku
level.get_node(potion_tmp).queue_free() #usuniecie podniesionego potka z sceny
UpdatePotions()

if potions_amount[potions[2]] != 0 and potions_amount[potions[1]] == 0: #jeżeli potek z 1 slota został zużyty i jest jakiś potek na slocie 2 to:
change_potion_slot() # potek z 2 slota zostaje przeniesiony do slota 1
Expand Down Expand Up @@ -583,51 +543,39 @@ func _on_Pick_body_entered(body): #Jeśli coś do podniesienia jest w zasięgu g
chest = body
if "50%Potion" in body.name: #jeżeli player wejdzie w potka
#level = get_tree().get_root().find_node("Main", true, false) #pobranie głównej sceny
if Bufor.in_sklep:
if potions_amount["50%Potion" ] != 0: #sprawdzenie czy player posiada jakieś potki 50%
potions_amount["50%Potion" ] += 1 #jeżeli ma to ilosc potek 50% zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 50% to musi kliknąć pick żeby podnieść
potion = body
else:
if potions_amount["50%Potion" ] != 0: #sprawdzenie czy player posiada jakieś potki 50%
potions_amount["50%Potion" ] += 1 #jeżeli ma to ilosc potek 50% zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 50% to musi kliknąć pick żeby podnieść
potion = body

if "100%Potion" in body.name: #jeżeli player wejdzie w potka
#level = get_tree().get_root().find_node("Main", true, false) #pobranie głównej sceny
if Bufor.in_sklep:
if potions_amount["100%Potion" ] != 0: #sprawdzenie czy player posiada jakieś potki 100%
potions_amount["100%Potion" ] += 1 #jeżeli ma to ilosc potek 100% zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 100% to musi kliknąć pick żeby podnieść
potion = body
else:
if potions_amount["100%Potion" ] != 0: #sprawdzenie czy player posiada jakieś potki 100%
potions_amount["100%Potion" ] += 1 #jeżeli ma to ilosc potek 100% zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 100% to musi kliknąć pick żeby podnieść
potion = body

if "20healthPotion" in body.name: #jeżeli player wejdzie w potka
#level = get_tree().get_root().find_node("Main", true, false) #pobranie głównej sceny
if Bufor.in_sklep:
if potions_amount["20healthPotion" ] != 0: #sprawdzenie czy player posiada jakieś potki 20hp
potions_amount["20healthPotion" ] += 1 #jeżeli ma to ilosc potek 20hp zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 20 aktualna potka jest zamieniana na potke 20hp
potion = body
else:
if potions_amount["20healthPotion" ] != 0: #sprawdzenie czy player posiada jakieś potki 20hp
potions_amount["20healthPotion" ] += 1 #jeżeli ma to ilosc potek 20hp zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 20 aktualna potka jest zamieniana na potke 20hp
potion = body

if "60healthPotion" in body.name: #jeżeli player wejdzie w potka
#level = get_tree().get_root().find_node("Main", true, false) #pobranie głównej sceny
if Bufor.in_sklep:
if potions_amount["60healthPotion" ] != 0: #sprawdzenie czy player posiada jakieś potki 60hp
potions_amount["60healthPotion" ] += 1 #jeżeli ma to ilosc potek 60hp zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 60 aktualna potka jest zamieniana na potke 60hp
potion = body
else:
if potions_amount["60healthPotion" ] != 0: #sprawdzenie czy player posiada jakieś potki 60hp
potions_amount["60healthPotion" ] += 1 #jeżeli ma to ilosc potek 60hp zwieksza się o 1
body.queue_free() #powoduje znikniecie potka z mapy
UpdatePotions()
else: #jeżeli nie posiada potki 60 aktualna potka jest zamieniana na potke 60hp
potion = body
if body.is_in_group("PickableWeapon"):
if "Weapon" in body.name:
weaponToTake = body
Expand Down
16 changes: 0 additions & 16 deletions Scenes/Levels/Random_gen.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ extends Node

signal boss(bossRoom)
signal map_generated(map)
signal skl(skl_room)

var directions = [Vector2.DOWN,Vector2.UP,Vector2.RIGHT,Vector2.LEFT]
var position = Vector2.ZERO
Expand All @@ -28,11 +27,6 @@ var room_variations = {
}
var current_room_type

var los_skl
var prob = 1
var issklep = false
var skl_room = [Vector2.ZERO]

func draw(map): #rysowanie poziomu na podstawie wygenerowanych koordynatów pokojów
var oneDoorRooms = [] #lista pokojów z jednymi otwartymi drzwiami
var furthestRoom = [Vector2.ZERO] #najdalszy pokój
Expand Down Expand Up @@ -74,18 +68,8 @@ func draw(map): #rysowanie poziomu na podstawie wygenerowanych koordynatów poko
for room in oneDoorRooms: #szukanie najdalszego pokoju
if abs(room[0].length()) > abs(furthestRoom[0].length()):
furthestRoom = room
if issklep == false:
for room in oneDoorRooms: #szukanie pokoju ze sklepem
los_skl = rng.randi_range(prob,len(oneDoorRooms)) #losowanie czy w pokoju ma sie znajdować sklep
if los_skl == len(oneDoorRooms) and room != furthestRoom:
skl_room = room
issklep = true
break
else:
prob=prob+1
emit_signal("boss", furthestRoom[0])
emit_signal("map_generated", map)
emit_signal("skl", skl_room[0])

func generate(): #funkcja generująca poziom (położenia pokojów)
map.append(Vector2(0,0)) #dodanie pierwszego pokoju do mapy
Expand Down
10 changes: 8 additions & 2 deletions Scenes/Levels/Room.tscn
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[gd_scene load_steps=6 format=2]
[gd_scene load_steps=7 format=2]

[ext_resource path="res://Assets/TileMap/Room1.tres" type="TileSet" id=1]
[ext_resource path="res://Scenes/Levels/Spawning_enemies.gd" type="Script" id=2]
[ext_resource path="res://Scenes/Levels/Lights.gd" type="Script" id=3]
[ext_resource path="res://Scenes/npc/sklep.tscn" type="PackedScene" id=4]

[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 208, 112 )
Expand All @@ -11,7 +12,9 @@ extents = Vector2( 208, 112 )
closed = false
polygon = PoolVector2Array( -256, -144, 256, -144, 256, 144, -256, 144, -256, -144 )

[node name="Node2D" type="Area2D" groups=["walls"]]
[node name="Node2D" type="Area2D" groups=[
"walls",
]]
collision_layer = 0
collision_mask = 5

Expand All @@ -32,6 +35,9 @@ shape = SubResource( 1 )
[node name="LightOccluder2D" type="LightOccluder2D" parent="."]
occluder = SubResource( 2 )

[node name="sklep" parent="." instance=ExtResource( 4 )]
position = Vector2( 128, -36 )

[node name="Lights" type="Node2D" parent="."]
script = ExtResource( 3 )

Expand Down
13 changes: 1 addition & 12 deletions Scenes/Levels/Spawning_enemies.gd
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ extends Node
var arr = [] #Pusta tablica dla losowych liczb
var names = [] #Pusta tablica dla nazw broni

signal into_sklep()

onready var all_weapons = get_tree().get_root().find_node("Weapons", true, false).all_weapons #Wczytanie z niewidzialnego node wszystkich broni
onready var tilemap = get_node("../TileMap") #Wczytanie tilemapy
var rand = RandomNumberGenerator.new() #Losowa generacja numeru
Expand Down Expand Up @@ -32,8 +30,6 @@ var left = Vector2(0,4) #Pozycja lewych drzwi
var drzwi = [true,true,true,true] #Lista determinująca, czy drzwi są otwarte czy zamknięte
var ilosc_enemy #aktualna ilosc przeciwnikow
var boss = false #czy to jest pokoj z bossem
var is_sklep = false #czy to pokoj ze sklepem
var odwiedzony = false #czy sklep byl odwiedzony
var item
var popups = {}

Expand All @@ -43,18 +39,11 @@ onready var generation = get_node("../../../Main") #pobranie maina aby podpinac

func _ready():
generation.connect("boss", self, "check_boss") #polaczenie sygnalu z generacji aby przekazac pokoj z bossem
generation.connect("skl", self, "check_sklep") #polaczenie sygnalu z generacji aby przekazac pokoj ze sklepem

func check_boss(room): #sprawdza czy dany pokoj jest pokojem z bossem
if room.x == int(round(self.global_position.x/512)) and room.y == int(round(self.global_position.y/288)):
boss = true

func check_sklep(room): #sprawdza czy pokój jest pokojem ze sklepem
if room.x == int(round(self.global_position.x/512)) and room.y == int(round(self.global_position.y/288)):
is_sklep = true
else:
is_sklep = false

func close_door(): #Podmiana tekstur na zamknięte drzwi
tilemap.set_cell(6,8,28)
tilemap.set_cell(7,8,29)
Expand Down Expand Up @@ -95,7 +84,7 @@ func _on_Node2D_body_entered(body): #Funkcja,która się aktywuje po wejsciu w k
current_id = get_instance_id() #pobieranie aktualnego ID pokoju
if int(round(self.global_position.x/512)) == 0 and int(round(self.global_position.y/288)) == 0: #jezeli startowy pokoj
id_list.append(current_id) #Dodawanie pokoju do listy odwiedzonych
if not current_id in id_list and not boss and not is_sklep: #losowanie przeciwników do poziomu
if not current_id in id_list and not boss: #losowanie przeciwników do poziomu
for i in range(0,5):
rand.randomize()
var enemy = all_enemies[rand.randi_range(0,9)].instance() #rodzaj przeciwnika
Expand Down
4 changes: 0 additions & 4 deletions Scenes/UI/Sklep_ceny.gd

This file was deleted.

19 changes: 10 additions & 9 deletions Scenes/UI/Sklep_ceny.tscn → Scenes/npc/Sklep_ceny.tscn
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
[gd_scene load_steps=5 format=2]
[gd_scene load_steps=4 format=2]

[ext_resource path="res://Assets/UI/Minimap/minimap.png" type="Texture" id=1]
[ext_resource path="res://Scenes/UI/Sklep_ceny.gd" type="Script" id=2]
[ext_resource path="res://Fonts/m5x7.ttf" type="DynamicFontData" id=4]

[sub_resource type="DynamicFont" id=2]
[sub_resource type="DynamicFont" id=1]
size = 48
font_data = ExtResource( 4 )

[node name="ItemStats" type="TextEdit"]
margin_left = -180.0
margin_top = -100.0
margin_right = -30.0
margin_bottom = 50.0
script = ExtResource( 2 )
light_mask = 0
margin_right = 150.0
margin_bottom = 150.0
__meta__ = {
"_edit_use_anchors_": true
}

[node name="Frame" type="NinePatchRect" parent="."]
light_mask = 0
margin_right = 150.0
margin_bottom = 150.0
texture = ExtResource( 1 )
Expand All @@ -27,6 +25,7 @@ __meta__ = {
}

[node name="MarginContainer" type="MarginContainer" parent="."]
light_mask = 0
margin_left = 15.0
margin_top = 14.0
margin_right = 136.0
Expand All @@ -36,17 +35,19 @@ __meta__ = {
}

[node name="Grid" type="TextureRect" parent="MarginContainer"]
light_mask = 0
margin_right = 121.0
margin_bottom = 122.0

[node name="Stats" type="Label" parent="MarginContainer/Grid"]
light_mask = 0
anchor_top = 0.5
anchor_bottom = 0.5
margin_top = -59.0
margin_right = 242.0
margin_bottom = 177.0
rect_scale = Vector2( 0.5, 0.5 )
custom_fonts/font = SubResource( 2 )
custom_fonts/font = SubResource( 1 )
text = "Ceny
Potion: 20
Broń: 50"
Expand Down
Loading

0 comments on commit bf41924

Please sign in to comment.