updat
This commit is contained in:
parent
5a9bf4922b
commit
e28c9dc331
7 changed files with 7860 additions and 0 deletions
1497
TRUE - Storyteller (IOException) [Expert].osu
Normal file
1497
TRUE - Storyteller (IOException) [Expert].osu
Normal file
File diff suppressed because it is too large
Load diff
1638
lapix - Day by Day feat. Nicole Curry (IOException) [AI].osu
Normal file
1638
lapix - Day by Day feat. Nicole Curry (IOException) [AI].osu
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
2628
lapix - Day by Day feat. Nicole Curry (IOException) [hitsounds].osu
Normal file
2628
lapix - Day by Day feat. Nicole Curry (IOException) [hitsounds].osu
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,306 @@
|
||||||
|
osu file format v14
|
||||||
|
|
||||||
|
[General]
|
||||||
|
AudioFilename: audio.mp3
|
||||||
|
AudioLeadIn: 0
|
||||||
|
PreviewTime: 18808
|
||||||
|
Countdown: 0
|
||||||
|
SampleSet: Soft
|
||||||
|
StackLeniency: 0
|
||||||
|
Mode: 0
|
||||||
|
LetterboxInBreaks: 0
|
||||||
|
WidescreenStoryboard: 1
|
||||||
|
|
||||||
|
[Editor]
|
||||||
|
DistanceSpacing: 1.7
|
||||||
|
BeatDivisor: 4
|
||||||
|
GridSize: 4
|
||||||
|
TimelineZoom: 1.7
|
||||||
|
|
||||||
|
[Metadata]
|
||||||
|
Title:Spelunker
|
||||||
|
TitleUnicode:Spelunker
|
||||||
|
Artist:Unknown Artist
|
||||||
|
ArtistUnicode:Unknown Artist
|
||||||
|
Creator:IOException
|
||||||
|
Version:top-rhythm'
|
||||||
|
Source:しょぼんのアクション
|
||||||
|
Tags:スペランカー しょぼんのアクション sybon Syobon no Akushon Action Cat Neko Gato mario from hell Super Mario Bros world parody ちくChiku Spelunk 元祖みんなでスペランカー Tim Timothy G. Martin stage theme 01 atari NES nintendo entertainment system video game instrumental scognito deadcode ceo_of_osu ceo of osu press
|
||||||
|
BeatmapID:0
|
||||||
|
BeatmapSetID:1145452
|
||||||
|
|
||||||
|
[Difficulty]
|
||||||
|
HPDrainRate:3
|
||||||
|
CircleSize:0
|
||||||
|
OverallDifficulty:8.5
|
||||||
|
ApproachRate:0
|
||||||
|
SliderMultiplier:3.6
|
||||||
|
SliderTickRate:1
|
||||||
|
|
||||||
|
[Events]
|
||||||
|
//Background and Video events
|
||||||
|
0,0,"WP.PNG",0,0
|
||||||
|
//Break Periods
|
||||||
|
//Storyboard Layer 0 (Background)
|
||||||
|
//Storyboard Layer 1 (Fail)
|
||||||
|
//Storyboard Layer 2 (Pass)
|
||||||
|
//Storyboard Layer 3 (Foreground)
|
||||||
|
//Storyboard Layer 4 (Overlay)
|
||||||
|
//Storyboard Sound Samples
|
||||||
|
|
||||||
|
[TimingPoints]
|
||||||
|
133,397.350993377483,4,2,0,70,1,0
|
||||||
|
133,-10,4,2,0,70,0,0
|
||||||
|
5894,-10,4,2,0,80,0,0
|
||||||
|
6291,-10,4,2,0,85,0,0
|
||||||
|
6589,-10,4,2,0,75,0,0
|
||||||
|
12947,-10,4,2,0,65,0,0
|
||||||
|
17616,-10,4,2,0,70,0,0
|
||||||
|
19205,-10,4,2,0,90,0,1
|
||||||
|
25464,-10,4,2,0,90,0,0
|
||||||
|
25563,-10,4,2,0,90,0,1
|
||||||
|
32020,-10,4,2,0,85,0,0
|
||||||
|
35099,-10,4,2,0,93,0,0
|
||||||
|
36689,-10,4,2,0,100,0,0
|
||||||
|
|
||||||
|
|
||||||
|
[Colours]
|
||||||
|
Combo1 : 0,128,255
|
||||||
|
Combo2 : 251,217,153
|
||||||
|
Combo3 : 131,180,252
|
||||||
|
Combo4 : 247,157,157
|
||||||
|
Combo5 : 159,253,157
|
||||||
|
Combo6 : 224,177,252
|
||||||
|
Combo7 : 128,255,128
|
||||||
|
Combo8 : 255,128,128
|
||||||
|
|
||||||
|
[HitObjects]
|
||||||
|
256,193,133,5,4,1:0:0:0:
|
||||||
|
255,193,431,1,0,1:0:0:0:
|
||||||
|
254,192,530,1,8,2:0:0:0:
|
||||||
|
254,191,729,1,2,2:0:0:0:
|
||||||
|
254,190,927,1,0,1:0:0:0:
|
||||||
|
256,190,1126,1,2,2:0:0:0:
|
||||||
|
257,190,1325,1,8,2:0:0:0:
|
||||||
|
256,193,1523,1,2,0:0:0:0:
|
||||||
|
257,192,1623,1,2,0:0:0:0:
|
||||||
|
255,193,1722,5,0,1:0:0:0:
|
||||||
|
254,192,2020,1,0,1:0:0:0:
|
||||||
|
254,191,2119,1,8,2:0:0:0:
|
||||||
|
254,190,2317,1,2,2:0:0:0:
|
||||||
|
257,190,2715,1,0,1:0:0:0:
|
||||||
|
257,192,2815,1,0,1:0:0:0:
|
||||||
|
256,193,2914,1,8,1:0:0:0:
|
||||||
|
255,193,3311,5,4,1:2:0:0:
|
||||||
|
254,192,3609,1,0,1:0:0:0:
|
||||||
|
254,191,3709,1,8,2:0:0:0:
|
||||||
|
254,190,3907,1,2,2:0:0:0:
|
||||||
|
256,190,4106,1,0,1:0:0:0:
|
||||||
|
257,190,4305,1,2,2:0:0:0:
|
||||||
|
257,192,4503,1,8,2:0:0:0:
|
||||||
|
255,193,4702,1,2,2:0:0:0:
|
||||||
|
256,193,4801,1,2,0:0:0:0:
|
||||||
|
254,192,4901,5,0,1:0:0:0:
|
||||||
|
254,191,5199,1,0,1:0:0:0:
|
||||||
|
254,190,5298,1,8,2:0:0:0:
|
||||||
|
256,190,5497,1,2,1:2:0:0:
|
||||||
|
257,190,5795,1,0,1:2:0:0:
|
||||||
|
257,192,5894,1,0,1:2:0:0:
|
||||||
|
256,193,6093,1,8,1:0:0:0:
|
||||||
|
255,193,6291,1,10,2:0:0:0:
|
||||||
|
254,192,6391,1,10,2:0:0:0:
|
||||||
|
254,191,6490,5,4,1:0:0:0:
|
||||||
|
254,190,6788,1,0,1:0:0:0:
|
||||||
|
256,190,6887,1,8,2:0:0:0:
|
||||||
|
257,190,7086,1,2,2:0:0:0:
|
||||||
|
257,192,7285,1,0,1:0:0:0:
|
||||||
|
256,193,7384,1,2,2:0:0:0:
|
||||||
|
256,193,7483,1,2,2:0:0:0:
|
||||||
|
255,193,7682,1,8,2:0:0:0:
|
||||||
|
255,193,7881,1,2,2:0:0:0:
|
||||||
|
254,192,8080,5,0,1:0:0:0:
|
||||||
|
254,191,8179,1,0,1:0:0:0:
|
||||||
|
254,190,8278,1,0,1:0:0:0:
|
||||||
|
254,190,8378,1,0,1:0:0:0:
|
||||||
|
256,190,8477,1,8,2:0:0:0:
|
||||||
|
257,190,8676,1,2,2:0:0:0:
|
||||||
|
257,192,8874,1,0,1:0:0:0:
|
||||||
|
256,193,9073,1,8,1:2:0:0:
|
||||||
|
255,193,9172,1,0,1:0:0:0:
|
||||||
|
254,192,9272,1,8,1:0:0:0:
|
||||||
|
254,192,9470,1,8,1:0:0:0:
|
||||||
|
254,191,9669,5,4,1:2:0:0:
|
||||||
|
254,190,9967,1,0,1:0:0:0:
|
||||||
|
256,190,10066,1,8,2:0:0:0:
|
||||||
|
257,190,10265,1,2,2:0:0:0:
|
||||||
|
257,192,10464,1,0,1:0:0:0:
|
||||||
|
256,193,10662,1,2,2:0:0:0:
|
||||||
|
255,193,10861,1,8,2:0:0:0:
|
||||||
|
254,192,11060,1,2,2:0:0:0:
|
||||||
|
254,192,11159,1,2,2:0:0:0:
|
||||||
|
254,191,11258,5,0,1:0:0:0:
|
||||||
|
256,190,11556,1,0,1:0:0:0:
|
||||||
|
257,190,11656,1,8,2:0:0:0:
|
||||||
|
257,192,11854,1,2,2:0:0:0:
|
||||||
|
257,192,11954,1,2,2:0:0:0:
|
||||||
|
256,193,12053,1,0,1:0:0:0:
|
||||||
|
255,193,12152,1,0,1:0:0:0:
|
||||||
|
254,192,12252,1,0,1:0:0:0:
|
||||||
|
254,190,12450,1,8,1:0:0:0:
|
||||||
|
256,190,12649,1,10,2:0:0:0:
|
||||||
|
257,190,12748,1,10,2:0:0:0:
|
||||||
|
257,192,12848,5,6,3:2:0:0:
|
||||||
|
256,193,13146,1,0,3:0:0:0:
|
||||||
|
255,193,13444,1,0,3:0:0:0:
|
||||||
|
254,192,13841,1,0,3:0:0:0:
|
||||||
|
254,191,14040,1,2,3:2:0:0:
|
||||||
|
254,190,14238,1,2,3:2:0:0:
|
||||||
|
256,190,14437,5,2,3:2:0:0:
|
||||||
|
257,190,14735,1,2,3:2:0:0:
|
||||||
|
257,192,15033,1,2,3:2:0:0:
|
||||||
|
254,192,15331,1,0,3:0:0:0:
|
||||||
|
256,193,15431,1,0,3:0:0:0:
|
||||||
|
255,193,15629,1,0,3:0:0:0:
|
||||||
|
254,192,15729,1,0,3:0:0:0:
|
||||||
|
254,192,15828,1,0,3:0:0:0:
|
||||||
|
254,191,16027,5,6,3:2:0:0:
|
||||||
|
254,190,16325,1,0,3:0:0:0:
|
||||||
|
256,190,16623,1,0,3:0:0:0:
|
||||||
|
256,190,16722,1,0,3:0:0:0:
|
||||||
|
257,190,16822,1,2,3:2:0:0:
|
||||||
|
257,192,17020,1,2,3:2:0:0:
|
||||||
|
256,193,17219,1,2,3:2:0:0:
|
||||||
|
255,193,17417,1,2,3:2:0:0:
|
||||||
|
254,192,17616,5,8,2:0:0:0:
|
||||||
|
254,191,17815,1,8,2:0:0:0:
|
||||||
|
254,190,18013,1,8,2:0:0:0:
|
||||||
|
256,190,18212,1,8,2:0:0:0:
|
||||||
|
257,190,18411,5,8,1:2:0:0:
|
||||||
|
257,192,18510,1,0,1:0:0:0:
|
||||||
|
256,193,18709,1,0,1:0:0:0:
|
||||||
|
255,193,18808,1,8,1:0:0:0:
|
||||||
|
254,192,18907,1,8,1:0:0:0:
|
||||||
|
254,191,19007,1,8,1:0:0:0:
|
||||||
|
254,190,19106,1,8,1:0:0:0:
|
||||||
|
256,190,19205,5,4,1:0:0:0:
|
||||||
|
257,190,19404,1,2,0:2:0:0:
|
||||||
|
257,192,19503,1,0,1:0:0:0:
|
||||||
|
256,193,19603,1,8,2:0:0:0:
|
||||||
|
255,193,19801,1,2,2:0:0:0:
|
||||||
|
254,190,19901,1,2,0:0:0:0:
|
||||||
|
254,192,20000,1,0,1:0:0:0:
|
||||||
|
254,190,20099,1,2,0:0:0:0:
|
||||||
|
254,191,20199,1,2,2:0:0:0:
|
||||||
|
256,190,20397,1,8,2:0:0:0:
|
||||||
|
257,190,20596,1,2,2:0:0:0:
|
||||||
|
254,190,20695,1,2,0:0:0:0:
|
||||||
|
257,192,20795,5,0,1:0:0:0:
|
||||||
|
255,193,21093,1,0,1:0:0:0:
|
||||||
|
254,192,21192,1,8,2:0:0:0:
|
||||||
|
254,191,21391,1,2,2:0:0:0:
|
||||||
|
256,190,21689,1,0,1:0:0:0:
|
||||||
|
256,190,21788,1,0,1:0:0:0:
|
||||||
|
256,190,21887,1,0,1:0:0:0:
|
||||||
|
257,190,21987,1,8,1:0:0:0:
|
||||||
|
257,192,22384,5,4,1:0:0:0:
|
||||||
|
256,193,22583,1,2,0:2:0:0:
|
||||||
|
255,193,22682,1,0,1:0:0:0:
|
||||||
|
254,192,22782,1,8,2:0:0:0:
|
||||||
|
254,191,22980,1,2,2:0:0:0:
|
||||||
|
257,190,23080,1,2,0:0:0:0:
|
||||||
|
254,190,23179,1,0,1:0:0:0:
|
||||||
|
257,190,23278,1,2,0:0:0:0:
|
||||||
|
256,190,23378,1,2,2:0:0:0:
|
||||||
|
256,190,23477,1,2,2:0:0:0:
|
||||||
|
257,192,23576,1,8,2:0:0:0:
|
||||||
|
256,193,23775,1,2,2:0:0:0:
|
||||||
|
256,193,23874,1,2,2:0:0:0:
|
||||||
|
255,193,23974,5,0,1:0:0:0:
|
||||||
|
254,191,24272,1,0,1:0:0:0:
|
||||||
|
254,190,24371,1,8,2:0:0:0:
|
||||||
|
254,190,24470,1,2,2:0:0:0:
|
||||||
|
256,190,24570,1,2,2:0:0:0:
|
||||||
|
257,192,24868,1,0,1:0:0:0:
|
||||||
|
256,193,24967,1,0,1:0:0:0:
|
||||||
|
255,193,25166,1,8,1:2:0:0:
|
||||||
|
254,192,25265,1,0,1:0:0:0:
|
||||||
|
254,191,25365,1,10,2:0:0:0:
|
||||||
|
254,190,25464,1,10,2:0:0:0:
|
||||||
|
256,190,25563,5,4,1:0:0:0:
|
||||||
|
257,192,25861,1,0,1:0:0:0:
|
||||||
|
256,193,25960,1,8,2:0:0:0:
|
||||||
|
255,193,26159,1,2,2:0:0:0:
|
||||||
|
254,192,26358,1,0,1:0:0:0:
|
||||||
|
254,191,26457,1,2,2:0:0:0:
|
||||||
|
254,191,26556,1,2,2:0:0:0:
|
||||||
|
254,191,26656,1,2,2:0:0:0:
|
||||||
|
254,190,26755,1,8,2:0:0:0:
|
||||||
|
254,191,26954,1,2,2:0:0:0:
|
||||||
|
256,190,27152,5,0,1:0:0:0:
|
||||||
|
257,190,27252,1,0,1:0:0:0:
|
||||||
|
257,192,27351,1,0,1:0:0:0:
|
||||||
|
256,193,27550,1,8,2:0:0:0:
|
||||||
|
255,193,27748,1,2,2:0:0:0:
|
||||||
|
254,192,27947,1,0,1:0:0:0:
|
||||||
|
254,191,28145,1,8,1:2:0:0:
|
||||||
|
254,191,28245,1,8,1:2:0:0:
|
||||||
|
254,190,28344,1,8,1:0:0:0:
|
||||||
|
256,190,28742,5,4,1:0:0:0:
|
||||||
|
257,190,28941,1,2,0:2:0:0:
|
||||||
|
257,192,29040,1,0,1:0:0:0:
|
||||||
|
256,193,29139,1,8,2:0:0:0:
|
||||||
|
255,193,29338,1,2,2:0:0:0:
|
||||||
|
254,192,29536,1,0,1:0:0:0:
|
||||||
|
254,191,29735,1,2,2:0:0:0:
|
||||||
|
254,190,29834,1,2,0:0:0:0:
|
||||||
|
256,190,29934,1,8,2:0:0:0:
|
||||||
|
257,190,30132,1,2,2:0:0:0:
|
||||||
|
257,192,30331,5,0,1:0:0:0:
|
||||||
|
256,193,30629,1,0,1:0:0:0:
|
||||||
|
255,193,30729,1,8,2:0:0:0:
|
||||||
|
256,193,30828,1,2,0:0:0:0:
|
||||||
|
254,192,30927,1,2,2:0:0:0:
|
||||||
|
254,190,31225,1,0,1:0:0:0:
|
||||||
|
256,190,31325,1,8,1:2:0:0:
|
||||||
|
257,190,31424,1,0,1:0:0:0:
|
||||||
|
257,192,31523,1,8,1:0:0:0:
|
||||||
|
256,193,31722,1,10,2:0:0:0:
|
||||||
|
256,193,31821,1,10,2:0:0:0:
|
||||||
|
255,193,31921,5,0,1:0:0:0:
|
||||||
|
254,192,32119,1,8,2:0:0:0:
|
||||||
|
254,191,32318,1,8,2:0:0:0:
|
||||||
|
254,190,32517,1,8,2:0:0:0:
|
||||||
|
256,190,32616,1,8,2:0:0:0:
|
||||||
|
257,190,32815,1,8,2:0:0:0:
|
||||||
|
257,192,32914,1,8,2:0:0:0:
|
||||||
|
256,193,33113,1,8,2:0:0:0:
|
||||||
|
255,193,33212,1,8,2:0:0:0:
|
||||||
|
254,192,33510,5,0,1:0:0:0:
|
||||||
|
254,191,33708,1,8,2:0:0:0:
|
||||||
|
254,190,33907,1,8,2:0:0:0:
|
||||||
|
256,190,34106,1,8,2:0:0:0:
|
||||||
|
257,190,34205,1,8,2:0:0:0:
|
||||||
|
257,192,34404,1,8,2:0:0:0:
|
||||||
|
256,193,34503,1,8,1:2:0:0:
|
||||||
|
256,193,34603,1,8,2:0:0:0:
|
||||||
|
255,193,34702,1,8,2:0:0:0:
|
||||||
|
254,192,34801,1,8,2:0:0:0:
|
||||||
|
254,190,35099,5,0,1:0:0:0:
|
||||||
|
256,190,35298,1,8,2:0:0:0:
|
||||||
|
257,190,35397,1,8,2:0:0:0:
|
||||||
|
257,192,35497,1,8,2:0:0:0:
|
||||||
|
256,193,35695,1,8,2:0:0:0:
|
||||||
|
255,193,35894,1,0,1:0:0:0:
|
||||||
|
254,192,36093,1,8,2:0:0:0:
|
||||||
|
254,191,36192,1,8,2:0:0:0:
|
||||||
|
254,190,36291,1,8,2:0:0:0:
|
||||||
|
256,190,36490,1,8,2:0:0:0:
|
||||||
|
257,190,36689,5,8,1:2:0:0:
|
||||||
|
257,192,36887,5,8,2:0:0:0:
|
||||||
|
256,193,37086,5,8,1:2:0:0:
|
||||||
|
255,193,37285,5,8,2:0:0:0:
|
||||||
|
254,192,37483,5,8,1:2:0:0:
|
||||||
|
254,192,37583,1,8,1:2:0:0:
|
||||||
|
254,192,37782,1,0,1:2:0:0:
|
||||||
|
254,192,37881,1,8,1:2:0:0:
|
||||||
|
254,192,37980,1,8,1:2:0:0:
|
96
spelunker/generate_skin.py
Normal file
96
spelunker/generate_skin.py
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
out_dir = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker"
|
||||||
|
|
||||||
|
|
||||||
|
def empty(path):
|
||||||
|
im = Image.new("RGBA", (1, 1))
|
||||||
|
im.save(path)
|
||||||
|
|
||||||
|
|
||||||
|
hitcircle = Image.new("RGBA", (128, 128))
|
||||||
|
draw = ImageDraw.Draw(hitcircle)
|
||||||
|
draw.ellipse((5, 5, 118 + 5, 118 + 5), fill="white")
|
||||||
|
|
||||||
|
hitcircleoverlay = Image.new("RGBA", (128, 128))
|
||||||
|
draw = ImageDraw.Draw(hitcircleoverlay)
|
||||||
|
draw.ellipse((5, 5, 118 + 5, 118 + 5), outline="white", width=8)
|
||||||
|
|
||||||
|
approachcircle = Image.new("RGBA", (126, 126))
|
||||||
|
draw2 = ImageDraw.Draw(approachcircle)
|
||||||
|
size = 4
|
||||||
|
draw2.ellipse((size, size, 118 + size, 118 + size), outline="white", width=6)
|
||||||
|
|
||||||
|
scorebarbg = Image.new("RGBA", (400, 40))
|
||||||
|
draw4 = ImageDraw.Draw(scorebarbg)
|
||||||
|
draw4.rectangle((0, 10, 400, 40), fill="yellow")
|
||||||
|
|
||||||
|
scorebarcolor = Image.new("RGBA", (390, 40))
|
||||||
|
draw5 = ImageDraw.Draw(scorebarcolor)
|
||||||
|
draw5.rectangle((0, 4, 400, 20), fill="orange")
|
||||||
|
|
||||||
|
|
||||||
|
def get_text_dimensions(text_string, font):
|
||||||
|
# https://stackoverflow.com/a/46220683/9263761
|
||||||
|
ascent, descent = font.getmetrics()
|
||||||
|
|
||||||
|
text_width = font.getmask(text_string).getbbox()[2]
|
||||||
|
text_height = font.getmask(text_string).getbbox()[3] + descent
|
||||||
|
|
||||||
|
return (text_width, text_height)
|
||||||
|
|
||||||
|
|
||||||
|
def thefont(size=None):
|
||||||
|
if size is None:
|
||||||
|
size = 48
|
||||||
|
return ImageFont.FreeTypeFont(r"C:\WINDOWS\FONTS\SIMFANG.TTF", size)
|
||||||
|
|
||||||
|
|
||||||
|
def gentext(text, path, font=None, size=None, **kwargs):
|
||||||
|
if font is None:
|
||||||
|
font = thefont(size=size)
|
||||||
|
|
||||||
|
width, height = get_text_dimensions(text, font)
|
||||||
|
height += 2
|
||||||
|
|
||||||
|
im = Image.new("RGBA", (width, height))
|
||||||
|
draw3 = ImageDraw.Draw(im)
|
||||||
|
draw3.fontmode = "1"
|
||||||
|
draw3.text((0, 0), text, font=font, **kwargs)
|
||||||
|
im.save(path)
|
||||||
|
|
||||||
|
|
||||||
|
def gen2text(text, path, font=None, size=None, **kwargs):
|
||||||
|
if size is None:
|
||||||
|
size = 48
|
||||||
|
|
||||||
|
p = Path(path)
|
||||||
|
gentext(text, p, font=font, **kwargs)
|
||||||
|
|
||||||
|
pname = p.name.rstrip(".png")
|
||||||
|
p2 = p.with_name(pname + "@2x.png")
|
||||||
|
gentext(text, p2, font=font, size=size * 2, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
# Scorebar set
|
||||||
|
scorebarbg.save(f"{out_dir}/scorebar-bg.png")
|
||||||
|
scorebarcolor.save(f"{out_dir}/scorebar-colour.png")
|
||||||
|
|
||||||
|
# Hitcircle set
|
||||||
|
hitcircle.save(f"{out_dir}/hitcircle.png")
|
||||||
|
hitcircleoverlay.save(f"{out_dir}/hitcircleoverlay.png")
|
||||||
|
hitcircleoverlay.save(f"{out_dir}/sliderstartcircleoverlay.png")
|
||||||
|
empty(f"{out_dir}/sliderendcircleoverlay.png")
|
||||||
|
approachcircle.save(f"{out_dir}/approachcircle.png")
|
||||||
|
hitcircle.save(f"{out_dir}/sliderstartcircle.png")
|
||||||
|
|
||||||
|
# Hitcircle number set
|
||||||
|
for i in range(10):
|
||||||
|
gentext(str(i), f"{out_dir}/default-{i}.png", fill="white")
|
||||||
|
|
||||||
|
# Hitburst set
|
||||||
|
gen2text("Zzz", f"{out_dir}/hit0.png")
|
||||||
|
# gen2text("無謀な……", f"{out_dir}/hit100k.png")
|
||||||
|
# gen2text("え?俺勝っちゃったの?", f"{out_dir}/hit300g.png")
|
||||||
|
# gen2text("ヤッフー!!", f"{out_dir}/hit300k.png")
|
47
spelunker/generate_top_diff.py
Normal file
47
spelunker/generate_top_diff.py
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
in_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [top-rhythm'].osu"
|
||||||
|
out_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [Prece Enter Key].osu"
|
||||||
|
|
||||||
|
positions = [
|
||||||
|
(317, 289),
|
||||||
|
(225, 305),
|
||||||
|
(151, 253),
|
||||||
|
(135, 161),
|
||||||
|
(186, 87),
|
||||||
|
(278, 69),
|
||||||
|
(352, 121),
|
||||||
|
(369, 214),
|
||||||
|
]
|
||||||
|
|
||||||
|
with open(in_file_path, "rb") as f:
|
||||||
|
data = f.readlines()
|
||||||
|
|
||||||
|
with open(out_file_path, "wb") as f:
|
||||||
|
section = b""
|
||||||
|
c = 0
|
||||||
|
for line in data:
|
||||||
|
if line.startswith(b"Version"):
|
||||||
|
line = line.replace(b"top-rhythm'", b"Prece Enter Key")
|
||||||
|
|
||||||
|
line = line.strip()
|
||||||
|
if not line: continue
|
||||||
|
|
||||||
|
if line.startswith(b"[") and line.endswith(b"]"):
|
||||||
|
section = line.lstrip(b"[").rstrip(b"]")
|
||||||
|
|
||||||
|
print(section, line)
|
||||||
|
|
||||||
|
if section != b"HitObjects":
|
||||||
|
f.write(line + b"\n")
|
||||||
|
continue
|
||||||
|
|
||||||
|
parts = line.split(b",")
|
||||||
|
|
||||||
|
if len(parts) > 2:
|
||||||
|
x, y = positions[c]
|
||||||
|
parts[0] = str(x).encode("utf-8")
|
||||||
|
print(parts)
|
||||||
|
parts[1] = str(y).encode("utf-8")
|
||||||
|
c = (c + 1) % len(positions)
|
||||||
|
|
||||||
|
line = b",".join(parts)
|
||||||
|
f.write(line + b"\n")
|
Loading…
Reference in a new issue