Hermes TrisClistos 2021/07/10 21:30

コース選択システムをティラノ&Javascriptで構築する / デリヘル純愛ゲーム(仮)制作日誌

開発当初はヒロイン3名のつもりでしたが……現在では、デリヘル嬢100人でも対応できる方向で開発しています。人数多いほうがシミュレーションゲームとして面白いですからね。

ーーーーーーーーーーーーーーーーーーーーー

きょう報告するのは、プレイ料金決定システムです。
デリヘルのコース料金は、店のグレード(ランク)で決まります。

【基本料金】
激安店であれば60分9千円以下、標準(スタンダード)店であれば60分1万円台前半、高級店であれば、60分2万円以上……など。

【指名料】
激安店は無料だったり1000円だったり。スタンダード店は高くても2000円、嬢のランクによっては3000円の場合も。高級店は3000円~。

【割引、イベント】
入店1ヶ月の「新人」には指名料が無料になる「新人割」。ただし1人の嬢に対して1回のみ。

熟女店ならば指名料が0円になる「四十路(よそじ)割」」で、こちらは何回でも指名料無料という場合が多いですね。

はじめて利用する客のために「新規割」というのも見かけます。これも初回のみ。

……以上のようなものを、IF文やSWITCH文をつかった条件分岐で実現しよう、というわけです。

▼まずは動画をご覧ください

まみちゃん。SSランク店に所属しています。属性:flesh つまり新人です。指名回数:0 なので、動画のとおり「新人割」が適用されています。

つぎは、熟女店のデリヘル嬢を選んだ場合の動画です。

四十路割が適用されています。もしも熟女デリヘル嬢「とし子」が新人だったとしても、四十路割が優先して適用されます。2つ以上の割引、つまり割引の併用はNG。実店舗でも同様です。

ちなみに、デリヘル店の「割引」は、クーポンと同様に「使う意思」を伝えなければ有効になりません。現実でもゲームでも、デリヘル利用を申し込むときに「割引を使いたい」と入力しないと、四十路割は適用されない仕組みです。

if (f.ladyAge < 40 && arrayLady[5] < 1 && arraytLady[4] === 'flesh'){
	f.nominationFee = 0;
}else{
	//alert('新人割ルートのelse')
}

//四十路割(コース料金の割引+指名料無料)の判定
//指名回数にかかわらず有効

if (f.ladyAge > 39){
	f.nominationFee = 0;
}else{
	//alert('四十路割ルートのelse');
}

実際のJavaScriptコードは上記のようなかんじ。単純です。

デリヘル嬢の各種データは、配列に格納しています。

//登場するデリヘル嬢のリスト
//Sグレードのデリヘル嬢 10名まで
defaultLadyName1 = 'まみ';

//Aグレードのデリヘル嬢 20名まで
defaultLadyName2 = '沙保里';

//Bグレードのデリヘル嬢 40名まで
defaultLadyName3 = 'とし子';

//[0]名前、[1]店グレード、[2]指名料、[3]年齢、[4]新人判定(flesh or used)[5]指名回数
arraylady1 = [defaultLadyName1, 'SS', 3000, 19, 'flesh', 0];
arraylady2 = [defaultLadyName2, 'A', 2000, 22, 'used', 0];
arraylady3 = [defaultLadyName3, 'B', 1000, 42, 'used', 0];

そのほか「好感度」や「本番交渉の成否」などの各種パラメータも格納できます。

つぎは、ふつうのデリヘル嬢の場合。

「沙保里」は新人ではないので、基本料金+指名料を要します。ふつうはコレです。

//所属店グレードSの嬢のコース料金 これに個人グレード(指名料金)を足す
//もしも「初回割」判定を足すなら、はじめにif文でふるいおとす。
var gradeSS = 'SS';
var gradeS = 'S';
var gradeA = 'A';
var gradeB = 'B';
var gradeC = 'C';

switch ( arrayLady[1]) {
case gradeSS :
	switch (f.courseTime) {
	case 60 :
	f.coursePrice = 25000;//コース料金
	f.nominationFee = arrayLady[2];//指名料
	break;
	case 75 :
	f.coursePrice = 30000;
	f.nominationFee = arrayLady[2];//指名料
	// alert(f.coursePrice);
	break;

	case 90 :
	f.coursePrice = 35000;
	f.nominationFee = arrayLady[2];//指名料
	break;

	case 120 :
	f.coursePrice = 50000;
	f.nominationFee = arrayLady[2];//指名料
	break;

	case 180 :
	f.coursePrice = 70000;
	f.nominationFee = arrayLady[2];//指名料
	break;

	//フリー料金?
	default :
	alert("フリー料金");
	break;}
break;

case gradeS :
	switch (f.courseTime) {
	case 60 :
	f.coursePrice = 24000;//コース料金
	f.nominationFee = arrayLady[2];//指名料
	break;
	case 75 :
	f.coursePrice = 15000;
    
    以下略

ただし、イベントで「●●割」が発生することがあるので、そのときはお得に遊べるわけ
です。

このような感じでシステムを構築すれば、嬢データが何人増えても対応できるはずです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索