백괴슬라이드/플러그인/메인

리버티게임(개발), 모두가 만들어가는 자유로운 게임
본진>Senouis님의 2023년 7월 22일 (토) 15:23 판 (이식 시작)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

/*

  • PluginX 대응 uncyslide 코드
  • 원작자: BANIP
  • 원 소스코드: 백괴슬라이드/플러그인
  • 버전 : 1.1.02
  • RecentChange: 백괴게임 토론 문서 링크 -> 리버티게임 토론 문서 링크로 수정
  • PluginX 이식자: Senouis
  • /

var slideable = plugin_Slideable(); var create = slideable.create; var execute = slideable.execute; var dispose = slideable.dispose;

var rankingSystem = plugin_RankingSystem()("백괴슬라이드/랭킹", function(prev,next){ return Number(prev.time) - Number(next.time)}); var outputKeys = {time:"소요시간"}; var startMap = localStorage.getItem("uncySlide/startmap") || 0; var game = {

   0: {
       center: "아래로 밀어주세요.",
       bottom: 1
   },
   1: {
       center: "오른쪽으로 밀어보세요.",
       right: 2
   },
   2: {
       center: "어디로 밀어보실래요?",
       top: 3,
       bottom: 3,
   },
   3: {
       center: "반갑습니다. 
백괴슬라이드입니다.", bottom: 4, }, 4: { center: "어디로 당기고 미느냐에 따라, 게임의 결과가 달라집니다.", bottom: 5, }, 5: { center: "는 개뿔 이겜 시스템만든다고 그런 장황한거 만들 정신머리는 없었습니다", bottom: 5.1, }, 5.1: { center: "진심 힘들었습니다.", bottom: 5.2, }, 5.2: { center: "잘했죠?", bottom: 5.3, }, 5.3: { center: "위로 밀어서 칭찬하거나 아래로 밀어서 욕해주세요.", top: 5.4, bottom: 5.5, }, 5.4: { center: "감사합니다. 헤헤", bottom: 6, }, 5.5: { center: "흑흑.. 힘들었는데..", bottom: 6, }, 6: { center: "그래도 미디어위키의 틀에서 벗어난 겜인만큼 최대한 나은 경험을 선사하고자 노력했습니다. 잘부탁드립니다.", bottom: function(){ localStorage.setItem("uncySlide/startmap","main"); execute("main"); }, }, main: {

center: "

  • 아래: 게임시작
  • 토론: 위
  • 설명: 오른쪽

",

       bottom: function(){ execute("start",{count:100,time:Date.now()}) },
       top: "debate",
       right: "i0",
   },
   i0: {
       center:"가장자리에 화살표 보이죠?",
       bottom:"i1"
   },
   i1: {
       center:"화면을 넘겨서 드래그해서 진행하는 게임이에요.",
       bottom:"i2"
   },
   i2: {
       center:"원래라면 좀 큰 스케일의 게임으로 만들고 싶었는데..",
       bottom:"i3"
   },
   i3: {
       center:"제 역량이 겜 크기에서 다 드러나네요...",
       bottom:"i4"
   },
   i4: {
       center:"아무쪼록 힘들게 만들었으니 재밌게 즐겨주세요.",
       right:"main"
   },
   debate: function(){
       location.href = "https://liberty.banipest.com/index.php/%ED%86%A0%EB%A1%A0:%EB%B0%B1%EA%B4%B4%EC%8A%AC%EB%9D%BC%EC%9D%B4%EB%93%9C";
   },
   start: function(arg){
       function getRandomDirection(){
           switch( Math.ceil(Math.random() * 4) ){
               case 1: return "top"; break;
               case 2: return "bottom"; break;
               case 3: return "left"; break;
               case 4: return "right"; break;
           }
       }
       function getColorCode(count,maxcount){
           var code = "hsl(" + count / maxcount * 360 +",100%,70%)";
           return code
       }
       
       var count = arg.count;
       var maxcount = arg.maxcount || count;
       var time = arg.time;
       var $this = $(this);
       var timerInterval;
       var slideableItem = {
           center: function(){
               var $this = $(this);
               $this.css({
                   "background": getColorCode(count,maxcount)
               });
               
               timerInterval = setInterval(function(){
                   var overtime = (Date.now() - time) * 0.001;
                   var printableTime = overtime.toFixed(2);
                   $this.find(".counter").html(printableTime + "초");
               },5)
               

return "

" + count + "

";

           }
       };
       slideableItem[getRandomDirection()] = function(){
           clearInterval(timerInterval);
           if(count === 1) return execute("result",{count:count - 1,time:time,maxcount:maxcount});
           execute("start",{count:count - 1,time:time,maxcount:maxcount}) 
       };
       create(slideableItem);
   },
   result: function(arg){
       var maxcount = arg.maxcount || count;
       var time = ( (Date.now() - arg.time) / 1000 ).toFixed(2);
       var updateParam = {
       	time: time,
       	name: mw.config.get("wgUserName")
       };
       rankingSystem.update(updateParam,function(rankingScore,thisScore){ return rankingScore.time > thisScore.time},outputKeys);
       create({

center: "갯수: " + maxcount + "
시간: " + time + "

  • 왼쪽: 메인으로
  • 오른쪽: 토론으로

",

           left:"main",
           right:"debate",
       });
   }

} dispose(game, startMap, {});