Squashed commit of the following:

commit 870d711162
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Jan 27 16:50:19 2022 +0800

    update event

commit b327eb1765
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Jan 27 16:36:02 2022 +0800

    update event

commit 4e845bc2eb
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Jan 27 16:35:56 2022 +0800

    fix ui feel

commit bd508913c5
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Jan 27 16:35:22 2022 +0800

    update special thanks

commit d097b3bc15
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Jan 27 16:04:55 2022 +0800

    add unique character

commit 8d71b73e94
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Jan 25 21:27:29 2022 +0800

    fix: bug
    save load

commit 286828abe7
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Jan 25 18:15:22 2022 +0800

    add game mode

commit 0e3c885ad3
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Jan 6 20:09:20 2022 +0800

    update special thanks

commit b421082374
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Fri Dec 31 20:26:20 2021 +0800

    update specialthanks

commit 765a69294b
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Dec 14 19:10:03 2021 +0800

    fix ios goto

commit 8eb8c3ca72
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Dec 14 19:03:37 2021 +0800

    add event grade

commit ab705dd46c
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Dec 14 18:48:42 2021 +0800

    build version

commit a1e4232369
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Dec 14 18:47:05 2021 +0800

    change talent replace before property allocate

commit f4d7b3ae3c
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Dec 14 18:06:18 2021 +0800

    add event grade

commit 0567e40ddc
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 21:28:10 2021 +0800

    add particle

commit f17003925e
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 20:14:26 2021 +0800

    change ui

commit f8beda1d8f
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 19:08:30 2021 +0800

    change popup message ui

commit 915a2aa17d
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 18:34:29 2021 +0800

    new build

commit b5edabc104
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 18:18:46 2021 +0800

    add hint message

commit a143feadaf
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 17:57:31 2021 +0800

    fix copy bug

commit eab1975791
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 17:56:28 2021 +0800

    add save/load

commit acf9b92134
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Dec 2 14:35:33 2021 +0800

    add theme switch

commit 488a6054ab
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Wed Dec 1 18:30:36 2021 +0800

    fix uiManager bug

commit f0317eaf14
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Wed Dec 1 16:07:03 2021 +0800

    add message popup

commit eb02d1ee6f
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 28 21:22:54 2021 +0800

    change relocation

commit 60503eae47
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 28 19:27:16 2021 +0800

    change ScaleButton -> Laya.runtime.ScaleButton

commit 52ef5909c1
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 28 19:26:31 2021 +0800

    change ScaleButton -> Laya.runtime.ScaleButton

commit 0284f6aa71
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 28 19:05:24 2021 +0800

    config webpack

commit 0e272ffd99
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 28 13:17:41 2021 +0800

    add thanks

commit e1e2ab4701
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 28 11:40:21 2021 +0800

    add light theme

commit 4f55c00f86
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sat Nov 27 22:27:39 2021 +0800

    fix bug

commit 1d07bdfc46
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sat Nov 27 21:48:47 2021 +0800

    daily update

commit 52d6a0ca8f
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Wed Nov 24 23:10:04 2021 +0800

    daily update

commit f8dd720d4d
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Wed Nov 24 19:08:13 2021 +0800

    daily update

commit d088c1a862
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 21 21:41:46 2021 +0800

    remove useless

commit a711fcf3ed
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Nov 16 00:53:05 2021 +0800

    add achievement popup
    add page adaptive
    add talent extends

commit 05e02de3db
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sat Nov 13 01:24:04 2021 +0800

    add github and discord

commit bff0109cc5
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sat Nov 13 00:30:01 2021 +0800

    add trajectory auto mode

commit 54c04f65c2
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Fri Nov 12 19:54:31 2021 +0800

    fix property judge negative number bug

commit 660739530b
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Fri Nov 12 19:48:58 2021 +0800

    update achievement

commit c94e9e7433
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Thu Nov 11 21:37:45 2021 +0800

    update daily

commit c06cd9ea62
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Tue Nov 9 00:08:05 2021 +0800

    update daily

commit 2666983f89
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 7 23:00:22 2021 +0800

    add uiManager auto scan and load skin resource

commit 22fa5d755a
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Nov 7 22:17:04 2021 +0800

    update framework

commit f40698d63e
Author: Vick Scarlet <scarlet_vick@outlook.com>
Date:   Sun Oct 31 00:13:22 2021 +0800

    add laya
This commit is contained in:
Vick Scarlet
2022-01-28 00:39:35 +08:00
parent 150c991648
commit 14f9340d0a
74 changed files with 7713 additions and 1525 deletions

5
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"cSpell.words": [
"Laya"
]
}

BIN
data/en-us/character.xlsx Normal file

Binary file not shown.

BIN
data/zh-cn/character.xlsx Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,128 @@
{
"x":0,
"type":"View",
"selectedBox":1,
"selecteID":8,
"props":{"width":1125,"sceneColor":"#000000","height":2436},
"nodeParent":-1,
"label":"View",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":1,
"child":[
{
"x":15,
"type":"Box",
"props":{"y":10,"x":10,"width":600,"var":"btnCustom","runtime":"Laya.runtime.ScaleButton","name":"btn","height":400,"centerY":-400,"centerX":0},
"nodeParent":1,
"label":"Box(btnCustom)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":2,
"child":[
{
"x":30,
"type":"Image",
"props":{"top":-15,"skin":"images/border/achievement_complete@3x.png","right":-15,"left":-15,"bottom":-15},
"nodeParent":2,
"label":"Image",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":10,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"top":50,"text":"UI_CustomMode","fontSize":80,"font":"方正像素12","color":"#ffffff","centerX":0,"bold":true},
"nodeParent":2,
"label":"Label",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":4,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"top":200,"text":"UI_CustomModeDescription","right":0,"left":0,"leading":20,"fontSize":40,"font":"方正像素12","color":"#bcbcbc","bottom":0,"align":"center"},
"nodeParent":2,
"label":"Label",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":5,
"child":[
]
}]
},
{
"x":15,
"type":"Box",
"props":{"y":10,"x":20,"width":600,"var":"btnCelebrity","runtime":"Laya.runtime.ScaleButton","name":"btn","height":400,"centerY":400,"centerX":0},
"nodeParent":1,
"label":"Box(btnCelebrity)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":3,
"child":[
{
"x":30,
"type":"Image",
"props":{"y":-15,"x":-15,"top":-15,"skin":"images/border/achievement_complete@3x.png","right":-15,"left":-15,"bottom":-15},
"nodeParent":3,
"label":"Image",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":11,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"top":50,"text":"UI_CelebrityMode","fontSize":80,"font":"方正像素12","color":"#ffffff","centerX":0,"bold":true},
"nodeParent":3,
"label":"Label",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":7,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"top":200,"text":"UI_CelebrityModeDescription","right":0,"left":0,"leading":20,"fontSize":40,"font":"方正像素12","color":"#bcbcbc","bottom":0,"align":"center"},
"nodeParent":3,
"label":"Label",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":8,
"child":[
]
}]
}],
"animations":[
{
"nodes":[
],
"name":"ani1",
"id":1,
"frameRate":24,
"action":0
}]
}

View File

@@ -0,0 +1,306 @@
{
"x":0,
"type":"View",
"selectedBox":1,
"selecteID":28,
"props":{"width":1125,"sceneColor":"#000000","height":2436},
"nodeParent":-1,
"label":"View",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":1,
"child":[
{
"x":15,
"type":"Label",
"props":{"y":80,"text":"UI_Title_Celebrity","name":"title","fontSize":80,"font":"SimHei","color":"#ffffff","centerX":0},
"nodeParent":1,
"label":"Label(title)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":19,
"child":[
]
},
{
"x":15,
"type":"Panel",
"props":{"var":"panelCharacter","vScrollBarSkin":" ","top":200,"right":0,"name":"panelCharacter","left":0,"bottom":700},
"nodeParent":1,
"label":"Panel(panelCharacter)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":2,
"child":[
{
"x":30,
"type":"VBox",
"props":{"y":10,"width":1000,"var":"vboxCharacter","space":20,"name":"vboxCharacter","centerX":0},
"nodeParent":2,
"label":"VBox(vboxCharacter)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":8,
"child":[
{
"x":45,
"type":"Box",
"props":{"right":0,"name":"boxCharacter","left":0},
"nodeParent":8,
"label":"Box(boxCharacter)",
"isOpen":false,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":10,
"child":[
{
"type":"Box",
"props":{"y":0,"runtime":"Laya.runtime.ColorfulBox","right":0,"name":"boxName","left":0,"height":100},
"nodeParent":10,
"label":"Box(boxName)",
"isOpen":false,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":12,
"child":[
{
"type":"Label",
"props":{"valign":"middle","text":"颜值10 智力10 体质10 家境Π","name":"label","fontSize":55,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"align":"center"},
"nodeParent":12,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":18,
"child":[
]
}]
},
{
"type":"VBox",
"props":{"top":100,"space":20,"runtime":"Laya.runtime.ColorfulBox","right":25,"name":"vboxStates","left":25},
"nodeParent":10,
"label":"VBox(vboxStates)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":11,
"child":[
{
"type":"Label",
"props":{"valign":"middle","text":"颜值10 智力10 体质10 家境Π","name":"label","height":100,"fontSize":55,"font":"SimHei","color":"#ffffff","centerX":0,"align":"center"},
"nodeParent":11,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":14,
"child":[
]
}]
}]
},
{
"x":45,
"type":"Box",
"props":{"runtime":"Laya.runtime.ColorfulBox","right":25,"name":"boxTalent","left":25,"height":100},
"nodeParent":8,
"label":"Box(boxTalent)",
"isOpen":false,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":15,
"child":[
{
"type":"Label",
"props":{"valign":"middle","text":"颜值10 智力10 体质10 家境Π","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"align":"center"},
"nodeParent":15,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":17,
"child":[
]
}]
},
{
"x":45,
"type":"Box",
"props":{"y":10,"x":10,"right":0,"name":"boxUniqueUnGenerate","left":0},
"nodeParent":8,
"label":"Box(boxUniqueUnGenerate)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":20,
"child":[
{
"x":60,
"type":"Box",
"props":{"y":0,"runtime":"Laya.runtime.ColorfulBox","right":0,"name":"boxName","left":0,"height":100},
"nodeParent":20,
"label":"Box(boxName)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":21,
"child":[
{
"x":75,
"type":"Label",
"props":{"valign":"middle","text":"UI_UniqueWaTaShi","name":"label","fontSize":55,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"align":"center"},
"nodeParent":21,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":22,
"child":[
]
}]
},
{
"x":60,
"type":"VBox",
"props":{"top":100,"space":20,"runtime":"Laya.runtime.ColorfulBox","right":25,"name":"vboxStates","left":25},
"nodeParent":20,
"label":"VBox(vboxStates)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":23,
"child":[
{
"x":75,
"type":"Label",
"props":{"y":1,"valign":"middle","text":"UI_UniqueWaTaShiContent","right":0,"name":"label","left":0,"leading":30,"fontSize":55,"font":"SimHei","color":"#ffffff","align":"center"},
"nodeParent":23,
"label":"Label(label)",
"isOpen":true,
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":24,
"child":[
]
},
{
"x":75,
"type":"Box",
"props":{"y":2,"right":0,"name":"boxBtn","left":0,"height":150},
"nodeParent":23,
"label":"Box(boxBtn)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":25,
"child":[
{
"x":90,
"type":"Box",
"props":{"runtime":"Laya.runtime.ColorfulBox","right":50,"name":"btn","left":50,"height":120,"centerY":0},
"nodeParent":25,
"label":"Box(btn)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":26,
"child":[
{
"x":105,
"type":"Label",
"props":{"y":30,"x":290,"text":"UI_GenerateNow","name":"label","fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0},
"nodeParent":26,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":27,
"child":[
]
}]
}]
}]
}]
}]
}]
},
{
"x":15,
"type":"Box",
"props":{"width":480,"var":"btnRetry","runtime":"Laya.runtime.ColorfulBox","name":"btnRetry","height":150,"centerX":0,"bottom":400},
"nodeParent":1,
"label":"Box(btnRetry)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":4,
"child":[
{
"x":30,
"type":"Label",
"props":{"text":"UI_AllNot","name":"label","fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0},
"nodeParent":4,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":5,
"child":[
]
}]
},
{
"x":15,
"type":"Box",
"props":{"width":480,"var":"btnNext","runtime":"Laya.runtime.ColorfulBox","name":"btnNext","height":150,"centerX":0,"bottom":150},
"nodeParent":1,
"label":"Box(btnNext)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":6,
"child":[
{
"x":30,
"type":"Label",
"props":{"text":"UI_Make_New_Life","name":"label","fontSize":60,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0},
"nodeParent":6,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":7,
"child":[
]
}]
}],
"animations":[
{
"nodes":[
],
"name":"ani1",
"id":1,
"frameRate":24,
"action":0
}]
}

View File

@@ -0,0 +1,128 @@
{
"x":0,
"type":"View",
"selectedBox":1,
"selecteID":11,
"props":{"width":1125,"sceneColor":"#000000","height":2436},
"nodeParent":-1,
"label":"View",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":1,
"child":[
{
"x":15,
"type":"Box",
"props":{"width":600,"var":"btnCustom","runtime":"Laya.runtime.ColorfulBox","name":"btn","height":400,"centerY":-400,"centerX":0},
"nodeParent":1,
"label":"Box(btnCustom)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":2,
"child":[
{
"x":30,
"type":"Label",
"props":{"top":50,"text":"UI_CustomMode","name":"font_default","fontSize":80,"font":"SimHei","color":"#ffffff","centerX":0,"bold":true},
"nodeParent":2,
"label":"Label(font_default)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":4,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"top":200,"text":"UI_CustomModeDescription","right":0,"name":"font_default","left":0,"leading":20,"fontSize":40,"font":"SimHei","color":"#ffffff","bottom":0,"align":"center"},
"nodeParent":2,
"label":"Label(font_default)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":5,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"runtime":"Laya.runtime.ColorAgentLabel","name":"label"},
"nodeParent":2,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":10,
"child":[
]
}]
},
{
"x":15,
"type":"Box",
"props":{"x":10,"width":600,"var":"btnCelebrity","runtime":"Laya.runtime.ColorfulBox","name":"btn","height":400,"centerY":400,"centerX":0},
"nodeParent":1,
"label":"Box(btnCelebrity)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":3,
"child":[
{
"x":30,
"type":"Label",
"props":{"top":50,"text":"UI_CelebrityMode","name":"font_default","fontSize":80,"font":"SimHei","color":"#ffffff","centerX":0,"bold":true},
"nodeParent":3,
"label":"Label(font_default)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":8,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"top":200,"text":"UI_CelebrityModeDescription","right":0,"name":"font_default","left":0,"leading":20,"fontSize":40,"font":"SimHei","color":"#ffffff","bottom":0,"align":"center"},
"nodeParent":3,
"label":"Label(font_default)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":9,
"child":[
]
},
{
"x":30,
"type":"Label",
"props":{"y":10,"x":10,"runtime":"Laya.runtime.ColorAgentLabel","name":"label"},
"nodeParent":3,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":11,
"child":[
]
}]
}],
"animations":[
{
"nodes":[
],
"name":"ani1",
"id":1,
"frameRate":24,
"action":0
}]
}

View File

@@ -2,7 +2,7 @@
"x":0,
"type":"View",
"selectedBox":1,
"selecteID":153,
"selecteID":95,
"props":{"width":1125,"sceneColor":"#000000","runtime":"Laya.runtime.ViewBase","height":2436},
"nodeParent":-1,
"label":"View",

View File

