Browse Source

First addition of new content: park dog. Fixed some bugs

- Park dog now shows up, and always shows up, in any park between 20:00 and 6:00. Plan is to make him show up only with a random chance.
- You can only interact with him once right now. Make sure you have a sandwich with you.
- Nothing else is special about him, just sets some things up for later.
- With the clinic experiments content moving to a mod, the park dog will be the key NPC to enabling pregnancy by dogs.
- There was a bug introduced a few commits ago which prevents the pet dog from surprising the PC in bed, and prevents the lake dog from showing up. That has been fixed.
oldentree 5 years ago
parent
commit
fbb21181d5
3 changed files with 100 additions and 9 deletions
  1. 13 5
      locations/mod_bestmod.qsrc
  2. 85 3
      locations/mod_bestmod_park_dog.qsrc
  3. 2 1
      locations/mod_bestmod_petdog.qsrc

+ 13 - 5
locations/mod_bestmod.qsrc

@@ -1,6 +1,8 @@
 # mod_bestmod
 !input mod entry point here. this will be checked on every location, please keep it clean and brief to avoid game lag
 
+bm_rand = rand(0, 100)
+
 if $loc = 'Gadsarai' and $metka = '' and menu_off = 0: '<br>Sitting near the barn is your grandparents'' <a href="exec:gt ''mod_bestmod_bandit''">large dog, named Bandit</a>'
 
 if $loc = 'Miroslava' and npc_QW['A60'] >= 30 and hour < 19 and month >= 5 and month <= 9 and MiraLoc ! 3: gs 'mod_bestmod_mira', 'third_wish'
@@ -17,12 +19,18 @@ if ($loc = 'kuhr' or $loc = 'kuhr2x') and menu_off = 0: gs 'mod_bestmod_kuhr'
 
 if $loc = 'kafe' and metka = 'start' and menu_off = 0 and QWdogReiq = 3 and week = 7 and hour >= 12: act 'Sit down and wait for Margaret': gt 'mod_bestmod_margo', 'margo'
 
-!! Probably replace houserabrand with another random factor which takes into account PC's
+!! Probably replace houserabrand with another random factor which takes into account PC''s
 !! beast exp and relationship with pet.
 if $curloc = 'bed' and ((bm_pet_dog_rel > 10 and pcs_horny > 60) or (pcs_horny > 80 and alko > 3) or bm_beast['exp'] > 6) and housrA = 1 and bm_dog_once_day ! daystart and rand(0, 100) < 4: gt 'mod_bestmod_bed', 'sog1'
 
 if $loc = 'glake' and $selact = 'Go sunbathing (1:00)' and $clothingworntype = 'nude' and bm_beast['exp'] > 0 and rand(1,10) = 5: gt 'mod_bestmod_lake_dog', 'start'
 
+if $locclass = 'park' and $metka = 'start' and (hour >= 20 or hour < 6) and menu_off = 0:
+	''
+	'<b>You see a stray dog sniffing around some trash.</b>'
+	act 'Go up to the stray dog': gt 'mod_bestmod_park_dog', 'start', $loc
+end
+		
 if $loc = 'postdeliveries' and $ARGS[0] = '10':
 	if banditfrend = 1:
 		act 'Try to calm the dog':
@@ -41,10 +49,10 @@ if $loc = 'postdeliveries' and $ARGS[0] = '10':
 end
 
 !! Some of the variables used in this mod:
-!! bm_beast['exp']			Beastiality experience. Incremented each act.
-!! bm_beast['num']			Count of animal partners. Incremented once per individual.
-!! bm_beast['dog_exp']		Experience with dogs. Incremented each act with dog.
-!! bm_beast['dog_num']		Count of dog partners. Incremented once per individual dog.
+!! bm_beast[''exp'']			Beastiality experience. Incremented each act.
+!! bm_beast[''num'']			Count of animal partners. Incremented once per individual.
+!! bm_beast[''dog_exp'']		Experience with dogs. Incremented each act with dog.
+!! bm_beast[''dog_num'']		Count of dog partners. Incremented once per individual dog.
 !! ...
 
 --- mod_bestmod ---------------------------------

+ 85 - 3
locations/mod_bestmod_park_dog.qsrc

@@ -1,8 +1,90 @@
 # mod_bestmod_park_dog
 
-!! When encountered, and beast impreg is enabled, makes male dogs able to impregnate PC
-!! Right now does nothing. Need a function to run when user toggles beast preg on/off
-bm_pc_dog_fert = (bm_enable_preg and 1)
+$loc = 'mod_bestmod_park_dog'
+$metka = $ARGS[0]
+menu_off = 1
 
