Initial Android commit

This commit is contained in:
OleSTEEP 2024-11-10 03:34:28 +03:00
commit 1e2b80c13d
8521 changed files with 231475 additions and 0 deletions

View file

@ -0,0 +1,343 @@
extends Node
var achievePath = OS.get_user_data_dir() + "/achievements.json";
var achieveObject = {}
func _ready():
Init();
MakeSureArraysExist();
func Init():
var fileObj = File.new();
if not (fileObj.file_exists(achievePath)):
CreateAchieve();
else :
fileObj.open(achievePath, File.READ);
var content = fileObj.get_as_text();
Deserialize(content);
fileObj.close();
func MakeSureArraysExist():
var keys = ["cats", "minigame", "seenCharacters", "profileTexts", "deathAchievements", "sexAchievements", "killerAchievement", "yellowDeathAchievement", "numberDeathAchievement", ]
var shouldUpdate = false;
for i in keys:
if not achieveObject.has(i):
achieveObject[i] = [];
shouldUpdate = true;
if shouldUpdate:
SaveToFile();
func CreateAchieve():
achieveObject = {
"cats":[],
"minigame":[],
"seenCharacters":[],
"profileTexts":[],
"deathAchievements":[],
"sexAchievements":[],
"killerAchievement":[],
"yellowDeathAchievement":[],
"numberDeathAchievement":[],
}
SaveToFile();
func Deserialize(fileContent):
achieveObject = str2var(fileContent);
func SaveToFile():
var fileObj = File.new()
fileObj.open(achievePath, File.WRITE)
var content = var2str(achieveObject);
fileObj.store_string(content);
fileObj.close();
func AddCat(catNumber:int)->int:
if not catNumber in achieveObject["cats"]:
achieveObject["cats"].push_back(catNumber);
SaveToFile();
return achieveObject["cats"].size();
return - 1;
func GetMinigameClues():
return achieveObject["minigame"];
func AddMinigameClue(clue:String)->int:
if not clue in achieveObject["minigame"]:
achieveObject["minigame"].push_back(clue);
SaveToFile();
return achieveObject["minigame"].size();
return - 1;
func SetMinigameVariables():
isWindowPressed = Dialogic.get_variable("WindowPressed") == "1";
isCasketPressed = Dialogic.get_variable("CasketPressed") == "1";
isDrawerPressed = Dialogic.get_variable("DrawerPressed") == "1";
isBarrelPressed = Dialogic.get_variable("BarrelPressed") == "1";
isClosedTrapdoorPressed = Dialogic.get_variable("ClosedTrapdoorPressed") == "1";
var isWindowPressed:bool = false;
func WindowPressed():
isWindowPressed = true;
Dialogic.set_variable("WindowPressed", "1");
func IsWindowPressed()->bool:
return isWindowPressed;
var isCasketPressed:bool = false;
func CasketPressed():
isCasketPressed = true;
Dialogic.set_variable("CasketPressed", "1");
func IsCasketPressed()->bool:
return isCasketPressed;
var isDrawerPressed:bool = false;
func DrawerPressed():
isDrawerPressed = true;
Dialogic.set_variable("DrawerPressed", "1");
func IsDrawerPressed()->bool:
return isDrawerPressed;
var isBarrelPressed:bool = false;
func BarrelPressed():
isBarrelPressed = true;
Dialogic.set_variable("BarrelPressed", "1");
func IsBarrelPressed()->bool:
return isBarrelPressed;
var isClosedTrapdoorPressed:bool = false;
func ClosedTrapdoorPressed():
isClosedTrapdoorPressed = true;
Dialogic.set_variable("ClosedTrapdoorPressed", "1");
func IsClosedTrapdoorPressed()->bool:
return isClosedTrapdoorPressed;
func AddSeenCharacter(character:String):
if not character in achieveObject["seenCharacters"]:
achieveObject["seenCharacters"].push_back(character);
SaveToFile();
return
return
func AddProfileText(stringText:String):
if not stringText in achieveObject["profileTexts"]:
achieveObject["profileTexts"].push_back(stringText);
SaveToFile();
return
return
func GetSeenCharacters():
return achieveObject["seenCharacters"]
func IsInSeenCharacters(name:String)->bool:
return name in achieveObject["seenCharacters"];
func GetProfileText():
return achieveObject["profileTexts"]
var allDeathAch = [
"Fall",
"Knife",
"Electrocute",
"Explosion",
"Poison",
"Stairs",
"Pillow",
"Drowned",
"Shot_boy",
"Shot_girl",
]
func AddDeathAchievement(achName):
# Steam.set_achievement(achName);
if not achName in achieveObject["deathAchievements"]:
achieveObject["deathAchievements"].push_back(achName);
SaveToFile();
for i in allDeathAch:
if not i in achieveObject["deathAchievements"]:
return ;
# Steam.set_achievement("Immortal");
var allSexAch = [
"Orange_S",
"Green_S",
"Pink_S",
"Blue_S",
"Black_S",
"Purple_S",
]
func AddSexAchievement(achName):
# Steam.set_achievement(achName);
if not achName in achieveObject["sexAchievements"]:
achieveObject["sexAchievements"].push_back(achName);
SaveToFile();
for i in allSexAch:
if not i in achieveObject["sexAchievements"]:
return ;
# Steam.set_achievement("Don_Juan");
func AddKillersAchievement(killer):
if not killer in achieveObject["killerAchievement"]:
achieveObject["killerAchievement"].push_back(killer);
SaveToFile();
var killers = ["Blue", "Pink"];
for i in killers:
if not i in achieveObject["killerAchievement"]:
return ;
# Steam.set_achievement("Two_killer");
func AddYellowDeathAchievement(achName):
if not achName in achieveObject["yellowDeathAchievement"]:
achieveObject["yellowDeathAchievement"].push_back(achName);
SaveToFile();
var deaths = ["Electricity", "Fire"];
for i in deaths:
if not i in achieveObject["yellowDeathAchievement"]:
return ;
# Steam.set_achievement("Boss_death");
func AddNumberDeathAchievement(death, boy):
var achName = str(death, boy);
if not achName in achieveObject["numberDeathAchievement"]:
achieveObject["numberDeathAchievement"].push_back(achName);
SaveToFile();
var deaths = CreateNumberDeathCheck();
for i in deaths:
if not i in achieveObject["numberDeathAchievement"]:
return ;
# Steam.set_achievement("Definitely_not_me");
var numberDeathCheck = [];
func CreateNumberDeathCheck()->Array:
if numberDeathCheck.size() != 0:
return numberDeathCheck;
var numberDeath = ["3_Death_Electricity", "4_Death_Fire"];
var deathBoys = ["Red", "Yellow", "White", "Blue_M", "Gray"];
for i in numberDeath:
for j in deathBoys:
numberDeathCheck.push_back(str(i, j));
return numberDeathCheck;
var slotLocation = [
Vector2(1478, 620),
Vector2(2004, 700),
Vector2(2504, 712),
Vector2(1920, 961),
Vector2(2440, 1008),
Vector2(1256, 1248),
Vector2(1876, 1308),
Vector2(2454, 1322),
Vector2(1036, 1704),
Vector2(1676, 1672),
Vector2(2328, 1728),
]
var variables = [
{"variable":"Garage", "slot":10},
{"variable":"Office", "slot":11},
{"variable":"Kamin", "slot":8},
{"variable":"Room", "slot":3},
{"variable":"Smoking", "slot":2},
{"variable":"Kitchen", "slot":1},
{"variable":"Stairs", "slot":5},
{"variable":"Lighthouse", "slot":7},
{"variable":"Cliff", "slot":4},
{"variable":"Parking", "slot":9},
{"variable":"Pristan", "slot":4},
{"variable":"Podval", "slot":6},
{"variable":"Prichal", "slot":3},
{"variable":"Restaurant", "slot":8},
{"variable":"Tropa", "slot":9},
];
var cachedEpilog:Array = [];
func CreateEpilogMinigameImages()->Array:
if cachedEpilog.size() != 0:
return cachedEpilog;
var available = {};
for i in range(1, 12):
available[i] = 0;
for i in variables:
if Dialogic.get_variable(i["variable"]) == "1":
cachedEpilog.push_back({"name":i["variable"], "status":true, "slot":i["slot"]});
available[i["slot"]] += 1;
for i in available:
if available[i] == 1:
continue;
if available[i] == 2:
var firstAvailableSlot = FirstAvailableSlot(available);
available[firstAvailableSlot] = 1;
available[i] = 1;
for j in cachedEpilog:
if j["slot"] == i:
j["slot"] = firstAvailableSlot;
j["location"] = slotLocation[firstAvailableSlot - 1];
break
for i in available:
if available[i] == 1:
continue;
if available[i] == 0:
for j in variables:
if j["slot"] == i:
cachedEpilog.push_back({"name":j["variable"], "status":false, "slot":j["slot"]});
break
return cachedEpilog;
func FirstAvailableSlot(dict:Dictionary)->int:
for i in dict:
var value = dict[i];
if value == 0:
return i;
return 1;