@@ -2,8 +2,8 @@
"x":0,
"type":"Dialog",
"selectedBox":1,
"selecteID":15,
"props":{"width":645,"sceneColor":"#000000","height":250},
"selecteID":25,
"props":{"width":645,"sceneColor":"#000000","height":400},
"nodeParent":-1,
"label":"Dialog",
"isOpen":true,
@@ -15,17 +15,16 @@
{
"x":15,
"type":"Box",
"props":{"top":0,"right":0,"left":0,"bottom":150},
"props":{"top":0,"right":0,"left":0,"bottom":300},
"nodeParent":1,
"label":"Box",
"isOpen":true,
"isOpen":false,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":15,
"child":[
{
"x":30,
"type":"Box",
"props":{"y":0,"x":0,"width":645,"height":2},
"nodeParent":15,
@@ -50,7 +49,6 @@
}]
},
{
"x":30,
"type":"Box",
"props":{"width":645,"height":2,"centerX":0,"bottom":0},
"nodeParent":15,
@@ -75,7 +73,6 @@
}]
},
{
"x":30,
"type":"Box",
"props":{"width":645,"height":100,"centerY":0,"centerX":0,"alpha":0.2},
"nodeParent":15,
@@ -87,7 +84,6 @@
"compId":22,
"child":[
{
"x":45,
"type":"Rect",
"props":{"width":645,"lineWidth":1,"height":100,"fillColor":"#000000"},
"nodeParent":22,
@@ -104,7 +100,7 @@
{
"x":15,
"type":"TextInput",
"props":{"wordWrap":false,"var":"input","valign":"middle","top":0,"text":"content","right":0,"overflow":"scroll","left":0,"fontSize":35,"font":"SimHei","color":"#ffffff","bottom":150},
"props":{"wordWrap":false,"var":"input","valign":"middle","top":0,"text":"content","right":0,"overflow":"scroll","left":0,"fontSize":35,"font":"SimHei","color":"#ffffff","bottom":300},
"nodeParent":1,
"label":"TextInput(input)",
"isDirectory":false,
@@ -117,7 +113,7 @@
{
"x":15,
"type":"Box",
"props":{"width":120,"var":"btnSave","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":5,"height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
"props":{"width":120,"var":"btnSave","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":5,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
"nodeParent":1,
"label":"Box(btnSave)",
"isOpen":false,
@@ -142,7 +138,7 @@
{
"x":15,
"type":"Box",
"props":{"width":120,"var":"btnLoad","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":130,"height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
"props":{"width":120,"var":"btnLoad","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":130,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
"nodeParent":1,
"label":"Box(btnLoad)",
"isOpen":false,
@@ -167,7 +163,7 @@
{
"x":15,
"type":"Box",
"props":{"y":335,"width":120,"var":"btnRead","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":260,"height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
"props":{"width":120,"var":"btnRead","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":260,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
"nodeParent":1,
"label":"Box(btnRead)",
"isOpen":false,
@@ -192,7 +188,7 @@
{
"x":15,
"type":"Box",
"props":{"y":335,"width":120,"var":"btnWrite","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":390,"height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
"props":{"width":120,"var":"btnWrite","runtime":"Laya.runtime.ColorfulBox","name":"btnSmall","left":390,"height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
"nodeParent":1,
"label":"Box(btnWrite)",
"isOpen":false,
@@ -217,7 +213,7 @@
{
"x":15,
"type":"Box",
"props":{"y":10,"x":10,"width":120,"var":"btnClose","runtime":"Laya.runtime.ColorfulBox","right":5,"name":"btnSmall","height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
"props":{"x":10,"width":120,"var":"btnClose","runtime":"Laya.runtime.ColorfulBox","right":5,"name":"btnSmall","height":120,"bottom":155,"anchorY":0.5,"anchorX":0.5},
"nodeParent":1,
"label":"Box(btnClose)",
"isOpen":false,
@@ -238,6 +234,32 @@
"child":[
]
}]
},
{
"x":15,
"type":"Box",
"props":{"y":20,"var":"btnBackup","runtime":"Laya.runtime.ColorfulBox","right":5,"name":"btnBackup","left":5,"height":120,"bottom":5,"anchorY":0.5,"anchorX":0.5},
"nodeParent":1,
"label":"Box(btnBackup)",
"isOpen":true,
"isDirectory":true,
"isAniNode":true,
"hasChild":true,
"compId":25,
"child":[
{
"x":30,
"type":"Label",
"props":{"text":"UI_BackupBtn","name":"label","fontSize":50,"font":"SimHei","color":"#ffffff","centerY":0,"centerX":0,"bold":true,"anchorY":0.5,"anchorX":0.5},
"nodeParent":25,
"label":"Label(label)",
"isDirectory":false,
"isAniNode":true,
"hasChild":false,
"compId":26,
"child":[
]
}]
}],
"animations":[
{

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/chunk/33.007ad.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/chunk/85.5dbe1.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1066,7 +1066,7 @@
"name": "刷刷刷",
"description": "集齐橙色天赋",
"grade": 3,
"condition": "(ATLT?[1023])&(ATLT?[1048])&(ATLT?[1064])&(ATLT?[1114])&(ATLT?[1135])&(ATLT?[1141])",
"condition": "(ATLT?[1023])&(ATLT?[1048])&(ATLT?[1064])&(ATLT?[1114])&(ATLT?[1135])&(ATLT?[1141])&(ATLT?[1147])",
"hide": 0,
"opportunity": "START"
},
@@ -1456,5 +1456,32 @@
"condition": "TLT?[1136]",
"hide": 1,
"opportunity": "START"
},
"263": {
"id": 263,
"name": "经 典 老 歌",
"description": "自 投 罗 网",
"grade": 2,
"condition": "TLT?[2036]",
"hide": 1,
"opportunity": "START"
},
"264": {
"id": 264,
"name": "莎比",
"description": "集齐四大悲剧",
"grade": 2,
"condition": "(ATLT?[2028])&(ATLT?[2029])&(ATLT?[2030])&(ATLT?[2031])",
"hide": 0,
"opportunity": "START"
},
"265": {
"id": 265,
"name": "死了但没完全死",
"description": "死而复生",
"grade": 2,
"condition": "EVT?[20000,20001,11504]",
"hide": 0,
"opportunity": "TRAJECTORY"
}
}

View File

@@ -6,7 +6,8 @@
"10002*100",
10110,
10111,
"10494*999999"
"10494*999999",
"11503*999999999"
]
},
"1": {
@@ -20268,6 +20269,7 @@
"11347*0.01",
"11348*0.01",
"11349",
"20002*999999",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -20324,6 +20326,7 @@
"11346*0.1",
"11347*0.01",
"11348*0.01",
"20002*999999",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -20369,6 +20372,7 @@
"20383*0.01",
"20384*0.01",
"40001*999999999",
"20002*999999",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,12 @@
"effect": {
"LIF": -1
},
"NoRandom": 1
"NoRandom": 1,
"branch": [
"(TLT?[1148])&(EVT![20001]):20001",
"(TLT?[1147])&(EVT![20000]):20000",
"(TLT?[2024])&(EVT?[10679,10680,10681])&(EVT![11504]):11504"
]
},
"10001": {
"id": 10001,
@@ -3215,13 +3220,15 @@
},
"10366": {
"id": 10366,
"event": "你斩杀了大量筑基修士,获得不少资源。",
"event": "你参加了一场拍卖会。",
"grade": 1,
"effect": {
"INT": 10,
"STR": 100
},
"include": "(EVT?[10345,10361])&(STR>450)&(INT>10)&(TLT?[1048])"
"include": "(STR>100)&(TLT?[1048])",
"exclude": "EVT?[10366]",
"branch": [
"INT>50:20366",
"MNY>4:20365",
"TLT?[1048]:20364"
]
},
"10367": {
"id": 10367,
@@ -3716,7 +3723,7 @@
},
"10414": {
"id": 10414,
"event": "附近开始流行肺炎,你在家中不敢出门。",
"event": "你连刷了20条短视频发现所有人用的都是同款音乐。",
"include": "EVT?[10009]",
"exclude": "EVT?[10414]"
},
@@ -3724,14 +3731,11 @@
"id": 10415,
"event": "高考改革,英语被取消了。",
"include": "EVT?[10009]",
"exclude": "EVT?[10415]",
"branch": [
"(EVT?[10237,10238,10239])&(INT<8):20415"
]
"exclude": "EVT?[10415]"
},
"10416": {
"id": 10416,
"event": "高考改革,新增了中特社作为必考科目。",
"event": "政治成为幼儿园必修课。",
"include": "EVT?[10009,10010]",
"exclude": "EVT?[10416]"
},
@@ -3746,25 +3750,19 @@
},
"10418": {
"id": 10418,
"event": "塔利班组织占领华盛顿。",
"event": "地狱笑话吧被百度官方永久关闭。",
"include": "EVT?[10009]",
"exclude": "EVT?[10418]",
"branch": [
"INT<2:20418"
]
"exclude": "EVT?[10418]"
},
"10419": {
"id": 10419,
"event": "本·拉登复出,发视频称当年是假死。",
"event": "我国人口增长从高速发展转变为高质量发展,稳中有进。",
"include": "EVT?[10009]",
"exclude": "EVT?[10419]",
"branch": [
"INT<2:20419"
]
"exclude": "EVT?[10419]"
},
"10420": {
"id": 10420,
"event": "希特勒的遗骨被发现。",
"event": "国家出台相关规定,电子游戏的打斗场景不能出现任何颜色的液体。",
"include": "EVT?[10009]",
"exclude": "EVT?[10420]"
},
@@ -3808,20 +3806,14 @@
"id": 10425,
"event": "日本发生9.0级地震。",
"include": "EVT?[10009,11470]",
"exclude": "EVT?[10425,11476,10424]",
"branch": [
"SPR>7:20425"
]
"exclude": "EVT?[10425,11476,10424]"
},
"10426": {
"id": 10426,
"event": "中国大陆收复台湾。",
"grade": 1,
"include": "EVT?[10009]",
"exclude": "EVT?[10426]",
"branch": [
"(CHR>8)&(MNY>8):20426"
]
"exclude": "EVT?[10426]"
},
"10427": {
"id": 10427,
@@ -3852,21 +3844,15 @@
},
"10431": {
"id": 10431,
"event": "游哈米发布次时代手游大作《神原》。",
"event": "有史以来最大股灾出现。",
"include": "EVT?[10009]",
"exclude": "EVT?[10431]",
"branch": [
"MNY>6:20432"
]
"exclude": "EVT?[10431]"
},
"10432": {
"id": 10432,
"event": "腾讯收购网易。",
"event": "元宇宙时代来临网易CEO自称元始天尊哔哩哔哩CEO自称元帝米哈游CEO自称元批。",
"include": "EVT?[10009]",
"exclude": "EVT?[10432]",
"branch": [
"SPR>7:20433"
]
"exclude": "EVT?[10432]"
},
"10433": {
"id": 10433,
@@ -3906,7 +3892,7 @@
},
"10438": {
"id": 10438,
"event": "曹县成功申办2066年奥运会。",
"event": "某市假意设立黄赌毒场所,警方守在现场将违法人员全部抓获,市民纷纷翘起了大拇指。",
"include": "EVT?[10009]",
"exclude": "EVT?[10438]"
},
@@ -3914,7 +3900,7 @@
"id": 10439,
"event": "日本武力攻占珍珠港。",
"include": "EVT?[10009]",
"exclude": "EVT?[10439,11476]"
"exclude": "EVT?[10439]"
},
"10440": {
"id": 10440,
@@ -3925,7 +3911,7 @@
},
"10441": {
"id": 10441,
"event": "芜湖机场世界排名升至第一。",
"event": "大量网红在自己的网民前加上了当地地名。同年多名网红被招安成为当地干部。",
"include": "EVT?[10009]",
"exclude": "EVT?[10441]"
},
@@ -3975,10 +3961,7 @@
"id": 10448,
"event": "国家公布中产阶级标准家庭年收入100万。",
"include": "EVT?[10009,10010]",
"exclude": "EVT?[10448,11297]",
"branch": [
"MNY<4:20448"
]
"exclude": "EVT?[10448,11297]"
},
"10449": {
"id": 10449,
@@ -3996,10 +3979,7 @@
"id": 10451,
"event": "北京一本录取率首次超过99%。",
"include": "EVT?[10009,10010]",
"exclude": "EVT?[10451]",
"branch": [
"(MNY<4)&(TLT![1010]):20452"
]
"exclude": "EVT?[10451]"
},
"10452": {
"id": 10452,
@@ -5825,7 +5805,7 @@
},
"10706": {
"id": 10706,
"event": "金正恩在朝鲜称帝,改为帝制。",
"event": "为减少招聘时的性别歧视,某地出台新规定:员工休产假时的工资将延迟到产假结束后的相同长度时间内随工资发放。",
"include": "EVT?[10011]",
"exclude": "EVT?[10706]"
},
@@ -6275,7 +6255,7 @@
},
"10770": {
"id": 10770,
"event": "【绝密消息】你捡到一张纸条,上面写着“快20个群都加满了不加了不加了关注策划的贴吧号神户小德或者B站神户艾兰德吧,不要私信了求求了“",
"event": "【绝密消息】快20个群都加满了不加了不加了关注策划的贴吧号神户小德或者B站账号神户艾兰德吧",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10770]"
@@ -6289,14 +6269,14 @@
},
"10772": {
"id": 10772,
"event": "【绝密消息】据说按下特别感谢按钮,再按下打赏按钮,可以在让自己的名字出现在感谢名单上(雾",
"event": "【绝密消息】现在BUG很多希望大家遇到了BUG可以通知我们。BUG及意见收集Q群750452276",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10772,10771]"
},
"10773": {
"id": 10773,
"event": "【绝密消息】据说,修仙者是真实存在的……",
"event": "【绝密消息】新年快乐~",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10773,10774]"
@@ -6310,7 +6290,7 @@
},
"10775": {
"id": 10775,
"event": "【绝密消息】考古学家发现一粒古代的药丸,看上去金灿灿的,不像凡物。",
"event": "【绝密消息】后续我们想制作可以让玩家自己上传事件、自己设计天赋的编辑器,不过还处于新建文件夹状态(",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10775]"
@@ -6331,14 +6311,14 @@
},
"10778": {
"id": 10778,
"event": "【绝绝子消息】今日份甜甜碎片已加载完毕 不是8⃣我今天重开人生了 我真的哭死呢呢呢这家的人生好重开到跺jiojio这杯小布丁也有被惊艳到⁉无语子路上还看见一个Java男大无语事件哒哒哒岁月漫长 那就一起拯救地球与乐趣吧 ",
"event": "【绝消息】现在已经没多少活跃玩家了,过阵子人更少的话,文案是不是可以更加放飞自我了(误",
"grade": 2,
"include": "EVT?[10770,10771,10772,10773,10774,10775,10776,10777,10779,10780]",
"exclude": "EVT?[10778]"
},
"10779": {
"id": 10779,
"event": "【绝密消息】遗传学家说最好的天赋只有0.1%的几率出现其次的天赋是1%比较好的天赋是10%。",
"event": "【绝密消息】不会吧不会吧2022年了居然还有人在人生重开",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10779]"
@@ -9904,7 +9884,7 @@
"id": 11296,
"event": "高超的洞察力使你发现:现实世界是虚拟的。",
"grade": 3,
"include": "(INT>10)&(EVT?[11288])",
"include": "((INT>10)&(EVT?[11288]))|(TLT?[2022])",
"exclude": "EVT?[11296]",
"branch": [
"INT>10:21296"
@@ -10825,22 +10805,21 @@
},
"11424": {
"id": 11424,
"event": "调查显示84%的人认为自己的颜值是“中上”。",
"event": "最争议网络话题排行榜出炉高校排名话题位列第85名大量学生认为排低了。",
"include": "EVT?[10010]",
"exclude": "EVT?[11424,11425,11426,11263,11288]"
"exclude": "EVT?[11424]"
},
"11425": {
"id": 11425,
"event": "调查显示50%的人认为自己比大多数人多点儿小聪明另外30%的人认为自己的智商显著优于身边的人。",
"event": "研究发现网络视频平均时长在过去10年间降低了50%。",
"include": "EVT?[10010]",
"exclude": "EVT?[11424,11425,11426,11263,11288]"
"exclude": "EVT?[11425]"
},
"11426": {
"id": 11426,
"event": "调查显示75%的人认为自己的人品好过绝大多数人。",
"postEvent": "专家表示可能与报道犯罪的新闻过多有关。",
"event": "中国亿万富豪人数达到美国的两倍。",
"include": "EVT?[10010]",
"exclude": "EVT?[11424,11425,11426,11263,11288]"
"exclude": "EVT?[11426]"
},
"11427": {
"id": 11427,
@@ -10864,13 +10843,13 @@
},
"11430": {
"id": 11430,
"event": "诺贝尔奖暂停举办。",
"event": "调查显示84%的人认为自己的颜值是“中上”。",
"include": "EVT?[10010]",
"exclude": "EVT?[11430]"
},
"11431": {
"id": 11431,
"event": "欧盟合并成了一个国家。",
"event": "调查显示50%的人认为自己比大多数人多点儿小聪明另外30%的人认为自己的智商显著优于身边的人。",
"include": "EVT?[10010]",
"exclude": "EVT?[11431]"
},
@@ -10878,11 +10857,11 @@
"id": 11432,
"event": "印度成为了联合国第六常。",
"include": "EVT?[10010]",
"exclude": "EVT?[11432,11433]"
"exclude": "EVT?[11432]"
},
"11433": {
"id": 11433,
"event": "联合国解散了。",
"event": "调查显示75%的人认为自己的人品好过绝大多数人。",
"include": "EVT?[10010]",
"exclude": "EVT?[11433]"
},
@@ -10894,7 +10873,7 @@
},
"11435": {
"id": 11435,
"event": "教师行业越来越受到重视,教师工资显著提高。",
"event": "某地政府推出市民成就系统,结婚被设为传说级成就,引发大批年轻人前去领证。",
"include": "EVT?[10010]",
"exclude": "EVT?[11435]"
},
@@ -11161,56 +11140,53 @@
},
"11471": {
"id": 11471,
"event": "超级管理员Admin已被击败。",
"event": "苹果收购任天堂。",
"include": "EVT?[10010]",
"exclude": "EVT?[11471]"
},
"11472": {
"id": 11472,
"event": "4月10号一些兄弟们失去了家园只留下了那段话暗号不变江湖再见滴滴。天王盖地虎……",
"event": "某互联网大厂开发的自动编程AI在上线三天后过劳猝死。",
"include": "EVT?[10010]",
"exclude": "EVT?[11472]"
},
"11473": {
"id": 11473,
"event": "据一位资深游戏制作者透露:某游戏的第六代作品正在紧密制作当中,他们已经建好了文件夹,确定消息可靠。",
"event": "秦始皇陵被打开,墓穴里面是空的。",
"include": "EVT?[10010]",
"exclude": "EVT?[11473]"
},
"11474": {
"id": 11474,
"event": "湾区程序员建国,禁止变更需求被列入宪法。",
"event": "政府将游戏中的抽卡认定为赌博行为。",
"exclude": "EVT?[11474]"
},
"11475": {
"id": 11475,
"event": "你去听了一场电子管风琴音乐会,感觉自己的洪荒之力正在觉醒",
"effect": {
"STR": 1
},
"event": "一图书馆发生火灾,除博人传之外的其他书籍全部焚毁。",
"include": "(MNY>7)&(EVT?[10010])",
"exclude": "EVT?[11475]"
},
"11476": {
"id": 11476,
"event": "小日子过得不错的国家认祖归宗,归化为恒桑省。",
"event": "微信正式停止运营。",
"exclude": "EVT?[11476,11497,11498]"
},
"11477": {
"id": 11477,
"event": "某孙姓漫画家沉迷摸鱼,最终放弃漫画。意外中奖一亿后,醒来发现是做梦。",
"include": "EVT?[10009]",
"event": "一名元宇宙主播逃税138亿打破历史记录。",
"include": "EVT?[10432]",
"exclude": "EVT?[11477]"
},
"11478": {
"id": 11478,
"event": "某网红天天忙于相亲,导致粉丝不满,最终不得不公开宣布自己转投独身主义。",
"event": "有学者声称,在走向共产主义的道路上应该逐步废除婚姻制度。",
"include": "EVT?[10009]",
"exclude": "EVT?[11478]"
},
"11479": {
"id": 11479,
"event": "可以自主发明的发明机被发明,奇怪的发明充斥世界,引发了灾难。",
"event": "印度人口超越中国。",
"include": "EVT?[10010]",
"exclude": "EVT?[11479]"
},
@@ -11221,25 +11197,25 @@
},
"11481": {
"id": 11481,
"event": "虚拟偶像王加然在一次直播中宣布与同事杜向碗成为恋人。",
"event": "人工智能偶像正在逐步取代真人虚拟偶像。",
"include": "EVT?[10010]",
"exclude": "EVT?[11481]"
},
"11482": {
"id": 11482,
"event": "民间一款名为“人生重开模拟器”的游戏正在兴起,引起热议。",
"include": "EVT?[10009]",
"event": "两位著名人工智能偶像的不正当男女关系被曝光,其中一位删库自杀了。",
"include": "EVT?[11481]",
"exclude": "EVT?[11482]"
},
"11483": {
"id": 11483,
"event": "一位打气球摊老板被发现竟是地下军火大亨。",
"event": "外星人在地球公开现身宣称某电脑品牌违反宇宙命名公约且logo涉嫌歧视责令立即修改。",
"include": "EVT?[10011]",
"exclude": "EVT?[11483]"
},
"11484": {
"id": 11484,
"event": "人类发现宜居类地行星被命名为不吃香菜星27号。",
"event": "人类发现宜居类地行星。",
"exclude": "EVT?[11484]"
},
"11485": {
@@ -11249,81 +11225,82 @@
},
"11486": {
"id": 11486,
"event": "股市大涨P股直冲一万点。",
"event": "年度十大流行歌公布,你发现一首也没听过。",
"include": "EVT?[10010]",
"exclude": "EVT?[11486]"
},
"11487": {
"id": 11487,
"event": "人类首次3D打印月球。从此天上有了两个月亮。",
"event": "人类首次3D打印月球。",
"exclude": "EVT?[11487]"
},
"11488": {
"id": 11488,
"event": "受气候影响,一只野猪撞死了一只帝王蟹。",
"event": "美国黄石公园火山爆发。全球平均气温下降1摄氏度。",
"include": "EVT?[10009]",
"exclude": "EVT?[11488]"
},
"11489": {
"id": 11489,
"event": "世界上首个没有婚姻的国家出现了。",
"event": "本市有人计划在公交车上引爆炸弹,所幸被你提前阻止。",
"include": "(TLT?[1133,1132])&(EVT?[10010])",
"exclude": "EVT?[11489]"
},
"11490": {
"id": 11490,
"event": "国内独立游戏工作室联盟制作的3A游戏大作斩获TAG年度游戏。",
"include": "EVT?[10010]",
"event": "你喜欢读道德经和庄子。",
"effect": {
"INT": 1
},
"include": "TLT?[1048]",
"exclude": "EVT?[11490]"
},
"11491": {
"id": 11491,
"event": "国乒在对外星人的比赛中完胜对手,为星系外交做出巨大贡献。",
"include": "EVT?[10090,10700]",
"event": "日本公布年度汉字:寄。",
"include": "EVT?[10010]",
"exclude": "EVT?[11491]"
},
"11492": {
"id": 11492,
"event": "你被无人驾驶车撞伤了,获得大量赔偿。",
"effect": {
"MNY": 2
},
"event": "西安或将改名为西京,日本政府立即向中方抗议。",
"include": "EVT?[10010]",
"exclude": "EVT?[11492]"
},
"11493": {
"id": 11493,
"event": "马斯克宣布特斯拉进军颜色领域,用户授权后可以直接通过车内摄像头进行录制和发布。",
"include": "EVT?[10009]",
"event": "美国某州立法,要求所有心理测试在开始前都需要标注巴纳姆效应警告。",
"include": "EVT?[10011]",
"exclude": "EVT?[11493]"
},
"11494": {
"id": 11494,
"event": "火星宣称即将登陆朝鲜。",
"event": "韩国人口直线下滑,韩国政府宣布即将启动“火种”计划。",
"include": "EVT?[10009]",
"exclude": "EVT?[11494]"
},
"11495": {
"id": 11495,
"event": "首个禁止迫害程序员法案生效。",
"include": "EVT?[10010]",
"event": "为培养阳刚之气,有关专家建议禁止男性坐着小便。",
"include": "EVT?[10009]",
"exclude": "EVT?[11495]"
},
"11496": {
"id": 11496,
"event": "越南宣布毒品合法化,因为可以给国家创造大量税收,提供大量工作岗位。",
"include": "EVT?[10009]",
"event": "全年所有影视作品的主角均是少数人群。",
"include": "EVT?[10011]",
"exclude": "EVT?[11496]"
},
"11497": {
"id": 11497,
"event": "外星舰队造访,观看东京奥运会开幕式后连夜逃离地球。",
"exclude": "EVT?[11497,11476,11491]"
"event": "电商平台设立2.29购物节。至此终于全年366天全部都是购物节。",
"exclude": "EVT?[11497]"
},
"11498": {
"id": 11498,
"event": "日本大量居民因核废水变异,为防止病毒传播美国向日本抛下两颗原子弹。",
"event": "英国将汉语设为必修课程。",
"include": "EVT?[10009]",
"exclude": "EVT?[11476,11498]"
"exclude": "EVT?[11498]"
},
"11499": {
"id": 11499,
@@ -11333,25 +11310,71 @@
},
"11500": {
"id": 11500,
"event": "路过空地,被打羽毛球的大妈一记旋风扣杀打晕了过去。",
"event": "你感觉世界日新月异,各种大事不断发生,但好像又都与你的生活无关。",
"effect": {
"STR": -1
"SPR": -1
},
"include": "(EVT?[10010])&(STR<4)",
"exclude": "EVT?[11500]"
"include": "MNY<4",
"exclude": "EVT?[11500,11501]"
},
"11501": {
"id": 11501,
"event": "国家降低游戏版号限制,太爷爷生前在等的游戏终于发售了。",
"include": "(EVT?[10010])&(MNY>4)",
"exclude": "EVT?[11501]"
"event": "你感觉世界日新月异,对未来无限可能的那份好奇支持着你继续活下去。",
"effect": {
"SPR": 1
},
"include": "SPR<4",
"exclude": "EVT?[11500,11501]"
},
"11502": {
"id": 11502,
"event": "为防范星际入侵和核事故带来的变异生物,几大国牵头成立地球和平联合组织。",
"event": "山东省宣布本省男性平均身高达到1米8。\r\n各大社交平台上所在地标注为山东省的男性账户数量激增。",
"include": "EVT?[10010]",
"exclude": "EVT?[11502]"
},
"11503": {
"id": 11503,
"event": "We were no strangers to love\r\nYou know the rules and so do I\r\nA full commitments what I'm thinking of\r\nYou wouldn't get this from any other guy\r\nI just wanna tell you how I'm feeling\r\nGotta make you understand\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nWe've know each other for so long\r\nYour hearts been aching\r\nBut you're too shy to say it\r\nInside we both know what's been going on\r\nWe know the game and were gonna play it\r\nAnd if you ask me how I'm feeling\r\nDon't tell me youre too blind to see\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nGive you up. give you up\r\nGive you up, give you up\r\nNever gonna give\r\nNever gonna give give you up\r\nNever gonna give\r\nNever gonna give give you up\r\nWe've know each other for so long\r\nYour hearts been aching\r\nBut you're too shy to say it\r\nInside we both know what's been going on\r\nWe know the game and were gonna play it\r\nI just wanna tell you how I'm feeling\r\nGotta make you understand\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you",
"effect": {
"LIF": -1
},
"include": "TLT?[2036]"
},
"11504": {
"id": 11504,
"event": "因为得过诺贝尔奖,你被复活了。",
"grade": 3,
"effect": {
"LIF": 1
},
"NoRandom": 1
},
"20000": {
"id": 20000,
"event": "天赋卡【死者苏生】发动,你被复活了。",
"grade": 3,
"effect": {
"LIF": 1
},
"NoRandom": 1
},
"20001": {
"id": 20001,
"event": "因为和恶魔进行过交易,你复活了。",
"grade": 3,
"effect": {
"LIF": 1
},
"NoRandom": 1
},
"20002": {
"id": 20002,
"event": "你在睡梦中安然离世。",
"include": "EVT?[10000]",
"branch": [
"EVT?[10000]:10000"
]
},
"20007": {
"id": 20007,
"event": "你喜欢看画面人设好看的动漫。",
@@ -11702,6 +11725,69 @@
},
"NoRandom": 1
},
"20361": {
"id": 20361,
"event": "截杀者发现你比他还穷,直呼晦气,放了你一马。",
"NoRandom": 1
},
"20362": {
"id": 20362,
"event": "截杀者被你反杀。得到大量宝物,体质提升。",
"grade": 1,
"effect": {
"STR": 50
},
"NoRandom": 1
},
"20363": {
"id": 20363,
"event": "你在拍卖行外遭到了截杀。",
"NoRandom": 1,
"branch": [
"STR>500:20362",
"EVT?[20364]:20361",
"TLT?[1048]:10000"
]
},
"20364": {
"id": 20364,
"event": "你太穷了,什么也没拍到。",
"effect": {
"SPR": -1
},
"NoRandom": 1,
"branch": [
"CHR<3:20363"
]
},
"20365": {
"id": 20365,
"event": "你拍到了一篇功法。体质和智力提升。",
"grade": 1,
"effect": {
"INT": 10,
"STR": 10,
"MNY": -5
},
"NoRandom": 1,
"branch": [
"CHR<3:20363"
]
},
"20366": {
"id": 20366,
"event": "其他人不认识上古奇物,被你低价拍到。\r\n体质和快乐大幅提升。",
"grade": 2,
"effect": {
"STR": 100,
"MNY": -1,
"SPR": 5
},
"NoRandom": 1,
"branch": [
"CHR<3:20363"
]
},
"20367": {
"id": 20367,
"event": "你悟出了一条天道!",
@@ -11840,26 +11926,11 @@
},
"NoRandom": 1
},
"20415": {
"id": 20415,
"event": "你无语,你当年怎么没这么好的事儿。",
"NoRandom": 1
},
"20417": {
"id": 20417,
"event": "你寻思这也不是很难啊。",
"NoRandom": 1
},
"20418": {
"id": 20418,
"event": "你压根儿不知道塔利班和华盛顿是啥东西。",
"NoRandom": 1
},
"20419": {
"id": 20419,
"event": "你压根儿不知道本·拉登是啥东西。",
"NoRandom": 1
},
"20421": {
"id": 20421,
"event": "然后被你斥巨资购买了。",
@@ -11875,17 +11946,7 @@
},
"20423": {
"id": 20423,
"event": "有知情人告诉你不是交通事故,好像是一个在天上飞的人……",
"NoRandom": 1
},
"20425": {
"id": 20425,
"event": "你意识到这场地震并不寻常……",
"NoRandom": 1
},
"20426": {
"id": 20426,
"event": "但据你所知,并没有出动军队和武器,好像只派了少量的“人”?",
"event": "有知情人告诉你不是交通事故,好像是一个在天上飞的人造成的……",
"NoRandom": 1
},
"20431": {
@@ -11893,16 +11954,6 @@
"event": "你认为这是虚假消息。",
"NoRandom": 1
},
"20432": {
"id": 20432,
"event": "你试着玩了玩并且充了点钱,啥好角色都抽不到。",
"NoRandom": 1
},
"20433": {
"id": 20433,
"event": "还好你不玩网易游戏。",
"NoRandom": 1
},
"20436": {
"id": 20436,
"event": "笑死,一个都不生。",
@@ -11913,14 +11964,6 @@
"event": "你终于可以呼吸到新鲜空气了。",
"NoRandom": 1
},
"20439": {
"id": 20439,
"event": "据说他们没有使用飞机、舰船和炮弹。",
"NoRandom": 1,
"branch": [
"(CHR>8)&(STR>8):20439"
]
},
"20443": {
"id": 20443,
"event": "但你家还是很穷,而且也不算幸福。",
@@ -11931,16 +11974,6 @@
"event": "但你家还是很穷。",
"NoRandom": 1
},
"20448": {
"id": 20448,
"event": "你感觉太离谱了。",
"NoRandom": 1
},
"20452": {
"id": 20452,
"event": "可恶的天龙人。",
"NoRandom": 1
},
"20453": {
"id": 20453,
"event": "你感觉又有乐子了。",
@@ -12118,7 +12151,7 @@
},
"20770": {
"id": 20770,
"event": "【绝密消息】更新皮肤后很卡尤其是ios我自己都经常打不开这网页……",
"event": "【绝密消息】更新后第一次可能加载会比较慢。",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[20770]"

View File

@@ -16,7 +16,7 @@
"name": "生而为男",
"description": "性别一定为男",
"grade": 1,
"exclusive": [
"exclude": [
"1004",
"1025",
"1024"
@@ -27,7 +27,7 @@
"name": "生而为女",
"description": "性别一定为女",
"grade": 1,
"exclusive": [
"exclude": [
"1003",
"1024",
"1025"
@@ -81,7 +81,7 @@
"effect": {
"MNY": 1
},
"exclusive": [
"exclude": [
"1012",
"1013",
"1014"
@@ -98,7 +98,7 @@
"name": "乡间微风",
"description": "你出生在农村",
"grade": 0,
"exclusive": [
"exclude": [
"1010",
"1013",
"1014"
@@ -109,7 +109,7 @@
"name": "城中高楼",
"description": "你出生在城市",
"grade": 0,
"exclusive": [
"exclude": [
"1010",
"1012",
"1014"
@@ -123,7 +123,7 @@
"effect": {
"MNY": 1
},
"exclusive": [
"exclude": [
"1010",
"1012",
"1013"
@@ -210,7 +210,7 @@
"name": "人中龙凤",
"description": "天生双重性别",
"grade": 2,
"exclusive": [
"exclude": [
"1003",
"1004",
"1025"
@@ -221,7 +221,7 @@
"name": "阴阳之外",
"description": "天生无性别",
"grade": 2,
"exclusive": [
"exclude": [
"1003",
"1024",
"1004",
@@ -233,7 +233,7 @@
"name": "彩虹之下",
"description": "可能和同性交往",
"grade": 0,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -242,7 +242,7 @@
"name": "斩情证道",
"description": "终生不恋爱结婚",
"grade": 1,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -351,7 +351,7 @@
"name": "丁克",
"description": "不生孩子",
"grade": 1,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -384,7 +384,7 @@
"name": "不孕不育",
"description": "你生不出孩子",
"grade": 1,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -747,7 +747,7 @@
"effect": {
"SPR": 2
},
"exclusive": [
"exclude": [
"1122"
]
},
@@ -760,7 +760,7 @@
"effect": {
"SPR": 5
},
"exclusive": [
"exclude": [
"1122"
]
},
@@ -770,7 +770,7 @@
"description": "初始可用点-10",
"grade": 0,
"status": -10,
"exclusive": [
"exclude": [
"1122"
]
},
@@ -979,7 +979,7 @@
"1105": {
"id": "1105",
"name": "蓝色胶囊",
"description": "你2030岁时无事发生",
"description": "你20岁或30岁时无事发生",
"condition": "AGE?[20]",
"grade": 1
},
@@ -1030,7 +1030,7 @@
"name": "三胎人生",
"description": "你尽可能生三胎",
"grade": 1,
"exclusive": [
"exclude": [
"1003",
"1025",
"1026",
@@ -1094,7 +1094,7 @@
"description": "赶着投胎,不要初始属性了",
"grade": 1,
"status": -20,
"exclusive": [
"exclude": [
"1084",
"1085",
"1086"
@@ -1120,7 +1120,7 @@
},
"1126": {
"id": "1126",
"name": "黄帝",
"name": "偏见",
"description": "种族主义者",
"grade": 0
},
@@ -1247,7 +1247,7 @@
1
]
},
"exclusive": [
"exclude": [
"1012",
"1013",
"1014",
@@ -1268,7 +1268,7 @@
2
]
},
"exclusive": [
"exclude": [
"1012",
"1013",
"1014",
@@ -1328,8 +1328,490 @@
"1114*0.2",
"1023*0.2",
"1048*0.2",
"1033*5"
"1033*5",
"1147*0.2"
]
}
},
"1147": {
"id": 1147,
"name": "死者苏生",
"description": "加一条命",
"grade": 3
},
"1148": {
"id": 1148,
"name": "恶魔的交易",
"description": "所有属性-2加一条命",
"grade": 2,
"effect": {
"SPR": -2,
"MNY": -2,
"CHR": -2,
"STR": -2,
"INT": -2
}
},
"2001": {
"id": 2001,
"name": "霸王",
"description": "体质+4",
"grade": 2,
"exclusive": 1,
"effect": {
"STR": 4
}
},
"2002": {
"id": 2002,
"name": "国色",
"description": "颜值+4",
"grade": 2,
"exclusive": 1,
"effect": {
"CHR": 4
}
},
"2003": {
"id": 2003,
"name": "兼爱",
"description": "你很受",
"grade": 0,
"exclusive": 1
},
"2004": {
"id": 2004,
"name": "树人",
"description": "你还有别的名字",
"grade": 0,
"exclusive": 1
},
"2005": {
"id": 2005,
"name": "圆周率",
"description": 3.1415926,
"grade": 0,
"exclusive": 1
},
"2006": {
"id": 2006,
"name": "",
"description": "",
"grade": 1,
"exclusive": 1,
"replacement": {
"grade": [
2
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2007": {
"id": 2007,
"name": "",
"description": "",
"condition": "STR<0",
"grade": 0,
"exclusive": 1,
"effect": {
"SPR": 1,
"MNY": 1,
"CHR": 1,
"INT": 1
}
},
"2008": {
"id": 2008,
"name": "",
"description": "",
"condition": "(SPR>5)&(MNY>5)&(CHR>5)&(STR>5)&(INT>5)",
"grade": 0,
"exclusive": 1,
"effect": {
"SPR": 1,
"MNY": 1,
"CHR": 1,
"STR": 1,
"INT": 1
}
},
"2009": {
"id": 2009,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2010": {
"id": 2010,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2011": {
"id": 2011,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2012": {
"id": 2012,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2013": {
"id": 2013,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2014": {
"id": 2014,
"name": "连续可导",
"description": "你没有其他人格",
"grade": 0,
"exclusive": 1
},
"2015": {
"id": 2015,
"name": "绝妙的天赋",
"description": "可惜这里写不下",
"grade": 3,
"exclusive": 1,
"status": 1,
"effect": {
"SPR": 5,
"MNY": 1,
"CHR": 1,
"STR": 2,
"INT": 1,
"RDM": 1
}
},
"2016": {
"id": 2016,
"name": "叠加态",
"description": "变成橙色天赋或死",
"grade": 2,
"exclusive": 1,
"replacement": {
"talent": [
1141,
1135,
1114,
1023,
1048,
"1033*6",
1147
]
}
},
"2017": {
"id": 2017,
"name": "木大",
"description": "遗言很有名",
"grade": 0,
"exclusive": 1
},
"2018": {
"id": 2018,
"name": "高产",
"description": "60岁时体质-2",
"condition": "AGE?[10]",
"grade": 0,
"exclusive": 1,
"effect": {
"STR": -2
}
},
"2019": {
"id": 2019,
"name": "杠杆",
"description": "理财天赋较高",
"condition": "AGE?[20]",
"grade": 1,
"exclusive": 1,
"effect": {
"MNY": 3
}
},
"2020": {
"id": 2020,
"name": "物理",
"description": "30岁时颜值-2",
"condition": "AGE?[30]",
"grade": 0,
"exclusive": 1,
"effect": {
"CHR": -2
}
},
"2021": {
"id": 2021,
"name": "阳间福袋",
"description": "更可能开出好天赋",
"grade": 2,
"exclusive": 1,
"replacement": {
"talent": [
"1142",
"1139",
"1140",
"1141",
"1128",
"1131",
"1104",
"1048",
"1134",
"1135",
"1107",
"1080",
"1065",
"1148"
]
}
},
"2022": {
"id": 2022,
"name": "洞穴寓言",
"description": "可能发现世界的真相",
"grade": 1,
"exclusive": 1
},
"2023": {
"id": 2023,
"name": "天赋综合判断",
"description": "天赋不能多于5个",
"grade": 0,
"exclusive": 1
},
"2024": {
"id": 2024,
"name": "诺贝尔奖",
"description": "得过诺贝尔奖可复活一次",
"grade": 2,
"exclusive": 1
},
"2025": {
"id": 2025,
"name": "二号橙色转盘",
"description": "变成随机橙色天赋",
"grade": 2,
"exclusive": 1,
"replacement": {
"grade": [
3
]
}
},
"2026": {
"id": 2026,
"name": "流芳",
"description": "有悲剧时,所有属性+1",
"condition": "TLT?[2028,2029,2030,2031]",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 1,
"MNY": 1,
"CHR": 1,
"STR": 1,
"INT": 1
}
},
"2027": {
"id": 2027,
"name": "百世",
"description": "随机抽一部剧",
"grade": 1,
"exclusive": 1,
"replacement": {
"talent": [
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035
]
}
},
"2028": {
"id": 2028,
"name": "哈姆雷特",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2029": {
"id": 2029,
"name": "李尔王",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2030": {
"id": 2030,
"name": "麦克白",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2031": {
"id": 2031,
"name": "奥赛罗",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2032": {
"id": 2032,
"name": "仲夏夜之梦",
"description": "快乐+114509",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 114509
}
},
"2033": {
"id": 2033,
"name": "威尼斯商人",
"description": "快乐+2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 2
}
},
"2034": {
"id": 2034,
"name": "第十二夜",
"description": "快乐+2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 2
}
},
"2035": {
"id": 2035,
"name": "皆大欢喜",
"description": "快乐+2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 2
}
},
"2036": {
"id": 2036,
"name": "永不言弃",
"description": "你永远不会放弃",
"grade": 2,
"exclusive": 1
}
}

View File

@@ -2468,6 +2468,40 @@
"group": 2,
"name": "绝对不是楠桐的仓妖"
},
{
"group": 2,
"name": "无川手页的说"
},
{
"group": 2,
"name": ""
},
{
"group": 2,
"name": "靈間"
},
{
"group": 2,
"name": "黑牙牙"
},
{
"group": 2,
"name": "烧兔"
},
{
"group": 2,
"name": "晨曦"
},
{
"group": 2,
"name": "厕所"
},
{
"group": 1,
"name": "0_fds",
"comment": "2.71 8281 8284 5904",
"color": "#FFFFFF"
},
{
"group": 2,
"name": "超级无敌暴龙战士"
@@ -4343,5 +4377,21 @@
"group": 2,
"name": "INKS",
"color": "#7FFFFD4"
},
{
"group": 2,
"name": "东京八百万萝莉总教头"
},
{
"group": 2,
"name": "门后有只猫"
},
{
"group": 2,
"name": "LeoLoki"
},
{
"group": 2,
"name": "皆因堂"
}
]

View File

@@ -1066,7 +1066,7 @@
"name": "刷刷刷",
"description": "集齐橙色天赋",
"grade": 3,
"condition": "(ATLT?[1023])&(ATLT?[1048])&(ATLT?[1064])&(ATLT?[1114])&(ATLT?[1135])&(ATLT?[1141])",
"condition": "(ATLT?[1023])&(ATLT?[1048])&(ATLT?[1064])&(ATLT?[1114])&(ATLT?[1135])&(ATLT?[1141])&(ATLT?[1147])",
"hide": 0,
"opportunity": "START"
},
@@ -1456,5 +1456,32 @@
"condition": "TLT?[1136]",
"hide": 1,
"opportunity": "START"
},
"263": {
"id": 263,
"name": "经 典 老 歌",
"description": "自 投 罗 网",
"grade": 2,
"condition": "TLT?[2036]",
"hide": 1,
"opportunity": "START"
},
"264": {
"id": 264,
"name": "莎比",
"description": "集齐四大悲剧",
"grade": 2,
"condition": "(ATLT?[2028])&(ATLT?[2029])&(ATLT?[2030])&(ATLT?[2031])",
"hide": 0,
"opportunity": "START"
},
"265": {
"id": 265,
"name": "死了但没完全死",
"description": "死而复生",
"grade": 2,
"condition": "EVT?[20000,20001,11504]",
"hide": 0,
"opportunity": "TRAJECTORY"
}
}

View File

@@ -6,7 +6,8 @@
"10002*100",
10110,
10111,
"10494*999999"
"10494*999999",
"11503*999999999"
]
},
"1": {
@@ -11825,6 +11826,8 @@
"20567*0.01",
"11497*0.05",
"11498*0.05",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -12046,6 +12049,8 @@
"11497*0.05",
"11498*0.05",
"11499*0.1",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -12267,6 +12272,8 @@
"11498*0.05",
"11499*0.1",
"10426*0.1",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -12479,6 +12486,8 @@
"11498*0.05",
"11499*0.1",
"10426*0.1",
"21326",
"21327",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -20260,6 +20269,7 @@
"11347*0.01",
"11348*0.01",
"11349",
"20002*999999",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -20316,6 +20326,7 @@
"11346*0.1",
"11347*0.01",
"11348*0.01",
"20002*999999",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",
@@ -20361,6 +20372,7 @@
"20383*0.01",
"20384*0.01",
"40001*999999999",
"20002*999999",
"40065*1000000000000000000",
"40066*100000000000000000",
"40067*100000000000000000",

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,12 @@
"effect": {
"LIF": -1
},
"NoRandom": 1
"NoRandom": 1,
"branch": [
"(TLT?[1148])&(EVT![20001]):20001",
"(TLT?[1147])&(EVT![20000]):20000",
"(TLT?[2024])&(EVT?[10679,10680,10681])&(EVT![11504]):11504"
]
},
"10001": {
"id": 10001,
@@ -3215,13 +3220,15 @@
},
"10366": {
"id": 10366,
"event": "你斩杀了大量筑基修士,获得不少资源。",
"event": "你参加了一场拍卖会。",
"grade": 1,
"effect": {
"INT": 10,
"STR": 100
},
"include": "(EVT?[10345,10361])&(STR>450)&(INT>10)&(TLT?[1048])"
"include": "(STR>100)&(TLT?[1048])",
"exclude": "EVT?[10366]",
"branch": [
"INT>50:20366",
"MNY>4:20365",
"TLT?[1048]:20364"
]
},
"10367": {
"id": 10367,
@@ -3716,7 +3723,7 @@
},
"10414": {
"id": 10414,
"event": "附近开始流行肺炎,你在家中不敢出门。",
"event": "你连刷了20条短视频发现所有人用的都是同款音乐。",
"include": "EVT?[10009]",
"exclude": "EVT?[10414]"
},
@@ -3724,14 +3731,11 @@
"id": 10415,
"event": "高考改革,英语被取消了。",
"include": "EVT?[10009]",
"exclude": "EVT?[10415]",
"branch": [
"(EVT?[10237,10238,10239])&(INT<8):20415"
]
"exclude": "EVT?[10415]"
},
"10416": {
"id": 10416,
"event": "高考改革,新增了中特社作为必考科目。",
"event": "政治成为幼儿园必修课。",
"include": "EVT?[10009,10010]",
"exclude": "EVT?[10416]"
},
@@ -3746,25 +3750,19 @@
},
"10418": {
"id": 10418,
"event": "塔利班组织占领华盛顿。",
"event": "地狱笑话吧被百度官方永久关闭。",
"include": "EVT?[10009]",
"exclude": "EVT?[10418]",
"branch": [
"INT<2:20418"
]
"exclude": "EVT?[10418]"
},
"10419": {
"id": 10419,
"event": "本·拉登复出,发视频称当年是假死。",
"event": "我国人口增长从高速发展转变为高质量发展,稳中有进。",
"include": "EVT?[10009]",
"exclude": "EVT?[10419]",
"branch": [
"INT<2:20419"
]
"exclude": "EVT?[10419]"
},
"10420": {
"id": 10420,
"event": "希特勒的遗骨被发现。",
"event": "国家出台相关规定,电子游戏的打斗场景不能出现任何颜色的液体。",
"include": "EVT?[10009]",
"exclude": "EVT?[10420]"
},
@@ -3808,20 +3806,14 @@
"id": 10425,
"event": "日本发生9.0级地震。",
"include": "EVT?[10009,11470]",
"exclude": "EVT?[10425,11476,10424]",
"branch": [
"SPR>7:20425"
]
"exclude": "EVT?[10425,11476,10424]"
},
"10426": {
"id": 10426,
"event": "中国大陆收复台湾。",
"grade": 1,
"include": "EVT?[10009]",
"exclude": "EVT?[10426]",
"branch": [
"(CHR>8)&(MNY>8):20426"
]
"exclude": "EVT?[10426]"
},
"10427": {
"id": 10427,
@@ -3852,21 +3844,15 @@
},
"10431": {
"id": 10431,
"event": "游哈米发布次时代手游大作《神原》。",
"event": "有史以来最大股灾出现。",
"include": "EVT?[10009]",
"exclude": "EVT?[10431]",
"branch": [
"MNY>6:20432"
]
"exclude": "EVT?[10431]"
},
"10432": {
"id": 10432,
"event": "腾讯收购网易。",
"event": "元宇宙时代来临网易CEO自称元始天尊哔哩哔哩CEO自称元帝米哈游CEO自称元批。",
"include": "EVT?[10009]",
"exclude": "EVT?[10432]",
"branch": [
"SPR>7:20433"
]
"exclude": "EVT?[10432]"
},
"10433": {
"id": 10433,
@@ -3906,7 +3892,7 @@
},
"10438": {
"id": 10438,
"event": "曹县成功申办2066年奥运会。",
"event": "某市假意设立黄赌毒场所,警方守在现场将违法人员全部抓获,市民纷纷翘起了大拇指。",
"include": "EVT?[10009]",
"exclude": "EVT?[10438]"
},
@@ -3914,7 +3900,7 @@
"id": 10439,
"event": "日本武力攻占珍珠港。",
"include": "EVT?[10009]",
"exclude": "EVT?[10439,11476]"
"exclude": "EVT?[10439]"
},
"10440": {
"id": 10440,
@@ -3925,7 +3911,7 @@
},
"10441": {
"id": 10441,
"event": "芜湖机场世界排名升至第一。",
"event": "大量网红在自己的网民前加上了当地地名。同年多名网红被招安成为当地干部。",
"include": "EVT?[10009]",
"exclude": "EVT?[10441]"
},
@@ -3975,10 +3961,7 @@
"id": 10448,
"event": "国家公布中产阶级标准家庭年收入100万。",
"include": "EVT?[10009,10010]",
"exclude": "EVT?[10448,11297]",
"branch": [
"MNY<4:20448"
]
"exclude": "EVT?[10448,11297]"
},
"10449": {
"id": 10449,
@@ -3996,10 +3979,7 @@
"id": 10451,
"event": "北京一本录取率首次超过99%。",
"include": "EVT?[10009,10010]",
"exclude": "EVT?[10451]",
"branch": [
"(MNY<4)&(TLT![1010]):20452"
]
"exclude": "EVT?[10451]"
},
"10452": {
"id": 10452,
@@ -5825,7 +5805,7 @@
},
"10706": {
"id": 10706,
"event": "金正恩在朝鲜称帝,改为帝制。",
"event": "为减少招聘时的性别歧视,某地出台新规定:员工休产假时的工资将延迟到产假结束后的相同长度时间内随工资发放。",
"include": "EVT?[10011]",
"exclude": "EVT?[10706]"
},
@@ -6275,7 +6255,7 @@
},
"10770": {
"id": 10770,
"event": "【绝密消息】你捡到一张纸条,上面写着“快20个群都加满了不加了不加了关注策划的贴吧号神户小德或者B站神户艾兰德吧,不要私信了求求了“",
"event": "【绝密消息】快20个群都加满了不加了不加了关注策划的贴吧号神户小德或者B站账号神户艾兰德吧",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10770]"
@@ -6289,14 +6269,14 @@
},
"10772": {
"id": 10772,
"event": "【绝密消息】据说按下特别感谢按钮,再按下打赏按钮,可以在让自己的名字出现在感谢名单上(雾",
"event": "【绝密消息】现在BUG很多希望大家遇到了BUG可以通知我们。BUG及意见收集Q群750452276",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10772,10771]"
},
"10773": {
"id": 10773,
"event": "【绝密消息】据说,修仙者是真实存在的……",
"event": "【绝密消息】新年快乐~",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10773,10774]"
@@ -6310,7 +6290,7 @@
},
"10775": {
"id": 10775,
"event": "【绝密消息】考古学家发现一粒古代的药丸,看上去金灿灿的,不像凡物。",
"event": "【绝密消息】后续我们想制作可以让玩家自己上传事件、自己设计天赋的编辑器,不过还处于新建文件夹状态(",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10775]"
@@ -6331,14 +6311,14 @@
},
"10778": {
"id": 10778,
"event": "【绝绝子消息】今日份甜甜碎片已加载完毕 不是8⃣我今天重开人生了 我真的哭死呢呢呢这家的人生好重开到跺jiojio这杯小布丁也有被惊艳到⁉无语子路上还看见一个Java男大无语事件哒哒哒岁月漫长 那就一起拯救地球与乐趣吧 ",
"event": "【绝消息】现在已经没多少活跃玩家了,过阵子人更少的话,文案是不是可以更加放飞自我了(误",
"grade": 2,
"include": "EVT?[10770,10771,10772,10773,10774,10775,10776,10777,10779,10780]",
"exclude": "EVT?[10778]"
},
"10779": {
"id": 10779,
"event": "【绝密消息】遗传学家说最好的天赋只有0.1%的几率出现其次的天赋是1%比较好的天赋是10%。",
"event": "【绝密消息】不会吧不会吧2022年了居然还有人在人生重开",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[10779]"
@@ -9904,7 +9884,7 @@
"id": 11296,
"event": "高超的洞察力使你发现:现实世界是虚拟的。",
"grade": 3,
"include": "(INT>10)&(EVT?[11288])",
"include": "((INT>10)&(EVT?[11288]))|(TLT?[2022])",
"exclude": "EVT?[11296]",
"branch": [
"INT>10:21296"
@@ -10825,22 +10805,21 @@
},
"11424": {
"id": 11424,
"event": "调查显示84%的人认为自己的颜值是“中上”。",
"event": "最争议网络话题排行榜出炉高校排名话题位列第85名大量学生认为排低了。",
"include": "EVT?[10010]",
"exclude": "EVT?[11424,11425,11426,11263,11288]"
"exclude": "EVT?[11424]"
},
"11425": {
"id": 11425,
"event": "调查显示50%的人认为自己比大多数人多点儿小聪明另外30%的人认为自己的智商显著优于身边的人。",
"event": "研究发现网络视频平均时长在过去10年间降低了50%。",
"include": "EVT?[10010]",
"exclude": "EVT?[11424,11425,11426,11263,11288]"
"exclude": "EVT?[11425]"
},
"11426": {
"id": 11426,
"event": "调查显示75%的人认为自己的人品好过绝大多数人。",
"postEvent": "专家表示可能与报道犯罪的新闻过多有关。",
"event": "中国亿万富豪人数达到美国的两倍。",
"include": "EVT?[10010]",
"exclude": "EVT?[11424,11425,11426,11263,11288]"
"exclude": "EVT?[11426]"
},
"11427": {
"id": 11427,
@@ -10864,13 +10843,13 @@
},
"11430": {
"id": 11430,
"event": "诺贝尔奖暂停举办。",
"event": "调查显示84%的人认为自己的颜值是“中上”。",
"include": "EVT?[10010]",
"exclude": "EVT?[11430]"
},
"11431": {
"id": 11431,
"event": "欧盟合并成了一个国家。",
"event": "调查显示50%的人认为自己比大多数人多点儿小聪明另外30%的人认为自己的智商显著优于身边的人。",
"include": "EVT?[10010]",
"exclude": "EVT?[11431]"
},
@@ -10878,11 +10857,11 @@
"id": 11432,
"event": "印度成为了联合国第六常。",
"include": "EVT?[10010]",
"exclude": "EVT?[11432,11433]"
"exclude": "EVT?[11432]"
},
"11433": {
"id": 11433,
"event": "联合国解散了。",
"event": "调查显示75%的人认为自己的人品好过绝大多数人。",
"include": "EVT?[10010]",
"exclude": "EVT?[11433]"
},
@@ -10894,7 +10873,7 @@
},
"11435": {
"id": 11435,
"event": "教师行业越来越受到重视,教师工资显著提高。",
"event": "某地政府推出市民成就系统,结婚被设为传说级成就,引发大批年轻人前去领证。",
"include": "EVT?[10010]",
"exclude": "EVT?[11435]"
},
@@ -11161,56 +11140,53 @@
},
"11471": {
"id": 11471,
"event": "超级管理员Admin已被击败。",
"event": "苹果收购任天堂。",
"include": "EVT?[10010]",
"exclude": "EVT?[11471]"
},
"11472": {
"id": 11472,
"event": "4月10号一些兄弟们失去了家园只留下了那段话暗号不变江湖再见滴滴。天王盖地虎……",
"event": "某互联网大厂开发的自动编程AI在上线三天后过劳猝死。",
"include": "EVT?[10010]",
"exclude": "EVT?[11472]"
},
"11473": {
"id": 11473,
"event": "据一位资深游戏制作者透露:某游戏的第六代作品正在紧密制作当中,他们已经建好了文件夹,确定消息可靠。",
"event": "秦始皇陵被打开,墓穴里面是空的。",
"include": "EVT?[10010]",
"exclude": "EVT?[11473]"
},
"11474": {
"id": 11474,
"event": "湾区程序员建国,禁止变更需求被列入宪法。",
"event": "政府将游戏中的抽卡认定为赌博行为。",
"exclude": "EVT?[11474]"
},
"11475": {
"id": 11475,
"event": "你去听了一场电子管风琴音乐会,感觉自己的洪荒之力正在觉醒",
"effect": {
"STR": 1
},
"event": "一图书馆发生火灾,除博人传之外的其他书籍全部焚毁。",
"include": "(MNY>7)&(EVT?[10010])",
"exclude": "EVT?[11475]"
},
"11476": {
"id": 11476,
"event": "小日子过得不错的国家认祖归宗,归化为恒桑省。",
"event": "微信正式停止运营。",
"exclude": "EVT?[11476,11497,11498]"
},
"11477": {
"id": 11477,
"event": "某孙姓漫画家沉迷摸鱼,最终放弃漫画。意外中奖一亿后,醒来发现是做梦。",
"include": "EVT?[10009]",
"event": "一名元宇宙主播逃税138亿打破历史记录。",
"include": "EVT?[10432]",
"exclude": "EVT?[11477]"
},
"11478": {
"id": 11478,
"event": "某网红天天忙于相亲,导致粉丝不满,最终不得不公开宣布自己转投独身主义。",
"event": "有学者声称,在走向共产主义的道路上应该逐步废除婚姻制度。",
"include": "EVT?[10009]",
"exclude": "EVT?[11478]"
},
"11479": {
"id": 11479,
"event": "可以自主发明的发明机被发明,奇怪的发明充斥世界,引发了灾难。",
"event": "印度人口超越中国。",
"include": "EVT?[10010]",
"exclude": "EVT?[11479]"
},
@@ -11221,25 +11197,25 @@
},
"11481": {
"id": 11481,
"event": "虚拟偶像王加然在一次直播中宣布与同事杜向碗成为恋人。",
"event": "人工智能偶像正在逐步取代真人虚拟偶像。",
"include": "EVT?[10010]",
"exclude": "EVT?[11481]"
},
"11482": {
"id": 11482,
"event": "民间一款名为“人生重开模拟器”的游戏正在兴起,引起热议。",
"include": "EVT?[10009]",
"event": "两位著名人工智能偶像的不正当男女关系被曝光,其中一位删库自杀了。",
"include": "EVT?[11481]",
"exclude": "EVT?[11482]"
},
"11483": {
"id": 11483,
"event": "一位打气球摊老板被发现竟是地下军火大亨。",
"event": "外星人在地球公开现身宣称某电脑品牌违反宇宙命名公约且logo涉嫌歧视责令立即修改。",
"include": "EVT?[10011]",
"exclude": "EVT?[11483]"
},
"11484": {
"id": 11484,
"event": "人类发现宜居类地行星被命名为不吃香菜星27号。",
"event": "人类发现宜居类地行星。",
"exclude": "EVT?[11484]"
},
"11485": {
@@ -11249,81 +11225,82 @@
},
"11486": {
"id": 11486,
"event": "股市大涨P股直冲一万点。",
"event": "年度十大流行歌公布,你发现一首也没听过。",
"include": "EVT?[10010]",
"exclude": "EVT?[11486]"
},
"11487": {
"id": 11487,
"event": "人类首次3D打印月球。从此天上有了两个月亮。",
"event": "人类首次3D打印月球。",
"exclude": "EVT?[11487]"
},
"11488": {
"id": 11488,
"event": "受气候影响,一只野猪撞死了一只帝王蟹。",
"event": "美国黄石公园火山爆发。全球平均气温下降1摄氏度。",
"include": "EVT?[10009]",
"exclude": "EVT?[11488]"
},
"11489": {
"id": 11489,
"event": "世界上首个没有婚姻的国家出现了。",
"event": "本市有人计划在公交车上引爆炸弹,所幸被你提前阻止。",
"include": "(TLT?[1133,1132])&(EVT?[10010])",
"exclude": "EVT?[11489]"
},
"11490": {
"id": 11490,
"event": "国内独立游戏工作室联盟制作的3A游戏大作斩获TAG年度游戏。",
"include": "EVT?[10010]",
"event": "你喜欢读道德经和庄子。",
"effect": {
"INT": 1
},
"include": "TLT?[1048]",
"exclude": "EVT?[11490]"
},
"11491": {
"id": 11491,
"event": "国乒在对外星人的比赛中完胜对手,为星系外交做出巨大贡献。",
"include": "EVT?[10090,10700]",
"event": "日本公布年度汉字:寄。",
"include": "EVT?[10010]",
"exclude": "EVT?[11491]"
},
"11492": {
"id": 11492,
"event": "你被无人驾驶车撞伤了,获得大量赔偿。",
"effect": {
"MNY": 2
},
"event": "西安或将改名为西京,日本政府立即向中方抗议。",
"include": "EVT?[10010]",
"exclude": "EVT?[11492]"
},
"11493": {
"id": 11493,
"event": "马斯克宣布特斯拉进军颜色领域,用户授权后可以直接通过车内摄像头进行录制和发布。",
"include": "EVT?[10009]",
"event": "美国某州立法,要求所有心理测试在开始前都需要标注巴纳姆效应警告。",
"include": "EVT?[10011]",
"exclude": "EVT?[11493]"
},
"11494": {
"id": 11494,
"event": "火星宣称即将登陆朝鲜。",
"event": "韩国人口直线下滑,韩国政府宣布即将启动“火种”计划。",
"include": "EVT?[10009]",
"exclude": "EVT?[11494]"
},
"11495": {
"id": 11495,
"event": "首个禁止迫害程序员法案生效。",
"include": "EVT?[10010]",
"event": "为培养阳刚之气,有关专家建议禁止男性坐着小便。",
"include": "EVT?[10009]",
"exclude": "EVT?[11495]"
},
"11496": {
"id": 11496,
"event": "越南宣布毒品合法化,因为可以给国家创造大量税收,提供大量工作岗位。",
"include": "EVT?[10009]",
"event": "全年所有影视作品的主角均是少数人群。",
"include": "EVT?[10011]",
"exclude": "EVT?[11496]"
},
"11497": {
"id": 11497,
"event": "外星舰队造访,观看东京奥运会开幕式后连夜逃离地球。",
"exclude": "EVT?[11497,11476,11491]"
"event": "电商平台设立2.29购物节。至此终于全年366天全部都是购物节。",
"exclude": "EVT?[11497]"
},
"11498": {
"id": 11498,
"event": "日本大量居民因核废水变异,为防止病毒传播美国向日本抛下两颗原子弹。",
"event": "英国将汉语设为必修课程。",
"include": "EVT?[10009]",
"exclude": "EVT?[11476,11498]"
"exclude": "EVT?[11498]"
},
"11499": {
"id": 11499,
@@ -11333,25 +11310,71 @@
},
"11500": {
"id": 11500,
"event": "路过空地,被打羽毛球的大妈一记旋风扣杀打晕了过去。",
"event": "你感觉世界日新月异,各种大事不断发生,但好像又都与你的生活无关。",
"effect": {
"STR": -1
"SPR": -1
},
"include": "(EVT?[10010])&(STR<4)",
"exclude": "EVT?[11500]"
"include": "MNY<4",
"exclude": "EVT?[11500,11501]"
},
"11501": {
"id": 11501,
"event": "国家降低游戏版号限制,太爷爷生前在等的游戏终于发售了。",
"include": "(EVT?[10010])&(MNY>4)",
"exclude": "EVT?[11501]"
"event": "你感觉世界日新月异,对未来无限可能的那份好奇支持着你继续活下去。",
"effect": {
"SPR": 1
},
"include": "SPR<4",
"exclude": "EVT?[11500,11501]"
},
"11502": {
"id": 11502,
"event": "为防范星际入侵和核事故带来的变异生物,几大国牵头成立地球和平联合组织。",
"event": "山东省宣布本省男性平均身高达到1米8。\r\n各大社交平台上所在地标注为山东省的男性账户数量激增。",
"include": "EVT?[10010]",
"exclude": "EVT?[11502]"
},
"11503": {
"id": 11503,
"event": "We were no strangers to love\r\nYou know the rules and so do I\r\nA full commitments what I'm thinking of\r\nYou wouldn't get this from any other guy\r\nI just wanna tell you how I'm feeling\r\nGotta make you understand\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nWe've know each other for so long\r\nYour hearts been aching\r\nBut you're too shy to say it\r\nInside we both know what's been going on\r\nWe know the game and were gonna play it\r\nAnd if you ask me how I'm feeling\r\nDon't tell me youre too blind to see\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nGive you up. give you up\r\nGive you up, give you up\r\nNever gonna give\r\nNever gonna give give you up\r\nNever gonna give\r\nNever gonna give give you up\r\nWe've know each other for so long\r\nYour hearts been aching\r\nBut you're too shy to say it\r\nInside we both know what's been going on\r\nWe know the game and were gonna play it\r\nI just wanna tell you how I'm feeling\r\nGotta make you understand\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you\r\nNever gonna give you up\r\nNever gonna let you down\r\nNever gonna run around and desert you\r\nNever gonna make you cry\r\nNever gonna say goodbye\r\nNever gonna tell a lie and hurt you",
"effect": {
"LIF": -1
},
"include": "TLT?[2036]"
},
"11504": {
"id": 11504,
"event": "因为得过诺贝尔奖,你被复活了。",
"grade": 3,
"effect": {
"LIF": 1
},
"NoRandom": 1
},
"20000": {
"id": 20000,
"event": "天赋卡【死者苏生】发动,你被复活了。",
"grade": 3,
"effect": {
"LIF": 1
},
"NoRandom": 1
},
"20001": {
"id": 20001,
"event": "因为和恶魔进行过交易,你复活了。",
"grade": 3,
"effect": {
"LIF": 1
},
"NoRandom": 1
},
"20002": {
"id": 20002,
"event": "你在睡梦中安然离世。",
"include": "EVT?[10000]",
"branch": [
"EVT?[10000]:10000"
]
},
"20007": {
"id": 20007,
"event": "你喜欢看画面人设好看的动漫。",
@@ -11702,6 +11725,69 @@
},
"NoRandom": 1
},
"20361": {
"id": 20361,
"event": "截杀者发现你比他还穷,直呼晦气,放了你一马。",
"NoRandom": 1
},
"20362": {
"id": 20362,
"event": "截杀者被你反杀。得到大量宝物,体质提升。",
"grade": 1,
"effect": {
"STR": 50
},
"NoRandom": 1
},
"20363": {
"id": 20363,
"event": "你在拍卖行外遭到了截杀。",
"NoRandom": 1,
"branch": [
"STR>500:20362",
"EVT?[20364]:20361",
"TLT?[1048]:10000"
]
},
"20364": {
"id": 20364,
"event": "你太穷了,什么也没拍到。",
"effect": {
"SPR": -1
},
"NoRandom": 1,
"branch": [
"CHR<3:20363"
]
},
"20365": {
"id": 20365,
"event": "你拍到了一篇功法。体质和智力提升。",
"grade": 1,
"effect": {
"INT": 10,
"STR": 10,
"MNY": -5
},
"NoRandom": 1,
"branch": [
"CHR<3:20363"
]
},
"20366": {
"id": 20366,
"event": "其他人不认识上古奇物,被你低价拍到。\r\n体质和快乐大幅提升。",
"grade": 2,
"effect": {
"STR": 100,
"MNY": -1,
"SPR": 5
},
"NoRandom": 1,
"branch": [
"CHR<3:20363"
]
},
"20367": {
"id": 20367,
"event": "你悟出了一条天道!",
@@ -11840,26 +11926,11 @@
},
"NoRandom": 1
},
"20415": {
"id": 20415,
"event": "你无语,你当年怎么没这么好的事儿。",
"NoRandom": 1
},
"20417": {
"id": 20417,
"event": "你寻思这也不是很难啊。",
"NoRandom": 1
},
"20418": {
"id": 20418,
"event": "你压根儿不知道塔利班和华盛顿是啥东西。",
"NoRandom": 1
},
"20419": {
"id": 20419,
"event": "你压根儿不知道本·拉登是啥东西。",
"NoRandom": 1
},
"20421": {
"id": 20421,
"event": "然后被你斥巨资购买了。",
@@ -11875,17 +11946,7 @@
},
"20423": {
"id": 20423,
"event": "有知情人告诉你不是交通事故,好像是一个在天上飞的人……",
"NoRandom": 1
},
"20425": {
"id": 20425,
"event": "你意识到这场地震并不寻常……",
"NoRandom": 1
},
"20426": {
"id": 20426,
"event": "但据你所知,并没有出动军队和武器,好像只派了少量的“人”?",
"event": "有知情人告诉你不是交通事故,好像是一个在天上飞的人造成的……",
"NoRandom": 1
},
"20431": {
@@ -11893,16 +11954,6 @@
"event": "你认为这是虚假消息。",
"NoRandom": 1
},
"20432": {
"id": 20432,
"event": "你试着玩了玩并且充了点钱,啥好角色都抽不到。",
"NoRandom": 1
},
"20433": {
"id": 20433,
"event": "还好你不玩网易游戏。",
"NoRandom": 1
},
"20436": {
"id": 20436,
"event": "笑死,一个都不生。",
@@ -11913,14 +11964,6 @@
"event": "你终于可以呼吸到新鲜空气了。",
"NoRandom": 1
},
"20439": {
"id": 20439,
"event": "据说他们没有使用飞机、舰船和炮弹。",
"NoRandom": 1,
"branch": [
"(CHR>8)&(STR>8):20439"
]
},
"20443": {
"id": 20443,
"event": "但你家还是很穷,而且也不算幸福。",
@@ -11931,16 +11974,6 @@
"event": "但你家还是很穷。",
"NoRandom": 1
},
"20448": {
"id": 20448,
"event": "你感觉太离谱了。",
"NoRandom": 1
},
"20452": {
"id": 20452,
"event": "可恶的天龙人。",
"NoRandom": 1
},
"20453": {
"id": 20453,
"event": "你感觉又有乐子了。",
@@ -12118,7 +12151,7 @@
},
"20770": {
"id": 20770,
"event": "【绝密消息】更新皮肤后很卡尤其是ios我自己都经常打不开这网页……",
"event": "【绝密消息】更新后第一次可能加载会比较慢。",
"grade": 2,
"include": "TLT?[1112]",
"exclude": "EVT?[20770]"

View File

@@ -16,7 +16,7 @@
"name": "生而为男",
"description": "性别一定为男",
"grade": 1,
"exclusive": [
"exclude": [
"1004",
"1025",
"1024"
@@ -27,7 +27,7 @@
"name": "生而为女",
"description": "性别一定为女",
"grade": 1,
"exclusive": [
"exclude": [
"1003",
"1024",
"1025"
@@ -81,7 +81,7 @@
"effect": {
"MNY": 1
},
"exclusive": [
"exclude": [
"1012",
"1013",
"1014"
@@ -98,7 +98,7 @@
"name": "乡间微风",
"description": "你出生在农村",
"grade": 0,
"exclusive": [
"exclude": [
"1010",
"1013",
"1014"
@@ -109,7 +109,7 @@
"name": "城中高楼",
"description": "你出生在城市",
"grade": 0,
"exclusive": [
"exclude": [
"1010",
"1012",
"1014"
@@ -123,7 +123,7 @@
"effect": {
"MNY": 1
},
"exclusive": [
"exclude": [
"1010",
"1012",
"1013"
@@ -210,7 +210,7 @@
"name": "人中龙凤",
"description": "天生双重性别",
"grade": 2,
"exclusive": [
"exclude": [
"1003",
"1004",
"1025"
@@ -221,7 +221,7 @@
"name": "阴阳之外",
"description": "天生无性别",
"grade": 2,
"exclusive": [
"exclude": [
"1003",
"1024",
"1004",
@@ -233,7 +233,7 @@
"name": "彩虹之下",
"description": "可能和同性交往",
"grade": 0,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -242,7 +242,7 @@
"name": "斩情证道",
"description": "终生不恋爱结婚",
"grade": 1,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -351,7 +351,7 @@
"name": "丁克",
"description": "不生孩子",
"grade": 1,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -384,7 +384,7 @@
"name": "不孕不育",
"description": "你生不出孩子",
"grade": 1,
"exclusive": [
"exclude": [
"1113"
]
},
@@ -747,7 +747,7 @@
"effect": {
"SPR": 2
},
"exclusive": [
"exclude": [
"1122"
]
},
@@ -760,7 +760,7 @@
"effect": {
"SPR": 5
},
"exclusive": [
"exclude": [
"1122"
]
},
@@ -770,7 +770,7 @@
"description": "初始可用点-10",
"grade": 0,
"status": -10,
"exclusive": [
"exclude": [
"1122"
]
},
@@ -979,7 +979,7 @@
"1105": {
"id": "1105",
"name": "蓝色胶囊",
"description": "你2030岁时无事发生",
"description": "你20岁或30岁时无事发生",
"condition": "AGE?[20]",
"grade": 1
},
@@ -1030,7 +1030,7 @@
"name": "三胎人生",
"description": "你尽可能生三胎",
"grade": 1,
"exclusive": [
"exclude": [
"1003",
"1025",
"1026",
@@ -1094,7 +1094,7 @@
"description": "赶着投胎,不要初始属性了",
"grade": 1,
"status": -20,
"exclusive": [
"exclude": [
"1084",
"1085",
"1086"
@@ -1120,7 +1120,7 @@
},
"1126": {
"id": "1126",
"name": "黄帝",
"name": "偏见",
"description": "种族主义者",
"grade": 0
},
@@ -1247,7 +1247,7 @@
1
]
},
"exclusive": [
"exclude": [
"1012",
"1013",
"1014",
@@ -1268,7 +1268,7 @@
2
]
},
"exclusive": [
"exclude": [
"1012",
"1013",
"1014",
@@ -1328,8 +1328,490 @@
"1114*0.2",
"1023*0.2",
"1048*0.2",
"1033*5"
"1033*5",
"1147*0.2"
]
}
},
"1147": {
"id": 1147,
"name": "死者苏生",
"description": "加一条命",
"grade": 3
},
"1148": {
"id": 1148,
"name": "恶魔的交易",
"description": "所有属性-2加一条命",
"grade": 2,
"effect": {
"SPR": -2,
"MNY": -2,
"CHR": -2,
"STR": -2,
"INT": -2
}
},
"2001": {
"id": 2001,
"name": "霸王",
"description": "体质+4",
"grade": 2,
"exclusive": 1,
"effect": {
"STR": 4
}
},
"2002": {
"id": 2002,
"name": "国色",
"description": "颜值+4",
"grade": 2,
"exclusive": 1,
"effect": {
"CHR": 4
}
},
"2003": {
"id": 2003,
"name": "兼爱",
"description": "你很受",
"grade": 0,
"exclusive": 1
},
"2004": {
"id": 2004,
"name": "树人",
"description": "你还有别的名字",
"grade": 0,
"exclusive": 1
},
"2005": {
"id": 2005,
"name": "圆周率",
"description": 3.1415926,
"grade": 0,
"exclusive": 1
},
"2006": {
"id": 2006,
"name": "",
"description": "",
"grade": 1,
"exclusive": 1,
"replacement": {
"grade": [
2
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2007": {
"id": 2007,
"name": "",
"description": "",
"condition": "STR<0",
"grade": 0,
"exclusive": 1,
"effect": {
"SPR": 1,
"MNY": 1,
"CHR": 1,
"INT": 1
}
},
"2008": {
"id": 2008,
"name": "",
"description": "",
"condition": "(SPR>5)&(MNY>5)&(CHR>5)&(STR>5)&(INT>5)",
"grade": 0,
"exclusive": 1,
"effect": {
"SPR": 1,
"MNY": 1,
"CHR": 1,
"STR": 1,
"INT": 1
}
},
"2009": {
"id": 2009,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2010": {
"id": 2010,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2011": {
"id": 2011,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2012": {
"id": 2012,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2013": {
"id": 2013,
"name": "白色转盘",
"description": "变成随机白色天赋",
"grade": 0,
"exclusive": 1,
"replacement": {
"grade": [
0
]
},
"exclude": [
"1012",
"1013",
"1014",
1110,
1003,
1004,
1124,
1125
]
},
"2014": {
"id": 2014,
"name": "连续可导",
"description": "你没有其他人格",
"grade": 0,
"exclusive": 1
},
"2015": {
"id": 2015,
"name": "绝妙的天赋",
"description": "可惜这里写不下",
"grade": 3,
"exclusive": 1,
"status": 1,
"effect": {
"SPR": 5,
"MNY": 1,
"CHR": 1,
"STR": 2,
"INT": 1,
"RDM": 1
}
},
"2016": {
"id": 2016,
"name": "叠加态",
"description": "变成橙色天赋或死",
"grade": 2,
"exclusive": 1,
"replacement": {
"talent": [
1141,
1135,
1114,
1023,
1048,
"1033*6",
1147
]
}
},
"2017": {
"id": 2017,
"name": "木大",
"description": "遗言很有名",
"grade": 0,
"exclusive": 1
},
"2018": {
"id": 2018,
"name": "高产",
"description": "60岁时体质-2",
"condition": "AGE?[10]",
"grade": 0,
"exclusive": 1,
"effect": {
"STR": -2
}
},
"2019": {
"id": 2019,
"name": "杠杆",
"description": "理财天赋较高",
"condition": "AGE?[20]",
"grade": 1,
"exclusive": 1,
"effect": {
"MNY": 3
}
},
"2020": {
"id": 2020,
"name": "物理",
"description": "30岁时颜值-2",
"condition": "AGE?[30]",
"grade": 0,
"exclusive": 1,
"effect": {
"CHR": -2
}
},
"2021": {
"id": 2021,
"name": "阳间福袋",
"description": "更可能开出好天赋",
"grade": 2,
"exclusive": 1,
"replacement": {
"talent": [
"1142",
"1139",
"1140",
"1141",
"1128",
"1131",
"1104",
"1048",
"1134",
"1135",
"1107",
"1080",
"1065",
"1148"
]
}
},
"2022": {
"id": 2022,
"name": "洞穴寓言",
"description": "可能发现世界的真相",
"grade": 1,
"exclusive": 1
},
"2023": {
"id": 2023,
"name": "天赋综合判断",
"description": "天赋不能多于5个",
"grade": 0,
"exclusive": 1
},
"2024": {
"id": 2024,
"name": "诺贝尔奖",
"description": "得过诺贝尔奖可复活一次",
"grade": 2,
"exclusive": 1
},
"2025": {
"id": 2025,
"name": "二号橙色转盘",
"description": "变成随机橙色天赋",
"grade": 2,
"exclusive": 1,
"replacement": {
"grade": [
3
]
}
},
"2026": {
"id": 2026,
"name": "流芳",
"description": "有悲剧时,所有属性+1",
"condition": "TLT?[2028,2029,2030,2031]",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 1,
"MNY": 1,
"CHR": 1,
"STR": 1,
"INT": 1
}
},
"2027": {
"id": 2027,
"name": "百世",
"description": "随机抽一部剧",
"grade": 1,
"exclusive": 1,
"replacement": {
"talent": [
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035
]
}
},
"2028": {
"id": 2028,
"name": "哈姆雷特",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2029": {
"id": 2029,
"name": "李尔王",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2030": {
"id": 2030,
"name": "麦克白",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2031": {
"id": 2031,
"name": "奥赛罗",
"description": "快乐-2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": -2
}
},
"2032": {
"id": 2032,
"name": "仲夏夜之梦",
"description": "快乐+114509",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 114509
}
},
"2033": {
"id": 2033,
"name": "威尼斯商人",
"description": "快乐+2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 2
}
},
"2034": {
"id": 2034,
"name": "第十二夜",
"description": "快乐+2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 2
}
},
"2035": {
"id": 2035,
"name": "皆大欢喜",
"description": "快乐+2",
"grade": 1,
"exclusive": 1,
"effect": {
"SPR": 2
}
},
"2036": {
"id": 2036,
"name": "永不言弃",
"description": "你永远不会放弃",
"grade": 2,
"exclusive": 1
}
}

View File

@@ -54,7 +54,7 @@
<!--包含更多webgl滤镜比如外发光阴影模糊以及更多-->
<script type="text/javascript" src="libs/laya/laya.filter.js"></script>
<!--封装了html动态排版功能-->
<!-- <script type="text/javascript" src="libs/laya/laya.html.js"></script> -->
<script type="text/javascript" src="libs/laya/laya.html.js"></script>
<!--粒子类库-->
<script type="text/javascript" src="libs/laya/laya.particle.js"></script>
<!--提供tileMap解析支持-->

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta name="description" content="やり直すんだ。そして、次はうまくやる。"/><meta name="keywords" content="人生重开模拟器 liferestart life restart remake 人生重来"/><meta name="renderer" content="webkit"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="full-screen" content="true"/><meta name="x5-fullscreen" content="true"/><meta name="360-fullscreen" content="true"/><meta name="theme-color" content="#157878"/><meta name="laya" screenorientation="landscape"/><meta http-equiv="expires" content="0"/><meta http-equiv="Cache-Control" content="no-siteapp"/><title>Life Restart</title><script src="libs/laya/min/laya.core.min.js"></script><script src="libs/laya/min/laya.webgl.min.js"></script><script src="libs/laya/min/laya.filter.min.js"></script><script src="libs/laya/min/laya.particle.min.js"></script><script src="libs/laya/min/laya.ui.min.js"></script><script defer="defer" src="chunk/main.a3242.js"></script></head><body style="background:black"></body></html>
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><meta name="description" content="やり直すんだ。そして、次はうまくやる。"/><meta name="keywords" content="人生重开模拟器 liferestart life restart remake 人生重来"/><meta name="renderer" content="webkit"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="full-screen" content="true"/><meta name="x5-fullscreen" content="true"/><meta name="360-fullscreen" content="true"/><meta name="theme-color" content="#157878"/><meta name="laya" screenorientation="landscape"/><meta http-equiv="expires" content="0"/><meta http-equiv="Cache-Control" content="no-siteapp"/><title>Life Restart</title><script src="libs/laya/min/laya.core.min.js"></script><script src="libs/laya/min/laya.webgl.min.js"></script><script src="libs/laya/min/laya.filter.min.js"></script><script src="libs/laya/min/laya.particle.min.js"></script><script src="libs/laya/min/laya.ui.min.js"></script><script defer="defer" src="chunk/main.76985.js"></script></head><body style="background:black"></body></html>

View File

@@ -365,7 +365,7 @@ class App {
if(this.#talentSelected.size == 3)
return warn('你只能选3个天赋。请使用 \x1B[4m/unselect\x1B[24m 取消选择你不想要的天赋');
const exclusive = this.#life.exclusive(
const exclusive = this.#life.exclude(
Array.from(this.#talentSelected).map(({id})=>id),
s.id
);

View File

@@ -1,3 +1,4 @@
import './ui/laya.patch.js';
import './ui/runtime.js';
import './ui/pluginFunction.js'
import './ui/promisesLaya.js'
@@ -159,11 +160,7 @@ class App{
globalThis.$ui = UIManager.getInstance();
if(theme=='default') {
if(!localStorage.getItem('__')) {
localStorage.setItem('__', 1);
localStorage.setItem('theme', 'cyber');
}
theme = localStorage.getItem('theme');
theme = localStorage.getItem('theme') || 'default';
}
$ui.theme = theme;

0
src/functions/unique.js Normal file
View File

View File

@@ -27,7 +27,7 @@ export default ({
UI_Title_Remake: 'Remake Simulate',
UI_Title_Subsequent: 'The rubbish life doesn\'t want to stay for a second',
UI_Remake: 'Remake Now',
UI_Remake: 'Remake Now',
UI_Thanks: 'Thx',
UI_Achievement: 'Achv',
UI_Cyber_Theme_Art_Design: 'UI Design by 晰晰',
@@ -125,17 +125,31 @@ export default ({
UI_Write: 'Paste',
UI_CopySuccess: 'Copy to clipboard success',
UI_CopyFaild: 'Copy to clipboard faild',
UI_CopyFailed: 'Copy to clipboard Failed',
UI_PasteSuccessDecodeSuccess: 'Load Success!',
UI_PasteSuccessDecodeFaild: 'Paste success, but load faild!',
UI_PasteFaildDecodeSuccess: 'Paste faild, use input load success!',
UI_PasteFaildDecodeFaild: 'Paste faild, use input load faild!',
UI_PasteSuccessDecodeFailed: 'Paste success, but load Failed!',
UI_PasteFailedDecodeSuccess: 'Paste Failed, use input load success!',
UI_PasteFailedDecodeFailed: 'Paste Failed, use input load Failed!',
UI_LoadSuccess: 'Load Success!',
UI_LoadFaild: 'Load Faild!',
UI_LoadFailed: 'Load Failed!',
UI_Title_Celebrity: 'Past life was...',
UI_CustomMode: 'Custom',
UI_CustomModeDescription: '10 Talent\nCustom property',
UI_CelebrityMode: 'Celebrity',
UI_CelebrityModeDescription: 'Past life is celebrity\nRebirth to modern',
UI_AllNot: '↻All Not',
UI_UniqueWaTaShi: 'Unique of mine',
UI_UniqueWaTaShiContent: '\nUnique character card different from other 60 million player\nAll property, All talent, All random\nAll has only one chance',
UI_GenerateNow: 'Generate Now',
M_NoRank: 'There is no rank',
M_PleaseSelectOne: 'Please Select One',
M_UnGenerate: 'Unique Character no generate',
M_DisableExtendTalent: 'Celebrity mode can\'t extends talent',
F_RemakeTimes: 'Remake {0} Times',
F_AchievementCount: 'Achievement {0}',
@@ -145,4 +159,5 @@ export default ({
F_TalentSelectNotComplect: 'Please select {0} talent',
F_PropertyPointLeft: 'You have left {0} property point',
F_TalentReplace: 'Talent replace [{source.name}] -> [{target.name}]',
F_PropertyStr: 'CHR{CHR} INT{INT} STR{STR} MNY{MNY}'
});

View File

@@ -15,6 +15,8 @@ export default ({
UI_Loading: '加载中...',
UI_Error: '错误',
UI_BackupBtn: '上面没有效果就试试这个吧',
UI_Colon: '',
UI_Times: '次',
UI_Count: '个',
@@ -27,7 +29,7 @@ export default ({
UI_Title_Remake: '人生重开模拟器',
UI_Title_Subsequent: '这垃圾人生一秒也不想待了',
UI_Remake: '立即重开',
UI_Remake: '立即重开',
UI_Thanks: '感谢',
UI_Achievement: '成就',
UI_Cyber_Theme_Art_Design: 'UI 设计 by 晰晰',
@@ -125,17 +127,30 @@ export default ({
UI_Write: '粘贴',
UI_LoadSuccess: '读档成功!',
UI_LoadFaild: '读档失败!',
UI_LoadFailed: '读档失败!',
UI_CopySuccess: '成功复制存档到剪贴板',
UI_CopyFaild: '复制存档到剪贴板失败,请手动复制存档内容',
UI_CopyFailed: '复制存档到剪贴板失败,请手动复制存档内容',
UI_PasteSuccessDecodeSuccess: '读档成功!',
UI_PasteSuccessDecodeFaild: '粘贴剪贴板存档内容成功,但剪贴板内容读档失败',
UI_PasteFaildDecodeSuccess: '粘贴剪贴板存档内容失败,使用输入的内容读档成功',
UI_PasteFaildDecodeFaild: '粘贴剪贴板存档内容失败,使用输入的内容读档失败',
UI_PasteSuccessDecodeFailed: '粘贴剪贴板存档内容成功,但剪贴板内容读档失败',
UI_PasteFailedDecodeSuccess: '粘贴剪贴板存档内容失败,使用输入的内容读档成功',
UI_PasteFailedDecodeFailed: '粘贴剪贴板存档内容失败,使用输入的内容读档失败',
UI_Title_Celebrity: '你的前世是...',
UI_CustomMode: '经典模式',
UI_CustomModeDescription: '10连抽天赋\n自由分配属性',
UI_CelebrityMode: '名人模式',
UI_CelebrityModeDescription: '前世是古代名人\n重开到了现代',
UI_AllNot: '↻都不是',
UI_UniqueWaTaShi: '独一无二的我',
UI_UniqueWaTaShiContent: '\n6000万玩家中独一无二的角色卡\n所有属性 所有天赋 随机生成\n 每人只能生成一次',
UI_GenerateNow: '立即生成',
M_NoRank: '别卷了,没有排行榜',
M_PleaseSelectOne: '请选择一个名人',
M_UnGenerate: '独一无二的我还没有生成',
M_DisableExtendTalent: '名人模式不能继承天赋',
F_RemakeTimes: '已重开{0}次',
F_AchievementCount: '成就达成{0}个',
@@ -145,4 +160,5 @@ export default ({
F_TalentSelectNotComplect: '要选满{0}个天赋',
F_PropertyPointLeft: '你还有 {0} 属性点没有分配完',
F_TalentReplace: '天赋替换【{source.name}】->【{target.name}】',
F_PropertyStr: '颜值{CHR} 智力{INT} 体质{STR} 家境{MNY}'
});

View File

@@ -196,5 +196,29 @@ core.config({
],
},
},
characterConfig: { // config for character
characterPullCount: 3,
rateableKnife: 10,
propertyWeight: [
[ 0, 1],
[ 1, 2],
[ 2, 3],
[ 3, 4],
[ 4, 5],
[ 5, 6],
[ 6, 5],
[ 7, 4],
[ 8, 3],
[ 9, 2],
[10, 1],
],
talentWeight: [
[ 1, 1],
[ 2, 2],
[ 3, 3],
[ 4, 2],
[ 5, 1],
],
},
});
game.start(query);

View File

@@ -1,8 +1,7 @@
import { clone } from '../functions/util.js';
import { checkCondition } from '../functions/condition.js';
class Achievement {
constructor() {}
constructor(system) {
this.#system = system;
}
// 时机
Opportunity = {
@@ -12,6 +11,7 @@ class Achievement {
END: "END", // 游戏完成,点击重开 重开次数在这之后才会+1
};
#system;
#achievements;
initial({achievements}) {
@@ -23,7 +23,11 @@ class Achievement {
return Object.keys(this.#achievements).length;
}
list(property) {
get #prop() {
return this.#system.request(this.#system.Module.PROPERTY);
}
list() {
return Object
.values(this.#achievements)
.map(({
@@ -32,34 +36,34 @@ class Achievement {
})=>({
id, name, opportunity,
description, hide, grade,
isAchieved: this.isAchieved(id, property),
isAchieved: this.isAchieved(id, this.#prop),
}));
}
get(achievementId) {
const achievement = this.#achievements[achievementId];
if(!achievement) throw new Error(`[ERROR] No Achievement[${achievementId}]`);
return clone(achievement);
return this.#system.clone(achievement);
}
check(achievementId, property) {
check(achievementId) {
const { condition } = this.get(achievementId);
return checkCondition(property, condition);
return this.#system.check(condition);
}
isAchieved(achievementId, property) {
for(const [achieved] of (property.get(property.TYPES.ACHV)||[]))
isAchieved(achievementId) {
for(const [achieved] of (this.#prop.get(this.#prop.TYPES.ACHV)||[]))
if(achieved == achievementId) return true;
return false;
}
achieve(opportunity, property) {
this.list(property)
achieve(opportunity) {
this.list()
.filter(({isAchieved})=>!isAchieved)
.filter(({opportunity: o})=>o==opportunity)
.filter(({id})=>this.check(id, property))
.filter(({id})=>this.check(id, this.#prop))
.forEach(({id})=>{
property.achieve(property.TYPES.ACHV, id)
this.#prop.achieve(this.#prop.TYPES.ACHV, id)
$$event('achievement', this.get(id))
});
}

134
src/modules/character.js Normal file
View File

@@ -0,0 +1,134 @@
class Character {
constructor(system) {
this.#system = system;
}
#system;
#characters;
#characterPullCount;
#rateableKnife;
#rate;
#pipe = [];
#uniqueWaTaShi;
#propertyWeight;
#talentWeight
initial({characters}) {
this.#characters = characters;
const uniqueWaTaShi = localStorage.getItem('uniqueWaTaShi');
if(uniqueWaTaShi != null || uniqueWaTaShi != 'undefined')
this.#uniqueWaTaShi = JSON.parse(uniqueWaTaShi);
return this.count;
}
get count() {
return Object.keys(this.#characters).length;
}
config({
characterPullCount = 3,
rateableKnife = 10,
propertyWeight,
talentWeight,
} = {}) {
this.#characterPullCount = characterPullCount;
this.#rateableKnife = rateableKnife;
this.#propertyWeight = propertyWeight;
this.#talentWeight = talentWeight;
}
get #unique() {
if(this.#uniqueWaTaShi) {
return this.#system.clone(this.#uniqueWaTaShi);
}
const now = Date.now();
this.#pipe.push(now);
if(this.#pipe.length < 10) return null;
const time = this.#pipe.shift();
if(now - time > 10000) return null;
return {unique: true, generate: false};
}
set #unique(data) {
this.#uniqueWaTaShi = this.#system.clone(data);
this.#uniqueWaTaShi.unique = true;
this.#uniqueWaTaShi.generate = true;
localStorage.setItem(
'uniqueWaTaShi',
JSON.stringify(this.#uniqueWaTaShi)
);
}
get #weightRandom() {
return this.#system.function(this.#system.Function.UTIL).weightRandom;
}
generateUnique() {
if(this.#uniqueWaTaShi) return this.#unique;
const weightRandom = this.#weightRandom;
const {CHR, INT, STR, MNY} = this.#system.PropertyTypes;
this.#unique = {
property: {
[CHR]: weightRandom(this.#propertyWeight),
[INT]: weightRandom(this.#propertyWeight),
[STR]: weightRandom(this.#propertyWeight),
[MNY]: weightRandom(this.#propertyWeight),
},
talent: this.#system
.request(this.#system.Module.TALENT)
.random(weightRandom(this.#talentWeight)),
}
return this.#unique;
}
random() {
return {
unique: this.#unique,
normal: this.#rateable(),
}
}
#rateable() {
if(!this.#rate) {
this.#rate = {};
for(const id in this.#characters) {
this.#rate[id] = 1;
}
}
const r = [];
const weightRandom = this.#weightRandom;
new Array(this.#characterPullCount)
.fill(0)
.forEach(()=>{
r.push(
weightRandom(Object
.keys(this.#rate)
.filter(id=>!r.includes(id))
.map(id=>([id,this.#rate[id]]))
)
)
});
let min = Infinity;
for(const id in this.#rate) {
if(r.includes(id)) {
min = Math.min(min, this.#rate[id]);
continue;
}
min = Math.min(min, ++ this.#rate[id]);
}
if(min > this.#rateableKnife) {
for(const id in this.#rate) {
this.#rate[id] -= this.#rateableKnife;
}
}
return r.map(id=>this.#system.clone(this.#characters[id]));
}
}
export default Character;

View File

@@ -1,9 +1,9 @@
import { clone } from '../functions/util.js';
import { checkCondition } from '../functions/condition.js';
class Event {
constructor() {}
constructor(system) {
this.#system = system;
}
#system;
#events;
initial({events}) {
@@ -24,18 +24,18 @@ class Event {
return Object.keys(this.#events).length;
}
check(eventId, property) {
check(eventId) {
const { include, exclude, NoRandom } = this.get(eventId);
if(NoRandom) return false;
if(exclude && checkCondition(property, exclude)) return false;
if(include) return checkCondition(property, include);
if(exclude && this.#system.check(exclude)) return false;
if(include) return this.#system.check(include);
return true;
}
get(eventId) {
const event = this.#events[eventId];
if(!event) throw new Error(`[ERROR] No Event[${eventId}]`);
return clone(event);
return this.#system.clone(event);
}
information(eventId) {
@@ -43,11 +43,11 @@ class Event {
return { description };
}
do(eventId, property) {
do(eventId) {
const { effect, branch, event: description, postEvent, grade } = this.get(eventId);
if(branch)
for(const [cond, next] of branch)
if(checkCondition(property, cond))
if(this.#system.check(cond))
return { effect, next, description, grade };
return { effect, postEvent, description, grade };
}

View File

@@ -1,21 +1,39 @@
import { clone, weightRandom, getListValuesMap, getConvertedMap } from '../functions/util.js'
import * as util from '../functions/util.js';
import * as fCondition from '../functions/condition.js';
import Property from './property.js';
import Event from './event.js';
import Talent from './talent.js';
import Achievement from './achievement.js';
import Character from './character.js';
class Life {
constructor() {
this.#property = new Property();
this.#event = new Event();
this.#talent = new Talent();
this.#achievement = new Achievement();
this.#property = new Property(this);
this.#event = new Event(this);
this.#talent = new Talent(this);
this.#achievement = new Achievement(this);
this.#character = new Character(this);
}
Module = {
PROPERTY: 'PROPERTY',
TALENT: 'TALENT',
EVENT: 'EVENT',
ACHIEVEMENT: 'ACHIEVEMENT',
CHARACTER: 'CHARACTER',
}
Function = {
CONDITION: 'CONDITION',
UTIL: 'UTIL',
}
#property;
#event;
#talent;
#achievement;
#character;
#triggerTalents;
#defaultPropertyPoints;
#talentSelectLimit;
@@ -25,11 +43,12 @@ class Life {
#initialData;
async initial(i18nLoad, commonLoad) {
const [age, talents, events, achievements, specialThanks] = await Promise.all([
const [age, talents, events, achievements, characters, specialThanks] = await Promise.all([
i18nLoad('age'),
i18nLoad('talents'),
i18nLoad('events'),
i18nLoad('achievement'),
i18nLoad('character'),
commonLoad('specialthanks'),
]);
this.#specialThanks = specialThanks;
@@ -39,8 +58,8 @@ class Life {
[this.PropertyTypes.TEVT]: this.#event.initial({events}),
[this.PropertyTypes.TTLT]: this.#talent.initial({talents}),
};
this.#property.initial({age, total});
this.#character.initial({characters});
}
config({
@@ -50,6 +69,7 @@ class Life {
defaultPropertys = {}, // default propertys
talentConfig, // config for talent
propertyConfig, // config for property
characterConfig, // config for character
} = {}) {
this.#defaultPropertyPoints = defaultPropertyPoints;
this.#talentSelectLimit = talentSelectLimit;
@@ -57,26 +77,50 @@ class Life {
this.#defaultPropertys = defaultPropertys;
this.#talent.config(talentConfig);
this.#property.config(propertyConfig);
this.#character.config(characterConfig);
}
request(module) {
switch (module) {
case this.Module.ACHIEVEMENT: return this.#achievement;
case this.Module.CHARACTER: return this.#character;
case this.Module.EVENT: return this.#event;
case this.Module.PROPERTY: return this.#property;
case this.Module.TALENT: return this.#talent;
default: return null;
}
}
function(type) {
switch (type) {
case this.Function.CONDITION: return fCondition;
case this.Function.UTIL: return util;
}
}
check(condition) {
return fCondition.checkCondition(this.#property,condition);
}
clone(...args) {
return util.clone(...args);
}
remake(talents) {
this.#initialData = clone(this.#defaultPropertys);
this.#initialData.TLT = clone(talents);
this.#initialData = util.clone(this.#defaultPropertys);
this.#initialData.TLT = util.clone(talents);
this.#triggerTalents = {};
return this.talentReplace(this.#initialData.TLT);
}
start(allocation) {
for(const key in allocation) {
this.#initialData[key] = clone(allocation[key]);
this.#initialData[key] = util.clone(allocation[key]);
}
this.#property.restart(this.#initialData);
this.doTalent()
this.#property.restartLastStep();
this.#achievement.achieve(
this.AchievementOpportunity.START,
this.#property
);
this.#achievement.achieve(this.AchievementOpportunity.START);
}
getPropertyPoints() {
@@ -96,10 +140,7 @@ class Life {
const isEnd = this.#property.isEnd();
const content = [talentContent, eventContent].flat();
this.#achievement.achieve(
this.AchievementOpportunity.TRAJECTORY,
this.#property
)
this.#achievement.achieve(this.AchievementOpportunity.TRAJECTORY);
return { age, content, isEnd };
}
@@ -125,7 +166,7 @@ class Life {
const contents = [];
for(const talentId of talents) {
const result = this.#talent.do(talentId, this.#property);
const result = this.#talent.do(talentId);
if(!result) continue;
this.#triggerTalents[talentId] = this.getTalentCurrentTriggerCount(talentId) + 1;
const { effect, name, description, grade } = result;
@@ -142,7 +183,7 @@ class Life {
}
doEvent(eventId) {
const { effect, next, description, postEvent, grade } = this.#event.do(eventId, this.#property);
const { effect, next, description, postEvent, grade } = this.#event.do(eventId);
this.#property.change(this.PropertyTypes.EVT, eventId);
this.#property.effect(effect);
const content = {
@@ -156,7 +197,7 @@ class Life {
}
random(events) {
return weightRandom(
return util.weightRandom(
events.filter(
([eventId])=>this.#event.check(eventId, this.#property)
)
@@ -173,20 +214,35 @@ class Life {
);
}
characterRandom() {
const characters = this.#character.random();
const replaceTalent = v=>v.talent=v.talent.map(
id=>this.#talent.get(id)
);
characters.normal.forEach(replaceTalent);
if(characters.unique && characters.unique.talent)
replaceTalent(characters.unique);
return characters;
}
talentExtend(talentId) {
this.#property.set(this.PropertyTypes.EXT, talentId);
}
exclusive(talents, exclusive) {
return this.#talent.exclusive(talents, exclusive);
exclude(talents, exclusive) {
return this.#talent.exclude(talents, exclusive);
}
generateUnique() {
this.#character.generateUnique();
}
#getJudges(...types) {
return getListValuesMap(types.flat(), key => this.#property.judge(key));
return util.getListValuesMap(types.flat(), key => this.#property.judge(key));
}
#getPropertys(...types) {
return getListValuesMap(types.flat(), key => this.#property.get(key));
return util.getListValuesMap(types.flat(), key => this.#property.get(key));
}
get lastExtendTalent() {
@@ -194,10 +250,7 @@ class Life {
}
get summary() {
this.#achievement.achieve(
this.AchievementOpportunity.SUMMARY,
this.#property
)
this.#achievement.achieve(this.AchievementOpportunity.SUMMARY);
const pt = this.PropertyTypes;
@@ -243,16 +296,13 @@ class Life {
get PropertyTypes() { return this.#property.TYPES; }
get AchievementOpportunity() { return this.#achievement.Opportunity; }
get talentSelectLimit() { return this.#talentSelectLimit; }
get propertyAllocateLimit() { return clone(this.#propertyAllocateLimit); }
get propertyAllocateLimit() { return util.clone(this.#propertyAllocateLimit); }
get propertys() { return this.#property.getPropertys(); }
get times() { return this.#property.get(this.PropertyTypes.TMS) || 0; }
set times(v) {
this.#property.set(this.PropertyTypes.TMS, v);
this.#achievement.achieve(
this.AchievementOpportunity.END,
this.#property
)
this.#achievement.achieve(this.AchievementOpportunity.END);
}
get specialThanks() { return this.#specialThanks; }
}

View File

@@ -1,7 +1,7 @@
import { max, min, sum, clone, listRandom } from '../functions/util.js';
class Property {
constructor() {}
constructor(system) {
this.#system = system;
}
TYPES = {
// 本局
@@ -70,11 +70,16 @@ class Property {
]
}
#system;
#ageData;
#data = {};
#total;
#judge;
get #util() {
return this.#system.function(this.#system.Function.UTIL);
}
initial({age, total}) {
this.#ageData = age;
for(const a in age) {
@@ -151,6 +156,7 @@ class Property {
}
get(prop) {
const util = this.#util;
switch(prop) {
case this.TYPES.AGE:
case this.TYPES.CHR:
@@ -161,14 +167,14 @@ class Property {
case this.TYPES.LIF:
case this.TYPES.TLT:
case this.TYPES.EVT:
return clone(this.#data[prop]);
return util.clone(this.#data[prop]);
case this.TYPES.LAGE:
case this.TYPES.LCHR:
case this.TYPES.LINT:
case this.TYPES.LSTR:
case this.TYPES.LMNY:
case this.TYPES.LSPR:
return min(
return util.min(
this.#data[prop],
this.get(this.fallback(prop))
);
@@ -178,7 +184,7 @@ class Property {
case this.TYPES.HSTR:
case this.TYPES.HMNY:
case this.TYPES.HSPR:
return max(
return util.max(
this.#data[prop],
this.get(this.fallback(prop))
);
@@ -189,7 +195,7 @@ class Property {
const HSTR = this.get(this.TYPES.HSTR);
const HMNY = this.get(this.TYPES.HMNY);
const HSPR = this.get(this.TYPES.HSPR);
return Math.floor(sum(HCHR, HINT, HSTR, HMNY, HSPR)*2 + HAGE/2);
return Math.floor(util.sum(HCHR, HINT, HSTR, HMNY, HSPR)*2 + HAGE/2);
case this.TYPES.TMS:
return this.lsget('times') || 0;
case this.TYPES.EXT:
@@ -253,7 +259,7 @@ class Property {
case this.TYPES.LIF:
case this.TYPES.TLT:
case this.TYPES.EVT:
this.hl(prop, this.#data[prop] = clone(value));
this.hl(prop, this.#data[prop] = this.#system.clone(value));
this.achieve(prop, value);
return;
case this.TYPES.TMS:
@@ -267,7 +273,7 @@ class Property {
}
getPropertys() {
return clone({
return this.#system.clone({
[this.TYPES.AGE]: this.get(this.TYPES.AGE),
[this.TYPES.CHR]: this.get(this.TYPES.CHR),
[this.TYPES.INT]: this.get(this.TYPES.INT),
@@ -315,7 +321,8 @@ class Property {
hookSpecial(prop) {
switch(prop) {
case this.TYPES.RDM: return listRandom(this.SPECIAL.RDM);
case this.TYPES.RDM:
return this.#util.listRandom(this.SPECIAL.RDM);
default: return prop;
}
}
@@ -334,15 +341,6 @@ class Property {
const d = this.#judge[prop];
let length = d.length;
// progress judge
// const p = 1/length;
// const progress = () => {
// const min = d[length][0] || 0;
// const max = d[length+1]?.[0] || value;
// if(max == min) return 1;
// return p * (length + (value - min) / (max - min));
// }
const progress = () => Math.max(Math.min(value, 10), 0) / 10;
while(length--) {
@@ -363,7 +361,7 @@ class Property {
}
getAgeData(age) {
return clone(this.#ageData[age]);
return this.#system.clone(this.#ageData[age]);
}
hl(prop, value) {
@@ -378,8 +376,8 @@ class Property {
default: return;
}
const [l, h] = keys;
this.#data[l] = min(this.#data[l], value);
this.#data[h] = max(this.#data[h], value);
this.#data[l] = this.#util.min(this.#data[l], value);
this.#data[h] = this.#util.max(this.#data[h], value);
}
achieve(prop, newData) {
@@ -411,7 +409,7 @@ class Property {
lsget(key) {
const data = localStorage.getItem(key);
if(data === null) return;
if(data === null || data === 'undefined') return;
return JSON.parse(data);
}

View File

@@ -1,9 +1,9 @@
import { clone, weightRandom } from '../functions/util.js';
import { checkCondition, extractMaxTriggers } from '../functions/condition.js';
class Talent {
constructor() {}
constructor(system) {
this.#system = system;
}
#system;
#talents;
#talentPullCount;
#talentRate;
@@ -11,11 +11,12 @@ class Talent {
initial({talents}) {
this.#talents = talents;
const emt = this.#system.function(this.#system.Function.CONDITION).extractMaxTriggers;
for(const id in talents) {
const talent = talents[id];
talent.id= Number(id);
talent.grade = Number(talent.grade);
talent.max_triggers = extractMaxTriggers(talent.condition);
talent.max_triggers = emt(talent.condition);
if(talent.replacement) {
for(let key in talent.replacement) {
const obj = {};
@@ -34,6 +35,10 @@ class Talent {
return Object.keys(this.#talents).length;
}
get #prop() {
return this.#system.request(this.#system.Module.PROPERTY);
}
config({
talentPullCount = 10, // number of talents to pull from the talent pool
talentRate = { 1:100, 2:10, 3:1, total: 1000 }, // rate of talent pull
@@ -45,15 +50,15 @@ class Talent {
}
check(talentId, property) {
check(talentId) {
const { condition } = this.get(talentId);
return checkCondition(property, condition);
return this.#system.check(this.#prop, condition);
}
get(talentId) {
const talent = this.#talents[talentId];
if(!talent) throw new Error(`[ERROR] No Talent[${talentId}]`);
return clone(talent);
return this.#system.clone(talent);
}
information(talentId) {
@@ -61,11 +66,11 @@ class Talent {
return { grade, name, description };
}
exclusive(talends, exclusiveId) {
const { exclusive } = this.get(exclusiveId);
if(!exclusive) return null;
for(const talent of talends) {
for(const e of exclusive) {
exclude(talents, excludeId) {
const { exclude } = this.get(excludeId);
if(!exclude) return null;
for(const talent of talents) {
for(const e of exclude) {
if(talent == e) return talent;
}
}
@@ -81,7 +86,7 @@ class Talent {
}
getRate(additionValues = {}) {
const rate = clone(this.#talentRate);
const rate = this.#system.clone(this.#talentRate);
const addition = { 1:1, 2:1, 3:1, };
Object.keys(additionValues).forEach(key => {
@@ -103,13 +108,14 @@ class Talent {
let randomNumber = Math.floor(Math.random() * rate.total);
if((randomNumber -= rate[3]) < 0) return 3;
if((randomNumber -= rate[2]) < 0) return 2;
if((randomNumber -= rate[1]) < 0) return 1;
if((randomNumber - rate[1]) < 0) return 1;
return 0;
}
const talentList = {};
for(const talentId in this.#talents) {
const { id, grade, name, description } = this.#talents[talentId];
const { id, grade, name, description, exclusive } = this.#talents[talentId];
if(!!exclusive) continue;
if(id == include) {
include = { grade, name, description, id };
continue;
@@ -130,6 +136,19 @@ class Talent {
});
}
random(count) {
const talents = Object
.keys(this.#talents)
.filter(id=>!this.#talents[id].exclusive);
return new Array(count)
.fill(1)
.map(()=>talents.splice(
Math.floor(Math.random()*talents.length)%talents.length,
1
)[0]
);
}
allocationAddition(talents) {
if(Array.isArray(talents)) {
let addition = 0;
@@ -140,9 +159,9 @@ class Talent {
return Number(this.get(talents).status) || 0;
}
do(talentId, property) {
do(talentId) {
const { effect, condition, grade, name, description } = this.get(talentId);
if(condition && !checkCondition(property, condition))
if(condition && !this.#system.check(condition))
return null;
return { effect, grade, name, description };
}
@@ -153,32 +172,34 @@ class Talent {
if(!replacement) return null;
const list = [];
if(replacement.grade) {
this.forEach(({id, grade})=>{
this.forEach(({id, grade, exclusive})=>{
if(exclusive) return;
if(!replacement.grade[grade]) return;
if(this.exclusive(talents, id)) return;
if(this.exclude(talents, id)) return;
list.push([id, replacement.grade[grade]]);
})
}
if(replacement.talent) {
for(let id in replacement.talent) {
id = Number(id);
if(this.exclusive(talents, id)) continue;
if(this.exclude(talents, id)) continue;
list.push([id, replacement.talent[id]]);
}
}
return list;
}
const wr = this.#system.function(this.#system.Function.UTIL).weightRandom;
const replace = (talent, talents) => {
const replaceList = getReplaceList(talent, talents);
if(!replaceList) return talent;
const rand = weightRandom(replaceList);
const rand = wr(replaceList);
return replace(
rand, talents.concat(rand)
);
}
const newTalents = clone(talents);
const newTalents = this.#system.clone(talents);
const result = {};
for(const talent of talents) {
const replaceId = replace(talent, newTalents);
@@ -193,7 +214,7 @@ class Talent {
forEach(callback) {
if(typeof callback != 'function') return;
for(const id in this.#talents)
callback(clone(this.#talents[id]), id);
callback(this.#system.clone(this.#talents[id]), id);
}
}

47
src/ui/laya.patch.js Normal file
View File

@@ -0,0 +1,47 @@
// 滚动条太灵敏
const SCROLL_START_DISTANCE = 30;
Laya.ScrollBar.prototype.loop=function(){
var mouseY=Laya.stage.mouseY;
var mouseX=Laya.stage.mouseX;
this._lastOffset=this.isVertical ? (mouseY-this._lastPoint.y):(mouseX-this._lastPoint.x);
if (this._clickOnly){
if (Math.abs(this._lastOffset *(this.isVertical ? Laya.stage._canvasTransform.getScaleY():Laya.stage._canvasTransform.getScaleX()))> SCROLL_START_DISTANCE){
this._clickOnly=false;
this._offsets || (this._offsets=[]);
this._offsets.length=0;
this._target.mouseEnabled=false;
if (!this.hide && this.autoHide){
this.alpha=1;
this.visible=true;
}
this.event(/*laya.events.Event.START*/"start");
}else return;
}
this._offsets.push(this._lastOffset);
this._lastPoint.x=mouseX;
this._lastPoint.y=mouseY;
if (this._lastOffset===0)return;
if (!this._checkElastic){
if (this.elasticDistance > 0){
if (!this._checkElastic && this._lastOffset !=0){
if ((this._lastOffset > 0 && this._value <=this.min)|| (this._lastOffset < 0 && this._value >=this.max)){
this._isElastic=true;
this._checkElastic=true;
}else {
this._isElastic=false;
}
}
}else {
this._checkElastic=true;
}
}
if (this._isElastic){
if (this._value <=this.min){
this.value-=this._lastOffset *Math.max(0,(1-((this.min-this._value)/ this.elasticDistance)));
}else if (this._value >=this.max){
this.value-=this._lastOffset *Math.max(0,(1-((this._value-this.max)/ this.elasticDistance)));
}
}else {
this.value-=this._lastOffset;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -475,6 +475,12 @@ class ColorfulBox extends Laya.Box {
label.text = value;
}
get cacheAs() {return super.cacheAs;}
set cacheAs(value) {
if(value=='bitmap') debugger;
super.cacheAs = value;
}
}
runtime.BlankBox =
@@ -534,4 +540,32 @@ class BlankBox extends Laya.Box {
super.height = value;
this.#draw();
}
}
runtime.ColorAgentLabel =
class ColorAgentLabel extends Laya.Label {
constructor(...args) {
super(...args);
}
get #brothers() {
const brothers = [];
if(!this.parent) return brothers;
const deepFind = p => {
if(!p._childs) return;
for(const c of p._childs) {
if(c == this) continue;
if(c instanceof Laya.Label) brothers.push(c);
deepFind(c);
}
}
deepFind(this.parent);
return brothers;
}
get color() {return this.super.color;}
set color(c) {
super.color = c;
this.#brothers.forEach(b=>b.color=c);
}
}

View File

@@ -0,0 +1,136 @@
export default class CyberCelebrity extends ui.view.CyberTheme.CelebrityUI {
constructor() {
super();
this.btnRetry.on(Laya.Event.CLICK, this, ()=>this.random());
this.btnNext.on(Laya.Event.CLICK, this, this.next);
this.panelCharacter.vScrollBar.elasticDistance = 150;
}
#selected;
static #createComponent = Laya.plugin.extractComponents(CyberCelebrity.uiView, ['boxCharacter','boxTalent','boxUniqueUnGenerate']);
#createCharacterItem(dataSource, click) {
const {name, property, talent} = dataSource;
const item = CyberCelebrity.#createComponent('boxCharacter');
const vboxStates = item.getChildByName('vboxStates');
const boxName = item.getChildByName('boxName');
boxName.getChildByName('label').text = name;
const p = $_.clone(property);
for(const k in p)
if(Math.abs(p[k] - Math.PI) < 0.0000001)
p[k] = 'π';
vboxStates.getChildByName('label').text = $_.format($lang.F_PropertyStr, p);
for(const t of talent) {
const i = CyberCelebrity.#createComponent('boxTalent');
i.getChildByName('label').text = $_.format($lang.F_TalentSelection, t);
i.y = vboxStates.height+vboxStates.space;
let g = i.getChildByName(`grade${t.grade}`);
if(g) g.visible = true;
vboxStates.addChild(i);
}
const box = new Laya.Box();
box.height = vboxStates.space;
box.y = vboxStates.height;
vboxStates.addChild(box);
vboxStates.scaleY = 0;
item.dataSource = dataSource;
item.switch = showDetails => vboxStates.scaleY = !!showDetails?1:0;
item.click = (cb, caller) => {
boxName.offAll(Laya.Event.CLICK);
boxName.on(Laya.Event.CLICK, caller || this, cb);
}
if(click) item.click(click);
return item;
}
#createUniqueUnGenerateItem(generate) {
const item = CyberCelebrity.#createComponent('boxUniqueUnGenerate');
const boxName = item.getChildByName('boxName');
const vboxStates = item.getChildByName('vboxStates');
const label = vboxStates.getChildByName('label');
const boxBtn = vboxStates.getChildByName('boxBtn');
const btn = boxBtn.getChildByName('btn');
label.event(Laya.Event.RESIZE);
vboxStates.scaleY = 0;
item.dataSource = false;
item.switch = showDetails => vboxStates.scaleY = !!showDetails?1:0;
item.click = (cb, caller) => {
boxName.offAll(Laya.Event.CLICK);
boxName.on(Laya.Event.CLICK, caller || this, cb);
}
item.generate = (cb, caller) => {
btn.offAll(Laya.Event.CLICK);
btn.on(Laya.Event.CLICK, caller || this, cb);
}
if(generate) item.generate(generate);
return item;
}
init() {
this.random();
}
close() {
this.#selected = null;
this.vboxCharacter.destroyChildren(true);
}
random(g) {
this.#selected = null;
this.vboxCharacter.destroyChildren(true);
const {unique, normal} = core.characterRandom();
const items = [];
const uniqueItem = this.generateUnique(unique, ()=>{
core.generateUnique();
this.random(normal);
});
if(uniqueItem) items.push(uniqueItem);
(g||normal).forEach(character => items.push(this.#createCharacterItem(character)));
items.forEach((item, i) => {
item.y = i;
this.vboxCharacter.addChild(item);
item.click(()=>{
if(this.#selected) this.#selected.switch(false);
this.#selected = item;
item.switch(true);
item.event(Laya.Event.RESIZE);
})
});
if(g&&uniqueItem) {
this.#selected = uniqueItem;
uniqueItem.switch(true);
uniqueItem.event(Laya.Event.RESIZE);
}
}
generateUnique(data, generate) {
if(!data) return null;
if(!data.generate) return this.#createUniqueUnGenerateItem(generate);
data.name = $lang.UI_UniqueWaTaShi;
return this.#createCharacterItem(data);
}
next() {
if(!this.#selected) return $$event('message', ['M_PleaseSelectOne']);
if(!this.#selected.dataSource) return $$event('message', ['M_UnGenerate']);
const {property: propertyAllocate, talent: talents} = this.#selected.dataSource;
const replace = core.remake(talents.map(talent => talent.id));
if(replace.length > 0) {
$$event('message', [replace.map(v => ['F_TalentReplace', v])]);
}
$ui.switchView(
UI.pages.TRAJECTORY,
{
propertyAllocate, talents,
enableExtend: false,
}
);
}
}

View File

@@ -1,7 +1,7 @@
export default class CyberMain extends ui.view.CyberTheme.CyberMainUI {
constructor() {
super();
this.btnRemake.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.TALENT));
this.btnRemake.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.MODE));
this.btnAchievement.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.ACHIEVEMENT));
this.btnThanks.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.THANKS));
this.btnGithub.on(Laya.Event.CLICK, this, goto, ['github']);

View File

@@ -0,0 +1,7 @@
export default class CyberMode extends ui.view.CyberTheme.ModeUI {
constructor() {
super();
this.btnCustom.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.TALENT));
this.btnCelebrity.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.CELEBRITY));
}
}

View File

@@ -67,6 +67,7 @@ export default class CyberProperty extends ui.view.CyberTheme.CyberPropertyUI {
{
propertyAllocate: this.#propertyAllocate,
talents: this.listSelectedTalents.array,
enableExtend: true,
}
);
}

View File

@@ -6,6 +6,7 @@ export default class CyberSummary extends ui.view.CyberTheme.CyberSummaryUI {
}
#selectedTalent;
#enableExtend;
onAgain() {
core.talentExtend(this.#selectedTalent);
@@ -13,8 +14,10 @@ export default class CyberSummary extends ui.view.CyberTheme.CyberSummaryUI {
$ui.switchView(UI.pages.MAIN);
}
init({talents}) {
init({talents, enableExtend}) {
const {summary, lastExtendTalent} = core;
this.#enableExtend = enableExtend;
const gradeFilters = $ui.common.filter;
const gradeColors = $ui.common.grade;
@@ -68,7 +71,11 @@ export default class CyberSummary extends ui.view.CyberTheme.CyberSummaryUI {
if(b == lastExtendTalent) return 1;
return bg - ag;
});
this.#selectedTalent = talents[0].id;
if(this.#enableExtend) {
this.#selectedTalent = talents[0].id;
} else {
this.#selectedTalent = lastExtendTalent;
}
this.listSelectedTalents.array = talents;
}
@@ -115,6 +122,9 @@ export default class CyberSummary extends ui.view.CyberTheme.CyberSummaryUI {
}
onSelectTalent(talentId) {
if(!this.#enableExtend) {
return $$event('message', ['M_DisableExtendTalent']);
}
if(talentId == this.#selectedTalent) {
this.#selectedTalent = null;
} else {

View File

@@ -40,7 +40,7 @@ export default class CyberTalent extends ui.view.CyberTheme.CyberTalentUI {
}
const talents = [...this.#selected].map(index => this.listTalents.array[index]);
$ui.switchView(UI.pages.PROPERTY, { talents });
$ui.switchView(UI.pages.PROPERTY, { talents, enableExtend: true});
}
renderTalent(box, index) {
@@ -99,7 +99,7 @@ export default class CyberTalent extends ui.view.CyberTheme.CyberTalentUI {
if(this.#selected.size >= core.talentSelectLimit) {
return $$event('message', ['F_TalentSelectLimit', core.talentSelectLimit]);
}
const exclusive = core.exclusive(
const exclusive = core.exclude(
[...this.#selected].map(index => this.listTalents.array[index].id),
this.listTalents.array[index].id
);

View File

@@ -66,8 +66,10 @@ export default class CyberTrajectory extends ui.view.CyberTheme.CyberTrajectoryU
#isEnd;
#trajectoryItems;
#talents;
#enableExtend;
init({propertyAllocate, talents}) {
init({propertyAllocate, talents, enableExtend}) {
this.#enableExtend = enableExtend;
this.boxParticle.visible = false;
this.boxSpeed.visible = true;
this.btnSummary.visible = false;
@@ -109,16 +111,16 @@ export default class CyberTrajectory extends ui.view.CyberTheme.CyberTrajectoryU
if(isEnd) {
this.boxSpeed.visible = false;
this.btnSummary.visible = true;
Laya.timer.frameOnce(1,this,()=>{
this.panelTrajectory.scrollTo(0, this.panelTrajectory.contentHeight);
});
}
this.panelTrajectory.scrollTo(0, this.panelTrajectory.contentHeight);
this.renderTrajectory(age, content);
if(age >= 100) {
this.boxParticle.visible = true;
}
Laya.timer.frameOnce(1, this, () => {
this.panelTrajectory.scrollTo(0, this.panelTrajectory.contentHeight);
});
this.updateProperty();
}
@@ -141,12 +143,12 @@ export default class CyberTrajectory extends ui.view.CyberTheme.CyberTrajectoryU
);
this.vboxTrajectory.addChild(item);
this.#trajectoryItems.push(item);
this.#trajectoryItems.forEach((item, index) => item.y = index);
item.y = this.vboxTrajectory.height;
}
onSummary() {
const talents = this.#talents;
$ui.switchView(UI.pages.SUMMARY, {talents});
$ui.switchView(UI.pages.SUMMARY, { talents, enableExtend: this.#enableExtend });
}
get speed() {

View File

@@ -0,0 +1,143 @@
export default class Celebrity extends ui.view.DefaultTheme.CelebrityUI {
constructor() {
super();
this.btnRetry.on(Laya.Event.CLICK, this, ()=>this.random());
this.btnNext.on(Laya.Event.CLICK, this, this.next);
this.panelCharacter.vScrollBar.elasticDistance = 150;
}
#selected;
static #createComponent = Laya.plugin.extractComponents(Celebrity.uiView, ['boxCharacter','boxTalent','boxUniqueUnGenerate']);
#createCharacterItem(dataSource, click) {
const {name, property, talent} = dataSource;
const style = $ui.common.characterItem;
const item = Celebrity.#createComponent('boxCharacter');
const vboxStates = item.getChildByName('vboxStates');
const boxName = item.getChildByName('boxName');
boxName.label = name;
const p = $_.clone(property);
for(const k in p)
if(Math.abs(p[k] - Math.PI) < 0.0000001)
p[k] = 'π';
vboxStates.label = $_.format($lang.F_PropertyStr, p);
$_.deepMapSet(boxName, style.name);
$_.deepMapSet(vboxStates, style.state);
for(const t of talent) {
const i = Celebrity.#createComponent('boxTalent');
i.label = $_.format($lang.F_TalentSelection, t);
i.y = vboxStates.height+vboxStates.space;
$_.deepMapSet(i, $ui.common.card[t.grade].normal);
vboxStates.addChild(i);
}
const box = new Laya.Box();
box.height = vboxStates.space;
box.y = vboxStates.height;
vboxStates.addChild(box);
vboxStates.scaleY = 0;
item.dataSource = dataSource;
item.switch = showDetails => vboxStates.scaleY = !!showDetails?1:0;
item.click = (cb, caller) => {
boxName.offAll(Laya.Event.CLICK);
boxName.on(Laya.Event.CLICK, caller || this, cb);
}
if(click) item.click(click);
return item;
}
#createUniqueUnGenerateItem(generate) {
const style = $ui.common.characterItem;
const item = Celebrity.#createComponent('boxUniqueUnGenerate');
const boxName = item.getChildByName('boxName');
const vboxStates = item.getChildByName('vboxStates');
const label = vboxStates.getChildByName('label');
const boxBtn = vboxStates.getChildByName('boxBtn');
const btn = boxBtn.getChildByName('btn');
$_.deepMapSet(boxName, style.name);
$_.deepMapSet(vboxStates, style.state);
$_.deepMapSet(btn, style.name);
boxBtn.y = label.height + vboxStates.space;
label.event(Laya.Event.RESIZE);
vboxStates.scaleY = 0;
item.dataSource = false;
item.switch = showDetails => vboxStates.scaleY = !!showDetails?1:0;
item.click = (cb, caller) => {
boxName.offAll(Laya.Event.CLICK);
boxName.on(Laya.Event.CLICK, caller || this, cb);
}
item.generate = (cb, caller) => {
btn.offAll(Laya.Event.CLICK);
btn.on(Laya.Event.CLICK, caller || this, cb);
}
if(generate) item.generate(generate);
return item;
}
init() {
this.random();
}
close() {
this.#selected = null;
this.vboxCharacter.destroyChildren(true);
}
random(g) {
this.#selected = null;
this.vboxCharacter.destroyChildren(true);
const {unique, normal} = core.characterRandom();
const items = [];
const uniqueItem = this.generateUnique(unique, ()=>{
core.generateUnique();
this.random(normal);
});
if(uniqueItem) items.push(uniqueItem);
(g||normal).forEach(character => items.push(this.#createCharacterItem(character)));
items.forEach((item, i) => {
item.y = i;
this.vboxCharacter.addChild(item);
item.click(()=>{
if(this.#selected) this.#selected.switch(false);
this.#selected = item;
item.switch(true);
item.event(Laya.Event.RESIZE);
})
});
if(g&&uniqueItem) {
this.#selected = uniqueItem;
uniqueItem.switch(true);
uniqueItem.event(Laya.Event.RESIZE);
}
}
generateUnique(data, generate) {
if(!data) return null;
if(!data.generate) return this.#createUniqueUnGenerateItem(generate);
data.name = $lang.UI_UniqueWaTaShi;
return this.#createCharacterItem(data);
}
next() {
if(!this.#selected) return $$event('message', ['M_PleaseSelectOne']);
if(!this.#selected.dataSource) return $$event('message', ['M_UnGenerate']);
const {property: propertyAllocate, talent: talents} = this.#selected.dataSource;
const replace = core.remake(talents.map(talent => talent.id));
if(replace.length > 0) {
$$event('message', [replace.map(v => ['F_TalentReplace', v])]);
}
$ui.switchView(
UI.pages.TRAJECTORY,
{
propertyAllocate, talents,
enableExtend: false,
}
);
}
}

View File

@@ -1,7 +1,7 @@
export default class Main extends ui.view.DefaultTheme.MainUI {
constructor() {
super();
this.btnRemake.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.TALENT));
this.btnRemake.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.MODE));
this.btnAchievement.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.ACHIEVEMENT));
this.btnThanks.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.THANKS));
this.btnGithub.on(Laya.Event.CLICK, this, goto, ['github']);

View File

@@ -0,0 +1,7 @@
export default class Mode extends ui.view.DefaultTheme.ModeUI {
constructor() {
super();
this.btnCustom.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.TALENT));
this.btnCelebrity.on(Laya.Event.CLICK, this, ()=>$ui.switchView(UI.pages.CELEBRITY));
}
}

View File

@@ -67,6 +67,7 @@ export default class Property extends ui.view.DefaultTheme.PropertyUI {
{
propertyAllocate: this.#propertyAllocate,
talents: this.listSelectedTalents.array,
enableExtend: true,
}
);
}

View File

@@ -7,6 +7,7 @@ export default class Summary extends ui.view.DefaultTheme.SummaryUI {
}
#selectedTalent;
#enableExtend;
onAgain() {
core.talentExtend(this.#selectedTalent);
@@ -14,8 +15,9 @@ export default class Summary extends ui.view.DefaultTheme.SummaryUI {
$ui.switchView(UI.pages.MAIN);
}
init({talents}) {
init({talents, enableExtend}) {
const {summary, lastExtendTalent} = core;
this.#enableExtend = enableExtend;
this.listSummary.array = [
[core.PropertyTypes.HCHR, $lang.UI_Property_Charm],
@@ -38,7 +40,11 @@ export default class Summary extends ui.view.DefaultTheme.SummaryUI {
if(b == lastExtendTalent) return 1;
return bg - ag;
});
this.#selectedTalent = talents[0].id;
if(this.#enableExtend) {
this.#selectedTalent = talents[0].id;
} else {
this.#selectedTalent = lastExtendTalent;
}
this.listSelectedTalents.array = talents;
}
renderSummary(box) {
@@ -57,6 +63,9 @@ export default class Summary extends ui.view.DefaultTheme.SummaryUI {
}
onSelectTalent(talentId) {
if(!this.#enableExtend) {
return $$event('message', ['M_DisableExtendTalent']);
}
if(talentId == this.#selectedTalent) {
this.#selectedTalent = null;
} else {

View File

@@ -8,7 +8,6 @@ export default class Talent extends ui.view.DefaultTheme.TalentUI {
}
#selected = new Set();
init() {
this.pageDrawCard.visible = true;
this.pageResult.visible = false;
@@ -30,7 +29,7 @@ export default class Talent extends ui.view.DefaultTheme.TalentUI {
}
const talents = [...this.#selected].map(index => this.listTalents.array[index]);
$ui.switchView(UI.pages.PROPERTY, { talents });
$ui.switchView(UI.pages.PROPERTY, { talents, enableExtend: true });
}
renderTalent(box, index) {
@@ -55,7 +54,7 @@ export default class Talent extends ui.view.DefaultTheme.TalentUI {
if(this.#selected.size >= core.talentSelectLimit) {
return $$event('message', ['F_TalentSelectLimit', core.talentSelectLimit]);
}
const exclusive = core.exclusive(
const exclusive = core.exclude(
[...this.#selected].map(index => this.listTalents.array[index].id),
this.listTalents.array[index].id
);

View File

@@ -45,8 +45,10 @@ export default class Trajectory extends ui.view.DefaultTheme.TrajectoryUI {
#isEnd;
#trajectoryItems;
#talents;
#enableExtend;
init({propertyAllocate, talents}) {
init({propertyAllocate, talents, enableExtend}) {
this.#enableExtend = enableExtend;
this.boxParticle.visible = false;
this.boxSpeed.visible = true;
this.btnSummary.visible = false;
@@ -88,16 +90,16 @@ export default class Trajectory extends ui.view.DefaultTheme.TrajectoryUI {
if(isEnd) {
this.boxSpeed.visible = false;
this.btnSummary.visible = true;
Laya.timer.frameOnce(1,this,()=>{
this.panelTrajectory.scrollTo(0, this.panelTrajectory.contentHeight);
});
}
this.panelTrajectory.scrollTo(0, this.panelTrajectory.contentHeight);
this.renderTrajectory(age, content);
if(age >= 100) {
this.boxParticle.visible = true;
}
Laya.timer.frameOnce(1, this, () => {
this.panelTrajectory.scrollTo(0, this.panelTrajectory.contentHeight);
});
this.updateProperty();
}
@@ -117,12 +119,12 @@ export default class Trajectory extends ui.view.DefaultTheme.TrajectoryUI {
item.grade(content[content.length - 1].grade);
this.vboxTrajectory.addChild(item);
this.#trajectoryItems.push(item);
this.#trajectoryItems.forEach((item, index) => item.y = index);
item.y = this.vboxTrajectory.height;
}
onSummary() {
const talents = this.#talents;
$ui.switchView(UI.pages.SUMMARY, {talents});
$ui.switchView(UI.pages.SUMMARY, {talents, enableExtend: this.#enableExtend});
}
get speed() {

View File

@@ -14,7 +14,7 @@ export default class MessagePopup extends ui.view.MessagePopupUI {
Laya.Tween.clearAll(this);
this.alpha = 0;
this.y = - 2 * this.height;
await Laya.promises.Tween.to(this, { y: 0, alpha: 1 }, 300, Laya.Ease.backOut),
await Laya.promises.Tween.to(this, { y: 0, alpha: 1 }, 300, Laya.Ease.backOut);
await Laya.promises.Tween.to(this, { alpha: 0}, 300, Laya.Ease.strongIn, 3000);
}
}

View File

@@ -7,22 +7,22 @@ export default class SaveLoad extends ui.view.SaveLoadUI {
});
this.btnRead.on(Laya.Event.CLICK, this, async ()=>{
const result = await $$copy(this.input.text = this.data);
$$event('message', [result? 'UI_CopySuccess': 'UI_CopyFaild']);
$$event('message', [result? 'UI_CopySuccess': 'UI_CopyFailed']);
});
this.btnWrite.on(Laya.Event.CLICK, this, async ()=>{
const text = await $$read();
if(text == false) {
this.data = [
this.input.text,
'UI_PasteFaildDecodeSuccess',
'UI_PasteFaildDecodeFaild'
'UI_PasteFailedDecodeSuccess',
'UI_PasteFailedDecodeFailed'
];
} else {
this.input.text = text;
this.data = [
text,
'UI_PasteSuccessDecodeSuccess',
'UI_PasteSuccessDecodeFaild'
'UI_PasteSuccessDecodeFailed'
];
}
});
@@ -60,6 +60,71 @@ export default class SaveLoad extends ui.view.SaveLoadUI {
this.input.on(Laya.Event.MOUSE_DOWN, this, ()=>{
this.input.setSelection(0, this.input.text.length);
})
this.btnBackup.on(Laya.Event.CLICK, this, ()=>{
const board = document.createElement("div");
document.body.appendChild(board);
board.style = `
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 0.95`;
const bg = document.createElement("div");
bg.style = `
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #fff;
opacity: 0.95`;
document.body.appendChild(board);
board.appendChild(bg);
const textarea = document.createElement("textarea");
textarea.style = `position: absolute; width: ${window.innerWidth}px; height: ${window.innerHeight}px;`
textarea.value = JSON.stringify(
JSON.parse(this.data),
null,
4
);
board.appendChild(textarea);
const close = document.createElement("div");
close.style = `
position: absolute;
top: 0;
right: 0;
width: 100px;
height: 100px;
background: red;
font-size:100px;
padding: 0;
line-height: 100px;
color: white;
opacity: 0.7`;
close.innerHTML = '×';
board.appendChild(close);
close.onclick = ()=>board.remove();
const load = document.createElement("div");
load.style = `
position: absolute;
bottom: 0;
right: 0;
width: 100px;
height: 100px;
background: limegreen;
font-size: 35px;
padding: 0;
line-height: 50px;
color: white;
opacity: 0.7`;
load.innerHTML = 'LOAD<br>读取';
board.appendChild(load);
load.onclick = ()=>this.data = [textarea.value, '成功/success', '失败/failed', true];
});
}
static load() {
@@ -79,17 +144,19 @@ export default class SaveLoad extends ui.view.SaveLoadUI {
return JSON.stringify(data);
}
set data([v, success = 'UI_LoadSuccess', faild = 'UI_LoadFaild']) {
set data([v, success = 'UI_LoadSuccess', failed = 'UI_LoadFailed', altMsg]) {
try {
const data = JSON.parse(v);
for(const key in data)
localStorage.setItem(key, data[key]);
$$event('message', [success]);
if(altMsg) alert(success);
else $$event('message', [success]);
$ui.theme = $ui.theme;
this.btnClose.event(Laya.Event.CLICK);
} catch (e) {
console.error(e);
$$event('message', [faild]);
if(altMsg) alert(`${failed}\n${e}`);
else $$event('message', [failed]);
}
}
}

View File

@@ -9,6 +9,8 @@ const pages = {
THANKS: 'THANKS',
THEMES: 'THEMES',
SAVELOAD: 'SAVELOAD',
MODE: 'MODE',
CELEBRITY: 'CELEBRITY'
};
const popups = {
@@ -28,6 +30,8 @@ const cyber = {
[pages.THANKS]: "default/thanks",
[pages.THEMES]: 'themes',
[pages.SAVELOAD]: 'saveload',
[pages.MODE]: 'cyber/mode',
[pages.CELEBRITY]: 'cyber/celebrity',
},
popups: {
[popups.ACHIEVEMENT]: "cyber/popup/achievementPopup",
@@ -57,20 +61,22 @@ const cyber = {
],
gradeBlk: [
{
defaultColor: '#cccccc',
hoverColor: '#cccccc',
visible: false,
},
{
defaultColor: '#55fffe',
hoverColor: '#55fffe',
visible: true,
},
{
defaultColor: '#b17cff',
hoverColor: '#b17cff',
visible: true,
},
{
defaultColor: '#ffce45',
hoverColor: '#ffce45',
visible: true,
},
]
},
@@ -165,6 +171,13 @@ const cyber = {
defaultColor: '#fc5531',
hoverColor: '#f28b54',
},
btnBackup: {
defaultColor: '#9c30cd',
hoverColor: '#bf50fd',
radius: 8,
defaultLabel: '#ffffff',
hoverLabel: '#ffffff',
},
},
names: {
btnSmall: {
@@ -190,6 +203,8 @@ const dark = {
[pages.THANKS]: "default/thanks",
[pages.THEMES]: 'themes',
[pages.SAVELOAD]: 'saveload',
[pages.MODE]: 'default/mode',
[pages.CELEBRITY]: 'default/celebrity',
},
popups: {
[popups.ACHIEVEMENT]: "default/popup/achievementPopup",
@@ -201,24 +216,27 @@ const dark = {
defaultFontColor: '#eeeeee',
trajectoryItem: {
box: {
filters: ()=>[new Laya.GlowFilter("#eeeeee", 8, 0, 0)],
// filters: ()=>[new Laya.GlowFilter("#eeeeee", 8, 0, 0)],
defaultStroke: '#eeeeee',
hoverStroke: '#eeeeee',
lineWidth: 2,
},
grade: [
{
defaultColor: '#4a5361',
defaultColor: '#464646',
hoverColor: '#4a5361',
},
{
defaultColor: '#1160b0',
hoverColor: '#1160b0',
defaultColor: '#6495ed',
hoverColor: '#87cefa',
},
{
defaultColor: '#9379ca',
hoverColor: '#9379ca',
defaultColor: '#e2a7ff',
hoverColor: '#e7beff',
},
{
defaultColor: '#ab6157',
hoverColor: '#ab6157',
defaultColor: '#ffa07a',
hoverColor: '#f7a989',
},
],
ageColor: '#ffffee',
@@ -411,7 +429,28 @@ const dark = {
lineWidth: 4,
radius: 0,
}
]
],
characterItem: {
name: {
defaultColor: '#393e46',
defaultStroke: '#eeeeee',
defaultLabel: '#eeeeee',
hoverColor: '#ff7878',
hoverStroke: '#eeeeee',
hoverLabel: '#eeeeee',
lineWidth: 2,
},
state: {
defaultColor: '#393e46',
defaultStroke: '#eeeeee',
defaultLabel: '#eeeeee',
hoverColor: '#393e46',
hoverStroke: '#eeeeee',
hoverLabel: '#eeeeee',
lineWidth: 2,
},
propertyColor: '#000000',
},
},
class: {
btn_main: {
@@ -424,6 +463,16 @@ const dark = {
lineWidth: 2,
radius: 4,
},
btn_main2: {
defaultColor: '#ffa07a',
defaultStroke: '#f8f8f8',
defaultLabel: '#3b3b3b',
hoverColor: '#ff7878',
hoverStroke: '#f8f8f8',
hoverLabel: '#eeeeee',
lineWidth: 2,
radius: 4,
},
btn_small: {
defaultColor: '#5865f2',
defaultStroke: '#eeeeee',
@@ -475,7 +524,7 @@ const dark = {
[pages.PROPERTY]: {
vars: {
btnRandomAllocate: 'btn_main',
btnNext: 'btn_main',
btnNext: 'btn_main2',
title: 'title',
},
names: {
@@ -607,6 +656,13 @@ const dark = {
defaultColor: '#fc5531',
hoverColor: '#f28b54',
},
btnBackup: {
defaultColor: '#9c30cd',
hoverColor: '#bf50fd',
radius: 8,
defaultLabel: '#ffffff',
hoverLabel: '#ffffff',
},
},
names: {
btnSmall: {
@@ -616,6 +672,18 @@ const dark = {
}
}
},
[pages.MODE]: {
names: {
font_default: 'font_default',
btn: 'btn_main',
}
},
[pages.CELEBRITY]: {
vars: {
btnRetry: 'btn_main',
btnNext: 'btn_main2',
}
},
},
popups: {
[popups.ACHIEVEMENT]: {
@@ -644,6 +712,8 @@ const light = {
[pages.THANKS]: "default/thanks",
[pages.THEMES]: 'themes',
[pages.SAVELOAD]: 'saveload',
[pages.MODE]: 'default/mode',
[pages.CELEBRITY]: 'default/celebrity',
},
popups: {
[popups.ACHIEVEMENT]: "default/popup/achievementPopup",
@@ -655,21 +725,27 @@ const light = {
defaultFontColor: '#000000',
trajectoryItem: {
box: {
filters: ()=>[new Laya.GlowFilter("#b1b1b1", 8, 0, 0)],
// filters: ()=>[new Laya.GlowFilter("#b1b1b1", 8, 0, 0)],
defaultStroke: '#b1b1b1',
hoverStroke: '#b1b1b1',
lineWidth: 2,
},
grade: [
{},
{
defaultColor: '#55fffe',
hoverColor: '#55fffe',
defaultColor: '#ffffff',
hoverColor: '#ededed',
},
{
defaultColor: '#b17cff',
hoverColor: '#b17cff',
defaultColor: '#87cefa',
hoverColor: '#6495ed',
},
{
defaultColor: '#ffce45',
hoverColor: '#ffce45',
defaultColor: '#e7beff',
hoverColor: '#e2a7ff',
},
{
defaultColor: '#f7a989',
hoverColor: '#ffa07a',
},
],
ageColor: '#000000',
@@ -860,7 +936,28 @@ const light = {
lineWidth: 4,
radius: 0,
}
]
],
characterItem: {
name: {
defaultColor: '#ffffff',
defaultStroke: '#cccccc',
defaultLabel: '#000000',
hoverColor: '#ff7878',
hoverStroke: '#cccccc',
hoverLabel: '#ffffff',
lineWidth: 2,
},
state: {
defaultColor: '#ffffff',
defaultStroke: '#cccccc',
defaultLabel: '#000000',
hoverColor: '#ffffff',
hoverStroke: '#cccccc',
hoverLabel: '#000000',
lineWidth: 2,
},
propertyColor: '#000000',
},
},
class: {
btn_main: {
@@ -873,6 +970,16 @@ const light = {
lineWidth: 2,
radius: 4,
},
btn_main2: {
defaultColor: '#f7a989',
defaultStroke: '#f8f8f8',
defaultLabel: '#ffffff',
hoverColor: '#ff7878',
hoverStroke: '#f8f8f8',
hoverLabel: '#ffffff',
lineWidth: 2,
radius: 4,
},
btn_small: {
defaultColor: '#5865f2',
defaultStroke: '#eeeeee',
@@ -924,7 +1031,7 @@ const light = {
[pages.PROPERTY]: {
vars: {
btnRandomAllocate: 'btn_main',
btnNext: 'btn_main',
btnNext: 'btn_main2',
title: 'title',
},
names: {
@@ -1056,6 +1163,13 @@ const light = {
defaultColor: '#fc5531',
hoverColor: '#f28b54',
},
btnBackup: {
defaultColor: '#9c30cd',
hoverColor: '#bf50fd',
radius: 8,
defaultLabel: '#ffffff',
hoverLabel: '#ffffff',
},
},
names: {
btnSmall: {
@@ -1065,6 +1179,18 @@ const light = {
}
}
},
[pages.MODE]: {
names: {
font_default: 'font_default',
btn: 'btn_main',
}
},
[pages.CELEBRITY]: {
vars: {
btnRetry: 'btn_main',
btnNext: 'btn_main2',
}
},
},
popups: {
[popups.ACHIEVEMENT]: {

View File

@@ -1,906 +0,0 @@
@media (min-width:640px){html{font-size:24px;}}
@media (min-width:631px) and (max-width:639px){html{font-size:23.66px;}}
@media (min-width:622px) and (max-width:630px){html{font-size:23.33px;}}
@media (min-width:613px) and (max-width:621px){html{font-size:23px;}}
@media (min-width:604px) and (max-width:612px){html{font-size:22.66px;}}
@media (min-width:595px) and (max-width:603px){html{font-size:22.33px;}}
@media (min-width:586px) and (max-width:594px){html{font-size:22px;}}
@media (min-width:577px) and (max-width:585px){html{font-size:21.66px;}}
@media (min-width:568px) and (max-width:576px){html{font-size:21.33px;}}
@media (min-width:559px) and (max-width:567px){html{font-size:21px;}}
@media (min-width:550px) and (max-width:558px){html{font-size:20.66px;}}
@media (min-width:541px) and (max-width:549px){html{font-size:20.33px;}}
@media (min-width:533px) and (max-width:540px){html{font-size:20px;}}
@media (min-width:524px) and (max-width:532px){html{font-size:19.66px;}}
@media (min-width:515px) and (max-width:523px){html{font-size:19.33px;}}
@media (min-width:506px) and (max-width:514px){html{font-size:19px;}}
@media (min-width:497px) and (max-width:505px){html{font-size:18.66px;}}
@media (min-width:488px) and (max-width:496px){html{font-size:18.33px;}}
@media (min-width:480px) and (max-width:487px){html{font-size:18px;}}
@media (min-width:471px) and (max-width:479px){html{font-size:17.66px;}}
@media (min-width:462px) and (max-width:470px){html{font-size:17.33px;}}
@media (min-width:453px) and (max-width:461px){html{font-size:17px;}}
@media (min-width:444px) and (max-width:452px){html{font-size:17.12px;}}
@media (min-width:435px) and (max-width:443px){html{font-size:16.33px;}}
@media (min-width:426px) and (max-width:434px){html{font-size:16px;}}
@media (min-width:417px) and (max-width:425px){html{font-size:15.66px;}}
@media (min-width:408px) and (max-width:416px){html{font-size:15.33px;}}
@media (min-width:400px) and (max-width:407px){html{font-size:15px;}}
@media (min-width:391px) and (max-width:399px){html{font-size:14.66px;}}
@media (min-width:382px) and (max-width:390px){html{font-size:14.33px;}}
@media (min-width:374px) and (max-width:381px){html{font-size:14px;}}
@media (min-width:365px) and (max-width:373px){html{font-size:13.66px;}}
@media (min-width:356px) and (max-width:364px){html{font-size:13.33px;}}
@media (min-width:347px) and (max-width:355px){html{font-size:13px;}}
@media (min-width:338px) and (max-width:346px){html{font-size:12.66px;}}
@media (min-width:329px) and (max-width:337px){html{font-size:12.44px;}}
@media (max-width:328px){html{font-size:12px;}}
@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1628944689555') format('woff2'),
url('iconfont.woff?t=1628944689555') format('woff'),
url('iconfont.ttf?t=1628944689555') format('truetype');
}
* {
margin: 0;
padding: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"]{
-moz-appearance: textfield;
}
html {
background-color: #241619;
font-family: PingFangSC, 'Noto Sans CJK SC', 'MS Yahei';
}
body {
user-select: none;
}
#main {
display: flex;
flex-direction: column;
width: 100%;
max-width: 30rem;
height: 100%;
text-align: center;
box-sizing: border-box;
position: relative;
}
#title {
position: fixed;
font-size: 3rem;
font-weight: 700;
top: 35%;
left: 50%;
white-space: nowrap;
transform: translate(-50%, -50%);
color: #ff9f27;
}
#restart {
position: fixed;
top: 65%;
left: 50%;
transform: translate(-50%, -50%);
}
#restart .iconfont {
margin-right: 0.5rem;
}
#next {
display: none;
}
#talentSelectedView {
flex: 0 1 auto;
}
.mainbtn {
margin: 0.5rem 1rem 1rem;
padding: 0.5rem 1.5rem;
background-color: #4a0388;
border: 1px #4a0388 solid;
border-radius: 0.2rem;
color: #ff197b;
font-size: 1.6rem;
white-space: nowrap;
cursor: pointer;
}
.mainbtn:hover {
background: #fd373c;
color: #4a0388;
transition: all .4s ease 0s;
}
.btn-area {
display: flex;
flex-direction: row;
}
.btn-area>.mainbtn {
flex: 1;
}
.iconfont {
display: inline-block;
vertical-align: middle;
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.sponsor,
#rank,
#specialthanks,
#achievement {
position: fixed;
top: 4rem;
right: 1rem;
padding: 0.1rem;
width: 6rem;
border: none;
border-radius: 0.2rem;
background-color: #1a0c18;
font-size: 1.4rem;
color: #ff9f27;
cursor: pointer;
z-index:2;
word-wrap: none;
}
#specialthanks {
background-color: #1a0c18;
top: 1rem;
}
.sponsor {
top: auto;
bottom: 0;
width: auto;
padding: 0.5rem;
}
#rank {
position: absolute;
top: 50%;
right: 1.5rem;
transform: translateY(-50%);
}
#spthx {
position: fixed;
display: grid;
top: 4rem;
bottom: 5rem;
left: 50%;
width: 30rem;
max-width: calc(100% - 2rem);
transform: translateX(-50%);
}
#spthx ul {
list-style-type: none;
padding: 0;
}
#spthx ul li {
margin: 0;
}
#spthx ul.g1 {
display: grid;
max-block-size: 9rem;
max-height: 9rem;
overflow: scroll;
}
#spthx ul.g1 li {
display: inline-grid;
background-color: orange;
margin-bottom: 0.5rem;
padding: 0.2rem 0;
grid-template-columns: 7rem auto;
}
#spthx ul.g1 li .name {
padding: 0 0.5rem;
font-weight: 700;
}
#spthx ul.g1 li .comment {
padding: 0 0.5rem;
}
#spthx ul.g2 {
color: white;
display: grid;
grid-template-columns: 50% 50%;
overflow: scroll;
}
#spthx ul.g2 li {
text-align: center;
}
.title {
color: #ff9f27;
position: relative;
font-size: 1.5rem;
font-weight: 700;
padding: 1rem;
}
ul#total,
#achievements {
list-style-type: none;
display: grid;
justify-items: center;
grid-template-columns: 50% 50%;
grid-auto-columns: max-content;
justify-content: center;
}
ul#total li,
#achievements li {
position: relative;
color: #ff9f27;
display: inline-grid;
margin: 0.5rem;
width: 12rem;
height: 6rem;
align-items: center;
}
ul#total li .achievementtitle,
#achievements li .achievementtitle{
font-weight: 700;
font-size: 1.2rem;
}
#achievements {
overflow: scroll;
}
#save,
#load,
#themeToggleBtn {
padding: 0 0.7rem;
width: 6.5rem;
background-color: #1a0c18;
border: none;
border-radius: 4px;
font-size: 1.4rem;
color: #ff9f27;
line-height: 2.5rem;
text-align: center;
vertical-align: middle;
cursor: pointer;
position: fixed;
z-index:2;
right: 0.5rem;
bottom: 0.5rem;
}
#themeToggleBtn {
display: none;
}
#save {
bottom: 3.5rem;
}
.head {
display: flex;
flex-direction: column;
justify-content: center;
height: 5.2rem;
font-size: 1.4rem;
white-space: nowrap;
color: #ff9f27;
}
.propinitial,
.selectlist {
list-style: none;
flex: 1;
padding: 1rem;
}
.lifeProperty {
list-style: none;
padding: 2rem 1rem 0.5rem 1rem;
display: flex;
color: #fd373c;
overflow: auto;
}
.lifeProperty>li {
flex: 1;
margin: 0.1rem 2px;
display: flex;
flex-direction: column;
border: 1px #fd373c solid;
border-radius: 0.2rem;
font-size: 1rem;
position: relative;
}
.lifeProperty>li>span:last-child {
background: #fd373c;
color: #4a0388;
}
.selectlist>li {
margin-bottom: 0.6rem;
display: block;
border: 1px #ff9f27 solid;
border-radius: 0.2rem;
color: #ff9f27;
font-size: 1.2rem;
line-height: 1.6;
user-select: none;
position: relative;
cursor: pointer;
}
.selectlist>li:last-child {
margin-bottom: 0;
}
.achvg0,
.grade0b {
background-color: #231815;
border: #ff9f27 2px solid !important;
color: #ff9f27 !important;
}
.achvg1,
.grade1b {
background-color: #3b3894;
border: #ff9f27 2px solid !important;
}
.achvg2,
.grade2b {
background-color: #470063;
border: #ff9f27 2px solid !important;
}
.achvg3,
.grade3b {
background-color: #f73c47;
border: #ff9f27 2px solid !important;
color: #f8ea8b !important;
}
.mask::before {
display: block;
content: " ";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #241619;
opacity: 0.5;
}
@media (min-width:1080px) {
.grade0b:hover {
background-color: #452915;
transition: all .3s ease 0s;
}
.grade1b:hover {
background-color: #5553b3;
transition: all .3s ease 0s;
}
.grade2b:hover {
background-color: #672183;
transition: all .3s ease 0s;
}
.grade3b:hover {
background-color: #ff8561;
transition: all .3s ease 0s;
}
}
.grade0b.selected,
.grade1b.selected,
.grade2b.selected,
.grade3b.selected {
box-shadow: #f74745 8px 4px 4px;
overflow: hidden;
}
.grade0b.selected::after,
.grade1b.selected::after,
.grade2b.selected::after,
.grade3b.selected::after {
content: '';
position: absolute;
background-color: #fe028b;
top: 0;
bottom: 0;
left: 0;
right: 0;
box-shadow: 0 0 10px #fe028b;
opacity: 0;
animation: blink 3s linear infinite;
}
@keyframes blink {
0% {
opacity: 0;
transform: translateX(-150%);
}
50% {
opacity: .2;
}
100% {
opacity: 0;
transform: translateX(150%);
}
}
.grade0b.selected {
background-color: #452915 !important;
}
.grade1b.selected {
background-color: #5553b3!important;
}
.grade2b.selected {
background-color: #672183 !important;
}
.grade3b.selected {
background-color: #ff8561 !important;
}
.propinitial {
display: flex;
flex-direction: column;
justify-content: center;
}
.propbtn:hover {
color: #5c5c5c;
transition: all .2s ease 0s;
}
.propinitial>li {
position: relative;
margin: 0.1rem auto;
padding: 0.2rem;
display: inline-block;
border-radius: 0.2rem;
color: #ff9f27;
font-size: 1.6rem;
line-height: 2;
}
.propinitial>li>input {
height: 2.2rem;
width: 2.2rem;
margin: 0 0.5rem;
padding: 0;
font-size: 2rem;
border: 0.1rem #ff9f27 solid;
background-color: #393E46;
color: #ff9f27;
text-align: center;
}
.propbtn {
position: relative;
cursor: pointer;
font-size: 2rem;
color: #ff9f27;
}
.judge>li>span:nth-child(1),
.lifeTrajectory>li>span:nth-child(1) {
width: 5rem;
text-align: right;
}
.judge>li>span:nth-child(2),
.lifeTrajectory>li>span:nth-child(2) {
flex: 1;
text-align: left;
}
.lifeTrajectory {
flex: 1;
margin: 0.5rem 1rem;
padding: 0;
border: 1px #ff9f27 solid;
background-color: #241619;
border-radius: 4px;
overflow: auto;
}
.lifeTrajectory>li {
margin: 10px 0;
padding: 5px 10px;
display: flex;
background-color: #231815;
box-shadow: #ff9f27 0 0 0.4rem;
color: #ff9f27;
font-size: 1rem;
position: relative;
}
.judge {
list-style: none;
flex: 1;
margin: 1rem;
display: flex;
flex-direction: column;
border: 1px solid #ff9f27;
border-radius: 4px;
overflow: scroll;
}
.judge>li {
flex: 1;
display: flex;
align-items: center;
background-color: #231815;
border-bottom: 1px solid #ff9f27;
box-shadow: none;
color: #ff9f27;
}
.judge>li:last-child {
border-bottom: 0
}
.judge>li.grade1 span,
.judge>li.grade1 {
background-color: #3b3894;
}
.judge>li.grade2 span,
.judge>li.grade2 {
background-color: #470063;
}
.judge>li.grade3 span,
.judge>li.grade3 {
background-color: #f73c47;
color: #f8ea8b !important;
}
@import url("https://fonts.googleapis.com/css?family=Montserrat:400,400i,700");
:root {
font-family: "Montserrat";
}
html,
body {
margin: 0;
height: 100%;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
i {
color: inherit;
}
.banners-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 9;
}
.banner {
color: white;
font-weight: 700;
padding: 2rem;
display: flex;
flex-direction: row;
align-items: center;
}
.banner .banner-message {
flex: 1;
padding: 0 2rem;
word-break: break-word;
overflow: auto;
}
.banner .banner-close {
display: flex;
align-items: center;
justify-content: center;
padding: 0.1rem;
border-radius: 4px;
cursor: pointer;
transition: background 0.3s;
}
.banner .iconfont {
font-size: 2rem;
}
.banner .banner-close:hover {
background: rgba(0, 0, 0, 0.12);
}
.banner.success {
background: #c101f9;
}
.banner.success::after {
background: #c101f9;
}
.banner.error {
background: #ff3a3f;
}
.banner.error::after {
background: #ff3a3f;
}
.banner.info {
background: #282366;
}
.banner.info::after {
background: #282366;
}
.banner::after {
content: "";
position: absolute;
height: 10%;
width: 100%;
bottom: 100%;
left: 0;
}
.banner:not(.visible) {
display: none;
transform: translateY(-100%);
}
.banner.visible {
box-shadow: 0 2px 2px 2px rgba(0, 0, 0, 0.12);
animation-name: banner-in;
animation-direction: forwards;
animation-duration: 0.6s;
animation-timing-function: ease-in-out;
animation-fill-mode: forwards;
animation-iteration-count: 1;
}
@keyframes banner-in {
0% {
transform: translateY(-100%);
}
50% {
transform: translateY(10%);
}
100% {
transform: translateY(0);
}
}
.show-banner {
appearance: none;
background: #ededed;
border: 0;
padding: 1rem 2rem;
border-radius: 4px;
cursor: pointer;
text-transform: uppercase;
margin: 0.25rem;
}
/**
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
.eva-animation {
animation-duration: 1s;
animation-fill-mode: both;
}
.eva-infinite {
animation-iteration-count: infinite;
}
.eva-icon-shake {
animation-name: eva-shake;
}
.eva-icon-zoom {
animation-name: eva-zoomIn;
}
.eva-icon-pulse {
animation-name: eva-pulse;
}
.eva-icon-flip {
animation-name: eva-flipInY;
}
.eva-hover {
display: inline-block;
}
.eva-hover:hover .eva-icon-hover-shake,
.eva-parent-hover:hover .eva-icon-hover-shake {
animation-name: eva-shake;
}
.eva-hover:hover .eva-icon-hover-zoom,
.eva-parent-hover:hover .eva-icon-hover-zoom {
animation-name: eva-zoomIn;
}
.eva-hover:hover .eva-icon-hover-pulse,
.eva-parent-hover:hover .eva-icon-hover-pulse {
animation-name: eva-pulse;
}
.eva-hover:hover .eva-icon-hover-flip,
.eva-parent-hover:hover .eva-icon-hover-flip {
animation-name: eva-flipInY;
}
@keyframes eva-flipInY {
from {
transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
animation-timing-function: ease-in;
opacity: 0;
}
40% {
transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
animation-timing-function: ease-in;
}
60% {
transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
opacity: 1;
}
80% {
transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
}
to {
transform: perspective(400px);
}
}
@keyframes eva-shake {
from,
to {
transform: translate3d(0, 0, 0);
}
10%,
30%,
50%,
70%,
90% {
transform: translate3d(-3px, 0, 0);
}
20%,
40%,
60%,
80% {
transform: translate3d(3px, 0, 0);
}
}
@keyframes eva-pulse {
from {
transform: scale3d(1, 1, 1);
}
50% {
transform: scale3d(1.2, 1.2, 1.2);
}
to {
transform: scale3d(1, 1, 1);
}
}
@keyframes eva-zoomIn {
from {
opacity: 1;
transform: scale3d(0.5, 0.5, 0.5);
}
50% {
opacity: 1;
}
}
::-webkit-scrollbar {
width: 0 !important
}
.deleteFixed {
margin: 0;
padding: 0.5rem 1rem;
border: 0;
border-radius: 0;
overflow: visible;
}
.operateBtn {
padding: 0.5rem 1.5rem;
border: 1px #EEEEEE solid;
border-radius: 0.2rem;
background-color:#393E46;
font-size: 1.6rem;
white-space: nowrap;
transform: translate(-50%,-50%);
cursor: pointer;
z-index:2;
color: #EEEEEE;
}
.operateBtn:hover {
background: #ff7878;
color: #fff;
transition: all .4s ease 0s;
}
.domToImage2wx {
position: fixed;
z-index: 1111;
width: 100%;
}
.domToImage2wx img {
width: 100%;
}
.github-corner,
.discord-btn {
background-color: #1a0c18 !important;
color: #ff9f27 !important;
}
.github-corner > svg path.octo-arm,
.github-corner > svg path.octo-body,
.discord-btn > svg > g > path {
fill: #ff9f27 !important;
}