This commit is contained in:
2025-07-17 17:18:21 +08:00
commit 1ffc1b5cf0
5309 changed files with 1150310 additions and 0 deletions
@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "23867f81-98cc-46ec-bd5c-b482862e197d",
"files": [
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "23867f81-98cc-46ec-bd5c-b482862e197d@6c48a",
"displayName": "maki_anna_0_cg",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "23867f81-98cc-46ec-bd5c-b482862e197d",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "23867f81-98cc-46ec-bd5c-b482862e197d@f9941",
"displayName": "maki_anna_0_cg",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 996,
"height": 1280,
"rawWidth": 996,
"rawHeight": 1280,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-498,
-640,
0,
498,
-640,
0,
-498,
640,
0,
498,
640,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
1280,
996,
1280,
0,
0,
996,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-498,
-640,
0
],
"maxPos": [
498,
640,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "23867f81-98cc-46ec-bd5c-b482862e197d@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "23867f81-98cc-46ec-bd5c-b482862e197d@6c48a"
}
}
@@ -0,0 +1,22 @@
import { _decorator, Component, Node } from "cc";
import Utils from "../../Main/Common/Utils";
import { GButton } from "../../Main/Common/GButton";
const { ccclass, property } = _decorator;
//紧张操作界面
@ccclass('DisableOper_UI')
export class DisableOper_UI extends Component {
private _nodeTab: any = {};
protected onLoad(): void {
}
start() {
Utils.parseNode(this.node, this._nodeTab)
GButton.BandClick(this._nodeTab.BG, this.onBGClick, this);
}
onBGClick() {
// Utils.Log("DisableOper ui click")
}
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "59234ae2-5570-4fd3-85b4-42d7acde3c3e",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "59234ae2-5570-4fd3-85b4-42d7acde3c3e@6c48a",
"displayName": "hessian_stage_icon",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "59234ae2-5570-4fd3-85b4-42d7acde3c3e",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "59234ae2-5570-4fd3-85b4-42d7acde3c3e@f9941",
"displayName": "hessian_stage_icon",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 174,
"height": 174,
"rawWidth": 174,
"rawHeight": 174,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-87,
-87,
0,
87,
-87,
0,
-87,
87,
0,
87,
87,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
174,
174,
174,
0,
0,
174,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-87,
-87,
0
],
"maxPos": [
87,
87,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "59234ae2-5570-4fd3-85b4-42d7acde3c3e@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "59234ae2-5570-4fd3-85b4-42d7acde3c3e@6c48a"
}
}
@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e0978abe-708b-41bb-965b-ab5ea73f0054",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e0978abe-708b-41bb-965b-ab5ea73f0054@6c48a",
"displayName": "tiannin_stage_icon",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e0978abe-708b-41bb-965b-ab5ea73f0054",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "e0978abe-708b-41bb-965b-ab5ea73f0054@f9941",
"displayName": "tiannin_stage_icon",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 138,
"height": 138,
"rawWidth": 138,
"rawHeight": 138,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-69,
-69,
0,
69,
-69,
0,
-69,
69,
0,
69,
69,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
138,
138,
138,
0,
0,
138,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-69,
-69,
0
],
"maxPos": [
69,
69,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e0978abe-708b-41bb-965b-ab5ea73f0054@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e0978abe-708b-41bb-965b-ab5ea73f0054@6c48a"
}
}
@@ -0,0 +1,317 @@
import { _decorator, Node, v2 } from "cc";
import { I_LevelConfig, I_LevelStepData, I_NpcTalkBack, I_TalkRecordInfo } from "../Config/CommonConfig";
import SocketUnit from "../Common/SocketUnit";
import Utils from "../Common/Utils";
import { InnerMsgCode } from "../Config/InnerMsgCode";
import SubManager from "../../Sub/SubManager";
const { ccclass, property } = _decorator;
/**聊天状态 */
export enum E_TalkStatusType {
succ = 0, //成功
talking = 1, //对话中
fail = 2, //失败
noCount = 3, //次数不足
}
/**对话阶段 */
export enum E_TalkStage {
/**开场白 */
prologue,
/**我的对话 */
myTalk,
/**等待NPC回复 */
waitNpcTalk,
/**NPC对话 */
npcTalk,
/**NPC固定话术 */
npcFixedTalk,
/**更新对话状态 */
upTalkStatus,
}
//游戏管理器
@ccclass('GameManager')
export default class GameManager {
private static _I: GameManager = null;
public static get I(): GameManager {
if (!GameManager._I) {
GameManager._I = new GameManager();
GameManager._I.init();
}
return GameManager._I;
}
private init(){
}
//region长连接相关
private _socket: SocketUnit = null;
/**连接长连接 */
public connetSorcket(record_id:string){
this.disconnectSocket();
this._socket = new SocketUnit();
// this._socket.connect(`ws://47.119.190.199:20190/game/ai/response/${record_id}`);
this._socket.connect(`wss://www.confessioncontract.com/game/ai/response/${record_id}`);
this._socket.onDataReceived((data: any) => {
let resData = JSON.parse(data.data)
if (GameManager.curStage != E_TalkStage.waitNpcTalk) return
if (resData.isFinished) {
console.log("npc回复:", resData)
GameManager.CurNpcTalkData = resData
Utils.sendInnerMsg(InnerMsgCode.Data_NpcTalkBack, resData || {})
}
})
}
/**断开长连接 */
public disconnectSocket(){
if (this._socket){
this._socket.disconnect();
}
this._socket = null;
}
/**获取npc回复 */
public getNpcTalkBack(data: any){
if (this._socket){
let str = JSON.stringify(data)
this._socket.sendData(str);
}
}
//region关卡配置
private static _levelCfgArray: I_LevelConfig[] = [];
private static _levelCfgMap: {[key: string]: I_LevelConfig} = {};
/**设置关卡配置数据 */
public static SetLevelCfg(levelCfg: any[]) {
GameManager._levelCfgArray = levelCfg;
let info:any = null;
for (let i = 0; i < levelCfg.length; i++) {
info = levelCfg[i];
GameManager._levelCfgMap[info.id] = info;
}
}
/**获取关卡配置 */
public static getLevelCfg(levelId: string): I_LevelConfig {
return GameManager._levelCfgMap[levelId];
}
/**获取npc表情图片 */
public static GetNpcEmoPic(emoStr: string): string {
let path = ""
let lvCfg = GameManager.getLevelCfg(GameManager.CurLevelId);
if (emoStr == "害羞") {
path = `emo_1/${lvCfg.characterShyPortrait}`
} else if (emoStr == "开心") {
path = `emo_2/${lvCfg.characterHappyPortrait}`
} else if (emoStr == "厌恶") {
path = `emo_3/${lvCfg.characterHatePortrait}`
} else {
path = `role/${lvCfg.characterFullLengthPortrait}` //默认
}
return path;
}
//regionAI语音开关
private static _AIVoiceSwt: boolean = false;
/**设置是否显示AI语音 */
public static set AIVoiceSwt(value: boolean) {
GameManager._AIVoiceSwt = value;
}
/**获取是否显示AI语音 */
public static get AIVoiceSwt(): boolean {
return GameManager._AIVoiceSwt;
}
//region当前关卡ID
private static _curLevelId: string = "";
/**设置当前关卡ID */
public static set CurLevelId(value: string) {
GameManager._curLevelId = value;
}
/**获取当前关卡ID */
public static get CurLevelId(): string {
return GameManager._curLevelId;
}
//region流程id
private static _recordId: string = "";
/**设置当前关卡流程ID */
public static set RecordId(value: string) {
GameManager._recordId = value;
}
/**获取当前关卡流程ID */
public static get RecordId(): string {
return GameManager._recordId;
}
//region当前步骤数据
private static _curLevelData: I_LevelStepData = null;
/**设置当前步骤数据 */
public static set CurLevelData(value: I_LevelStepData) {
GameManager._curLevelData = value;
}
/**获取当前步骤数据 */
public static get CurLevelData(): I_LevelStepData {
return GameManager._curLevelData;
}
//region NPC回复数据
private static _curNpcTalkData: I_NpcTalkBack = null;
/**设置当前NPC回复数据 */
public static set CurNpcTalkData(value: I_NpcTalkBack) {
GameManager._curNpcTalkData = value;
}
/**获取当前NPC回复数据 */
public static get CurNpcTalkData(): I_NpcTalkBack {
return GameManager._curNpcTalkData;
}
//region 当前NPC话术文本
private static _curNpcFixedTalkText: string = "";
/**设置当前NPC话术文本 */
public static set CurNpcFixedTalkText(value: string) {
GameManager._curNpcFixedTalkText = value;
}
/**获取当前NPC话术文本 */
public static get CurNpcFixedTalkText(): string {
return GameManager._curNpcFixedTalkText;
}
//region关卡步骤评分
private static stepScoreList: number[] = [];
/**设置关卡步骤评分 */
public static AddStepScore(score: number) {
GameManager.stepScoreList.push(score);
}
/**清空关卡步骤评分 */
public static ClearStepScore() {
GameManager.stepScoreList = [];
}
/**获取最新得分 */
public static getCurStepScore(): number {
if (GameManager.stepScoreList.length == 0) return 0;
return GameManager.stepScoreList[GameManager.stepScoreList.length - 1];
}
/**获取关卡当前评分
* @returns [总分,平均分]
*/
public static getGameScore(): [number,number] {
let totalScore = 0;
let totalStep = 0;
GameManager.stepScoreList.forEach((score) => {
totalScore += score;
totalStep++;
})
let scoreRate = totalStep > 0 ? Math.floor(totalScore / totalStep) : 0;
return [totalScore, scoreRate];
}
//region对话记录
private static talkRecordList: I_TalkRecordInfo[] = [];
/**添加对话记录 */
public static AddTalkRecord(record: I_TalkRecordInfo) {
GameManager.talkRecordList.push(record);
}
/**清空对话记录 */
public static ClearTalkRecord() {
GameManager.talkRecordList = [];
}
/**获取对话记录 */
public static get TalkRecordList(): I_TalkRecordInfo[] {
return GameManager.talkRecordList;
}
//region 当前对话阶段
private static _curStage: E_TalkStage = E_TalkStage.prologue;
/**获取当前对话阶段 */
public static get curStage(): E_TalkStage {
return GameManager._curStage;
}
/**设置当前对话阶段 */
public static TurnToStage(value: E_TalkStage) {
if (GameManager._curStage == value) return;
GameManager._curStage = value;
Utils.sendInnerMsg(InnerMsgCode.UI_TalkStageUp, {})
}
//region 已用对话轮次
private static _srouceCnt: number = 0;
/**获取已用对话轮次 */
public static get srouceCnt(): number {
return GameManager._srouceCnt;
}
/**设置已用对话轮次 */
public static set srouceCnt(value: number) {
GameManager._srouceCnt = value;
}
//region 心动次数
private static _xindongCishu: number = 0;
/**获取心动次数 */
public static get xindongCishu(): number {
return GameManager._xindongCishu;
}
/**设置心动次数 */
public static set xindongCishu(value: number) {
GameManager._xindongCishu = value;
}
//region npc固定话术喜欢次数
private static _npcFixTalkCountXihuan: number = 0;
/**获取npc固定话术喜欢次数 */
public static get npcFixTalkCountXihuan(): number {
return GameManager._npcFixTalkCountXihuan;
}
/**设置npc固定话术喜欢次数 */
public static set npcFixTalkCountXihuan(value: number) {
GameManager._npcFixTalkCountXihuan = value;
}
//region npc固定话术讨厌次数
private static _npcFixTalkCountTaoyan: number = 0;
/**获取npc固定话术讨厌次数 */
public static get npcFixTalkCountTaoyan(): number {
return GameManager._npcFixTalkCountTaoyan;
}
/**设置npc固定话术讨厌次数 */
public static set npcFixTalkCountTaoyan(value: number) {
GameManager._npcFixTalkCountTaoyan = value;
}
//region 结束关卡
/**结束关卡 */
public static EndGame() {
GameManager.I.disconnectSocket();
GameManager.ClearStepScore()
GameManager.ClearTalkRecord()
GameManager.CurLevelId = ""
GameManager.RecordId = ""
GameManager.CurLevelData = null
GameManager.CurNpcTalkData = null
GameManager.srouceCnt = 0
GameManager.xindongCishu = 0
GameManager.npcFixTalkCountXihuan = 0
GameManager.npcFixTalkCountTaoyan = 0
GameManager._curStage = E_TalkStage.prologue
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "c36f3fb5-7e30-44c3-bd80-f8f8fa59119b",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "c36f3fb5-7e30-44c3-bd80-f8f8fa59119b@6c48a",
"displayName": "zhiyan_laugh",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "c36f3fb5-7e30-44c3-bd80-f8f8fa59119b",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "c36f3fb5-7e30-44c3-bd80-f8f8fa59119b@f9941",
"displayName": "zhiyan_laugh",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 3.5,
"offsetY": -36,
"trimX": 16,
"trimY": 72,
"width": 900,
"height": 1117,
"rawWidth": 925,
"rawHeight": 1189,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-450,
-558.5,
0,
450,
-558.5,
0,
-450,
558.5,
0,
450,
558.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
16,
1117,
916,
1117,
16,
0,
916,
0
],
"nuv": [
0.017297297297297298,
0,
0.9902702702702703,
0,
0.017297297297297298,
0.9394449116904963,
0.9902702702702703,
0.9394449116904963
],
"minPos": [
-450,
-558.5,
0
],
"maxPos": [
450,
558.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "c36f3fb5-7e30-44c3-bd80-f8f8fa59119b@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "c36f3fb5-7e30-44c3-bd80-f8f8fa59119b@6c48a"
}
}
@@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "8c27ad68-4b02-4f83-b8b3-2907fb86d4dd",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "8c27ad68-4b02-4f83-b8b3-2907fb86d4dd@6c48a",
"displayName": "adelle_beaumont_default",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "8c27ad68-4b02-4f83-b8b3-2907fb86d4dd",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "8c27ad68-4b02-4f83-b8b3-2907fb86d4dd@f9941",
"displayName": "adelle_beaumont_default",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "none",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 925,
"height": 1189,
"rawWidth": 925,
"rawHeight": 1189,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-462.5,
-594.5,
0,
462.5,
-594.5,
0,
-462.5,
594.5,
0,
462.5,
594.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
1189,
925,
1189,
0,
0,
925,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-462.5,
-594.5,
0
],
"maxPos": [
462.5,
594.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "8c27ad68-4b02-4f83-b8b3-2907fb86d4dd@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "8c27ad68-4b02-4f83-b8b3-2907fb86d4dd@6c48a"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

@@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "005f51cd-723e-400a-86a3-ad3e5a0f6167",
"files": [],
"subMetas": {},
"userData": {}
}