+!! Set a default large volume of sperm for stray dog
+sexvolume = rand(100, 200)
+
+!! Might be interesting to add calls to a function like "'gadforest', 'torncloth'"
+
+
+if $ARGS[0] = 'start':
+	$bm_oldloc = $ARGS[1]
+	*clr & cla
+	pcs_willpwr -= 5
+	minut += 5
+
+	if bm_know_parkdog = 1:
+		'Under construction!'
+		act 'Go back to the park': gt $bm_oldloc, 'start'
+	else
+		'<center><img <<$set_imgh>> src="mod/bestmod/images/locations/gadukino/village/baddog.jpg"></center>'
+		'It''s a rather large dog and you''re not sure what breed it is. But you figure something that size must be hungry if it hasn''t had something to eat in a while.'
+		''
+		'"Poor thing," you think to yourself, and walk towards it. As you approach, the dog looks up. You must have scared it because it turns around as soon as it sees you, and trots off into the darkness among the trees.'
+		act 'Follow him': gt 'mod_bestmod_park_dog', 'first_follow'
+		act 'Leave him be': gt $bm_oldloc, 'start'
+	end
+end
+
+if $ARGS[0] = 'first_follow':
+	minut += 40
+	'You almost have to run to catch up to it. Once in a while, you catch it looking back at you. As he snakes through some trees, you get the feeling he isn''t trying to shake you off but is instead leading you somewhere...'
+	''
+	'Finally you see the dog slow down. It has led you to a small clearing just a few meters wide. It looks like this is his den.'
+	'You are sure it''s a "he" since now that he has laid down to rest you can see his... rather large testicles.'
+
+	if buterbrod > 0:
+		act 'Leave':
+			'You wonder why you even followed this dog. He looks like he is comfortable where he is and you don''t even have any food to give him.'
+			'Even worse, you realize that you have no idea where you are in the park and should probably get out as soon as you can. You don''t want to be known as "that girl who got lost in the park".'
+			'You finally find your way out, but you''re not sure you could find your way back to the dog. If you ever want to go back to his den, you''ll have to run into him somewhere in the park again.'
+			act 'Go back to the park': gt $bm_oldloc, 'start'
+		end
+	else
+		buterbrod = 0
+		act 'Offer your sandwich':
+			*clr & cla
+			bm_know_parkdog = 1
+			bm_parkdog_QW += 1
+			$bm_firstmet_parkdog = $bm_oldloc
+			'You take the sandwich out from your bag and offer it to the dog. He sniffs at it for a bit, but seems hesitant to get very close to you.'
+			'You figure he might not trust you too much, so you put the sandwich down on the ground and step back. You guessed right, as the dog jumped forward after a moment''s pause and devoured the sandwich meat, leaving the bread behind.'
+			''
+			'You kneel down and the dog trots over to you. "You poor thing," you tell him. "You must have been starving, weren''t you? Who could have let such a good boy like you out here, all alone?"'
+			'He licks your hands and then your face. He doens''t smell bad, as you expect him to, so you let him get a few licks in.'
+			''
+			'"Haha, ok that''s enough. You''re a charmer and you know it."'
+			''
+			if home_owned[2] = 1:
+				if StoryLine = 1:
+					'"Sorry, boy, but my <<$npc_nickname[''A29'']>> won''t let me have any pets. But I will try to come and see you the next time I come to the park, alright? It''s getting late now and I should be getting home. <<$npc_nickname[''A29'']>> will get mad at me if I am late." You tell the dog.'
+					'The dog almost seems to understand, and gives a little whine. You can''t help but feel badly, but you know you must go now.'
+				else
+					'"Sorry, boy. I don''t have anything else to give you.... Unless...would you like to come back home with me?"'
+					'To your surprise the dog gets up suddenly, turns around, and dashes away.'
+					'Not wanting to go on another late night chase through the park, you decide to try and head back to a more populated part of the park. But you can''t help but think about the stray dog. You hope he is alright out here on his own.'
+				end
+			elseif home_owned[2] = 0
+				'You don''t have another place to stay, but you also weren''t looking to spend the night out somewhere in the middle of the park.'
+				'"Sorry, boy. I can''t stay here. But I hope I see you again. I''ll be sure to bring something better than a sandwich next time, too," you say, smiling at the dog. He happily wags his tail and keeps looking at you as you walk back through the trees.'
+			end
+			act 'Go back to the park': gt $bm_oldloc, 'start'
+		end
+		act 'Leave':
+			'You realize that you have no idea where you are in the park and should probably get out as soon as you can. You don''t want to be known as "that girl who got lost in the park".'
+			'You finally find your way out, but you''re not sure you could find your way back to the dog. If you ever want to go back to his den, you''ll have to run into him somewhere in the park again.'
+			act 'Go back to the park': gt $bm_oldloc, 'start'
+		end
+	end
+end
+
+if $ARGS[0] = 'first_sex':
+	!! When encountered, and beast impreg is enabled, makes male dogs able to impregnate PC
+	!! Right now does nothing. Need a function to run when user toggles beast preg on/off
+	bm_pc_dog_fert = (bm_enable_preg and 1)
+end
 
 --- mod_bestmod_park_dog ---------------------------------

+ 2 - 1
locations/mod_bestmod_petdog.qsrc

@@ -940,10 +940,11 @@ if $ARGS[0] = 'rex_setup':
 	npc_gender['A<<npctemp>>'] = 0
 	$npc_thdick['A<<npctemp>>'] = 'knotted'
 	npc_dick['A<<npctemp>>'] = 0
-	npc_spermpot['A<<npctemp>>'] = -1
+	npc_spermpot['A<<npctemp>>'] = iif(bm_pc_dog_fert and bm_enable_preg, 20000, -1)
 	npc_vag['A<<npctemp>>'] = -1
 	npc_hymen['A<<npctemp>>'] = -1
 	npc_nips['A<<npctemp>>'] = 1
+	$bm_npc_species['A<<npctemp>>'] = 'dog'
 end
 
 --- mod_bestmod_petdog ---------------------------------