Changed progression system after enslaving
Added Luck Token image Added search fail to the drone minigame Updated repo
This commit is contained in:
parent
b19016fcd8
commit
99124628dd
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "Issix Mod",
|
||||
"description": "\nTags: M/player, M/M (implied), petplay, slavery, corruption (of PC, opt-in), degradation, watersports (in-game toggle content), parasite (future, opt-in)\n\nIssix is a demonic dragon sick entirely of the world around, finding peace in BDCC facility. His idea of paradise is to own slaves to keep him company, do YOU want to join them?\n\nIssix mod adds 4 characters to the game - Issix as a dominant demonic dragon who is a master to Azazel, Hiisi and Lamia - his loyal pets. Mod is directed at players who when playing video games prefer to put themselves in submissive roles, as its the player who can join Issix's harem as one of his pets.\nCurrent state of the modification is that its released in Alpha (hah) stage this means that features leading to enslavement are mostly implemented and from then on its placeholder land.\n\nCurrent features:\n* 4 characters, all with some interactions coded in, you can help Lamia categorize their artwork, get some drugs for Azazel and play Rock Paper Scissor with Hiisi\n* 17 scenes, sort of meaningless number, but likely enough of content for at least an hour of gameplay with plans for expansion in the future\n* 1 quest leading to player's voluntary enslavement by Issix\n\nPlanned content:\n* More content after player is enslaved which is currently missing\n* Prostitute role\n* \"Hard mode\" with less choice and total submission to Master\n* Alternative route leading to enslavement\n* Expansion of content for all characters\n\nMod assumes player takes an anthro form, in the future it might be changed but if it's a deal breaker you should know.\n\nEveryone is welcome to contribute to the mod over on GitHub at https://github.com/Friskygote/Issix-mod.",
|
||||
"description": "\nTags: M/player, M/M (implied), petplay, slavery, corruption (of PC, opt-in), degradation, watersports (in-game toggle content), parasite (future, opt-in)\n\nIssix is a demonic dragon sick entirely of the world around, finding peace in BDCC facility. His idea of paradise is to own slaves to keep him company, do YOU want to join them?\n\nIssix mod adds 4 characters to the game - Issix as a dominant demonic dragon who is a master to Azazel, Hiisi and Lamia - his loyal pets. Mod is directed at players who when playing video games prefer to put themselves in submissive roles, as its the player who can join Issix's harem as one of his pets.\nCurrent state of the modification is that its released in Alpha (hah) stage this means that features leading to enslavement are mostly implemented and from then on its placeholder land.\n\nCurrent features:\n* 4 characters, all with some interactions coded in, you can help Lamia categorize their artwork, get some drugs for Azazel and play Rock Paper Scissor with Hiisi\n* 17 scenes, sort of meaningless number, but likely enough of content for at least an hour of gameplay with plans for expansion in the future\n* 1 quest leading to player's voluntary enslavement by Issix\n\nPlanned content:\n* More content after player is enslaved which is currently missing\n* Prostitute role\n* \"Hard mode\" with less choice and total submission to Master\n* Alternative route leading to enslavement\n* Expansion of content for all characters\n\nMod assumes player takes an anthro form, in the future it might be changed but if it's a deal breaker you should know.\n\nWhile the repository is mainly hosted on https://git.frisk.space/Frisk/Issix-mod, everyone is welcome to contribute to the mod over on GitHub's mirror at https://github.com/Friskygote/Issix-mod, changes will be pulled to source repository.",
|
||||
"author": "Frisk",
|
||||
"repository": "https://github.com/Friskygote/Issix-mod",
|
||||
"modversion": "0.9.1",
|
||||
"repository": "https://git.frisk.space/Frisk/Issix-mod",
|
||||
"modversion": "0.9.5",
|
||||
"gameversion": "0.1.7"
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ func _init():
|
|||
id = "IssixSpecialEvent"
|
||||
|
||||
|
||||
var registered_special_scenes = [['IssixSlaveryIntroCont', 1, {}], ['IssixBringsComicbooks', 2, {"Comic_Books": 1}], ['IssixSlaveryBowlTraing', 2, {}], ['IssixSlaveryBranding', 3, {}]]
|
||||
var registered_special_scenes = [['IssixSlaveryIntroCont', 0, {}], ['IssixSlaveryBranding', 0, {}], ['IssixBringsComicbooks', 1, {"Comic_Books": 1}], ['IssixSlaveryBowlTraing', 3, {}], ]
|
||||
|
||||
class CustomSorter:
|
||||
static func sort_by_progressionpoints(a, b):
|
||||
|
@ -29,13 +29,15 @@ func checkRequirements(requirements: Dictionary):
|
|||
|
||||
func shouldBeShownForcedEvent():
|
||||
var scenes_seen = getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
|
||||
var current_progression_points = GM.main.getModuleFlag("IssixModule", "Progression_Points", 0)
|
||||
var current_progression_points = GM.pc.getSkillsHolder().getSkill("Pet").getLevel()
|
||||
if GM.main.getDays() >= GM.main.getModuleFlag("IssixModule", "Progression_Day_Next", 0) and GM.main.getModuleFlag("IssixModule", "Unwelcome_At_Corner", false) != true:
|
||||
registered_special_scenes.sort_custom(CustomSorter, "sort_by_progressionpoints")
|
||||
for scene in registered_special_scenes:
|
||||
if scene[1] > current_progression_points:
|
||||
return null
|
||||
if scenes_seen["scenes_seen"].find(scene[0]) == -1 and checkRequirements(scene[2]):
|
||||
if scene[0] == "IssixSlaveryBranding" and GM.main.getDays() < scenes_seen["day_enslaved"]+9: # Special case for branding scene
|
||||
continue
|
||||
return scene[0]
|
||||
return null
|
||||
|
||||
|
|
BIN
Modules/IssixModule/Items/Icons/lucktoken.png
Normal file
BIN
Modules/IssixModule/Items/Icons/lucktoken.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
35
Modules/IssixModule/Items/Icons/lucktoken.png.import
Normal file
35
Modules/IssixModule/Items/Icons/lucktoken.png.import
Normal file
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/lucktoken.png-5516dfc21eaeb1814777ede82a76e887.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Modules/IssixModule/Items/Icons/lucktoken.png"
|
||||
dest_files=[ "res://.import/lucktoken.png-5516dfc21eaeb1814777ede82a76e887.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=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=0
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
|
@ -60,7 +60,7 @@ func _run():
|
|||
else:
|
||||
addDisabledButton("Pay", "Not enough credits")
|
||||
addButton("Intimidate", "Tell them you won’t leave or pay", "intimidate")
|
||||
if getModuleFlag("IssixModule", "PC_Training_Level", 0) > 0 and getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 1:
|
||||
if getModuleFlag("IssixModule", "PC_Enslavement_Role", 0) == 1 and (GM.pc.getSkillsHolder().getSkill("Pet").getLevel() > 1 or GM.pc.getSkillsHolder().getSkill("Pet").getExperience() > 100):
|
||||
if (GM.pc.getPersonality().getStat(PersonalityStat.Coward) > 0.3):
|
||||
addDisabledButton("Issix", "You are too cowardly to bring up your Master")
|
||||
else:
|
||||
|
@ -178,3 +178,6 @@ func getDevCommentary():
|
|||
|
||||
func hasDevCommentary():
|
||||
return true
|
||||
|
||||
func getSceneCreator():
|
||||
return "Rahi, Frisk"
|
||||
|
|
|
@ -62,3 +62,6 @@ func _react(_action: String, _args):
|
|||
return
|
||||
|
||||
setState(_action)
|
||||
|
||||
func getSceneCreator():
|
||||
return "Rahi, Frisk"
|
||||
|
|
|
@ -85,8 +85,8 @@ func _run():
|
|||
addButton("Back", "End today's training session", "endthescene")
|
||||
|
||||
|
||||
func shouldBeInHeavyBondage(): # TODO Skill rebalance
|
||||
return GM.pc.getSkillsHolder().getSkill("Pet").getLevel() > 2 or GM.pc.getSkillsHolder().getSkill("Pet").getExperience() > 80
|
||||
func shouldBeInHeavyBondage():
|
||||
return GM.pc.getSkillsHolder().getSkill("Pet").getLevel() > 3
|
||||
|
||||
func createButtons():
|
||||
var trainingLevel = int(getModuleFlag("IssixModule", "PC_Training_Level", 0))
|
||||
|
@ -160,6 +160,7 @@ func _react(_action: String, _args):
|
|||
|
||||
func _react_scene_end(_tag, _result):
|
||||
if(_tag == "walkies_end"):
|
||||
goodPoints += 5 if shouldBeInHeavyBondage() else 0
|
||||
goodPoints += 2 if GM.pc.isMuzzled() else 0
|
||||
goodPoints += 2 if GM.pc.hasBlockedHands() else 0
|
||||
destroyBorrowedEquipment()
|
||||
|
|
|
@ -73,7 +73,7 @@ func _react(_action: String, _args):
|
|||
scenes["scenes_seen"].append(sceneID)
|
||||
GM.main.setModuleFlag("IssixModule", "Misc_Slavery_Info", scenes.duplicate(true))
|
||||
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+3)
|
||||
increaseModuleFlag("IssixModule", "Progression_Points", 1)
|
||||
GM.pc.addSkillExperience("Pet", 60)
|
||||
endScene()
|
||||
return
|
||||
|
||||
|
|
|
@ -50,6 +50,9 @@ func _react(_action: String, _args):
|
|||
if _action == "normal2":
|
||||
GM.pc.addLust(20)
|
||||
|
||||
if _action == "normal3":
|
||||
GM.pc.addStamina(-40)
|
||||
|
||||
if(_action == "endthescene"):
|
||||
endScene()
|
||||
return
|
||||
|
|
|
@ -212,7 +212,7 @@ func _react(_action: String, _args):
|
|||
GM.pc.setLocation("hall_ne_corner")
|
||||
timedifference = GM.main.getTimeCap() - GM.main.timeOfDay
|
||||
processTime(timedifference)
|
||||
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||
GM.pc.addSkillExperience("Pet", 200)
|
||||
|
||||
if _action == "brandtalk":
|
||||
attitude = _args[0]
|
||||
|
|
|
@ -87,8 +87,7 @@ func _react(_action: String, _args):
|
|||
], "gym_entrance", "crawl"])
|
||||
|
||||
if(_action == "endthescene"):
|
||||
GM.pc.addSkillExperience("Pet", 300)
|
||||
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||
GM.pc.addSkillExperience("Pet", 100)
|
||||
increaseModuleFlag("IssixModule", "PC_Training_Level")
|
||||
setModuleFlag("IssixModule", "Hiisi_Protects_PC", true)
|
||||
endScene()
|
||||
|
|
|
@ -73,8 +73,7 @@ func _react(_action: String, _args):
|
|||
|
||||
if(_action == "endthescene"):
|
||||
increaseModuleFlag("IssixModule", "PC_Training_Level")
|
||||
increaseModuleFlag("IssixModule", "Progression_Points")
|
||||
GM.pc.addSkillExperience("Pet", 300)
|
||||
GM.pc.addSkillExperience("Pet", 140)
|
||||
GM.pc.getSkillsHolder().addPerk("BowlTraining")
|
||||
var scenes = GM.main.getModuleFlag("IssixModule", "Misc_Slavery_Info", {"scenes_seen": []})
|
||||
scenes["scenes_seen"].append(sceneID)
|
||||
|
|
|
@ -293,8 +293,8 @@ func _react(_action: String, _args):
|
|||
|
||||
|
||||
|
||||
func shouldBeInHeavyBondage(): # TODO Skill rebalance
|
||||
return GM.pc.getSkillsHolder().getSkill("Pet").getLevel() > 2 or GM.pc.getSkillsHolder().getSkill("Pet").getExperience() > 80
|
||||
func shouldBeInHeavyBondage():
|
||||
return GM.pc.getSkillsHolder().getSkill("Pet").getLevel() > 3
|
||||
|
||||
func rollDestination():
|
||||
destination = RNG.pick(destinations.keys())
|
||||
|
|
|
@ -103,7 +103,7 @@ func _run():
|
|||
addDisabledButton("Drone", "Drone is currently unavailable, talk with Master Issix")
|
||||
elif getModuleFlag("IssixModule", "Drone_Task_Timeout", 0) > 0:
|
||||
addDisabledButton("Drone", "New drone has been ordered, however it will take a while before it gets to the prison")
|
||||
elif getModuleFlag("IssixModule", "Progression_Points", 0) > 5:
|
||||
elif GM.pc.getSkillsHolder().getSkill("Pet").getLevel() > 5:
|
||||
addButtonWithChecks("Drone", "Help with finding items", "start_drone_task", [], [ButtonChecks.NotBlindfolded, ButtonChecks.NotHandsBlocked])
|
||||
else:
|
||||
addDisabledButton("????", "You haven't unlocked this yet")
|
||||
|
|
|
@ -252,7 +252,6 @@ func _react(_action: String, _args):
|
|||
if _action == "acceptslavery":
|
||||
GM.pc.addExperience(500)
|
||||
setModuleFlag("IssixModule", "Misc_Slavery_Info", {"day_enslaved": GM.main.getDays(), "scenes_seen": []})
|
||||
setModuleFlag("IssixModule", "Progression_Points", 1)
|
||||
setModuleFlag("IssixModule", "Progression_Day_Next", GM.main.getDays()+1)
|
||||
setModuleFlag("IssixModule", "Issix_Mood", 50)
|
||||
setModuleFlag("IssixModule", "Last_Walk", GM.main.getDays())
|
||||
|
|
|
@ -21,8 +21,6 @@ func _initScene(_args = []):
|
|||
item_target = RNG.pick(["main_dressing2", "main_green_corridor10", "main_green_secret", "main_dressing1", "main_hallroom5", "med_mental_entrance", "medical_hospitalwards", "medical_storage", "med_corridor_split2", "med_nearshower", "med_researchlab", "med_milkingroom", "eng_corridor_blue3", "eng_airventskip", "eng_robotics", "eng_storage", "eng_corridor6", "eng_corridor3", "eng_assemblylab", "mining_shafts_entering", "eng_bay_nearbreakroom", "cellblock_red_playercell", "cellblock_lilac_nearcell", "cellblock_orange_playercell", "cellblock_corridor_nearstairs"])
|
||||
strike = 0
|
||||
flying_back = false
|
||||
# DEBUG
|
||||
item_target = "eng_assemblylab"
|
||||
|
||||
func _run():
|
||||
if(state == ""):
|
||||
|
@ -149,6 +147,10 @@ func _run():
|
|||
saynn("[say=issix]Here you go[/say]")
|
||||
addButton("Finish", "End the task", "endthescene")
|
||||
|
||||
if state == "wrong_location_search":
|
||||
saynn("You decide to dive lower with the drone to search for "+item+" however you find nothing. You do however get a few creatures trying to catch the drone. This unneeded attention significantly increases the risk of the mission. You refocus, maybe the the vibrations from the controller aren't at their max, and the item is somewhere else?")
|
||||
addButton("Continue", "Continue the search", "search")
|
||||
|
||||
if state == "guard_catch":
|
||||
aimCameraAndSetLocName(location)
|
||||
saynn("As you continue flying out of the sudden a large object appears in your eyes scaring you. The visor flashes in colors before becoming completely dark.")
|
||||
|
@ -243,6 +245,28 @@ func _react(_action: String, _args):
|
|||
else:
|
||||
_action = "retrival_failure"
|
||||
|
||||
if _action == "search_retrieve":
|
||||
var endLocation = null
|
||||
if item_target_type == 1:
|
||||
endLocation = item_target
|
||||
else:
|
||||
endLocation = GM.main.IS.getPawn(item_target).getLocation()
|
||||
if location != endLocation:
|
||||
var pawsAtNewLoc = GM.main.IS.getPawnsAt(location)
|
||||
var is_caught = false
|
||||
for pawn in pawsAtNewLoc:
|
||||
if pawn.isGuard():
|
||||
if RNG.chance(80):
|
||||
is_caught = true
|
||||
if is_caught:
|
||||
_action = "guard_catch"
|
||||
elif strike == 2:
|
||||
_action = "retrival_failure"
|
||||
else:
|
||||
strike += 1
|
||||
_action = "wrong_location_search"
|
||||
processTime(60)
|
||||
|
||||
if _action == "retrival_failure":
|
||||
strike += 1
|
||||
if strike > 2:
|
||||
|
|
|
@ -17,8 +17,7 @@ func getPicture():
|
|||
return "res://Modules/IssixModule/Skills/Images/petspeech.png"
|
||||
|
||||
func toggleable():
|
||||
var ch = npc if npc != null else GM.pc
|
||||
return !(ch.getSkillsHolder().hasPerk(self.id))
|
||||
return true
|
||||
|
||||
func unlockable():
|
||||
return false
|
||||
|
|
Loading…
Reference in a new issue