forked from capedayo/minya_hotomoe
92 lines
7.1 KiB
Python
92 lines
7.1 KiB
Python
|
from module_interface import ModuleInterface
|
||
|
from mipac.models import Note
|
||
|
|
||
|
import random
|
||
|
|
||
|
Card_list = [
|
||
|
'The Fool',
|
||
|
'The Magician',
|
||
|
'The High Priestess',
|
||
|
'The Empress',
|
||
|
'The Emperor',
|
||
|
'The Hierophant',
|
||
|
'The Lovers',
|
||
|
'The Chariot',
|
||
|
'Strength',
|
||
|
'The Hermit',
|
||
|
'Wheel of Fortune',
|
||
|
'Justice',
|
||
|
'The Hanged Man',
|
||
|
'Death',
|
||
|
'Temperance',
|
||
|
'Devil',
|
||
|
'The Tower',
|
||
|
'The Star',
|
||
|
'The Moon',
|
||
|
'The Sun',
|
||
|
'Judgement',
|
||
|
'The World'
|
||
|
]
|
||
|
|
||
|
Card_mean = [
|
||
|
['순진, 천진난만함, 언제나 신기한 꿈을 추구, 소박함.', '부주의, 경솔, 단순, 무절제, 사치, 미성숙, 불안정, 불확실함'],
|
||
|
['독창, 창조, 상상, 자기 확신, 발명의 재주, 융통성, 자기통제, 자제, 극기, 책략.', '독단, 다재다능하여 성공하지 못함, 창조력 부족, 실패, 기술부족'],
|
||
|
['지혜, 건전한 판단력, 무의식 속의 깨달음, 일반적인 상식, 평온과 침착, 객관적인 타당성, 통찰력, 정신적 경향.', '무지, 연구부족, 비상식적, 결벽증, 자신의 껍질 속에 틀어박힘'],
|
||
|
['비옥함, 여성다운 발전, 성취, 완성, 어머니, 여성의 영향력, 실용적임, 번영, 출산', '성취하지 못함, 동요, 주저, 태만, 허영심, 제멋대로의 행동, 질투, 달성이 늦어짐, 낭비'],
|
||
|
['세속적인 힘, 확신, 부유함, 권력, 불굴의 정신, 아버지, 남성의 영향력, 가장(家長)에 해당하는 권위.', '미숙, 의지박약, 현실인식이 약함, 실무능력 부족, 거만함, 고지식함, 경제적 능력이 없음, 강요'],
|
||
|
['자비와 친절, 신뢰받음, 원조자와의 만남, 공헌, 일을 맡음, 동정심, 용서, 깊은 의미를 깨닫기 위해 노력함.', '보수주의, 자기 자신의 생각에만 사로잡힘, 신용을 잃음, 고립됨, 시야가 좁음, 오래된 원칙에 집착함'],
|
||
|
['사랑과 미(美), 완성과 조화, 결합, 결혼, 깊은 감정과 낙천주의, 감정의 자연스러움, 윤리적, 도덕적.', '이별, 퇴직, 소홀한 사랑, 사랑의 도피행각 '],
|
||
|
['목표를 향한 돌진, 극복된 역경, 성공, 여행, 선공필승, 행동적인 사랑, 지휘자, 활발화 한다.', '패배, 전의상실, 제자리 걸음, 좌절, 내키지 않음, 능률저하, 벅찬 라이벌의 등장, 소극적'],
|
||
|
['용기와 힘, 확신, 결단력, 도전적인 태도, 배짱, 열성, 불굴의 정신, 불가능을 가능으로 만드는 의지력.', '겁쟁이, 체념, 실력부족, 인내력부족, 힘의 오용, 잘난척 함, 유혹에 짐.'],
|
||
|
#9번 은둔자부터
|
||
|
['조언, 충고, 사려분별과 신중함, 용의주도 함, 탐구력, 감정을 억제함, 지적방면이 뛰어남.', '무분별, 융통성이 없음, 집중력부족, 편협함, 경박한 사랑을 함, 경계가 심해 진전되지 않는다.'],
|
||
|
['기회 도래, 전환기, 생각지도 않았던 행운, 운명적, 타이밍이 좋음, 유리한 변화, 승진', '하강기, 때를 잘못 만남, 궁핍함, 불리한 입장이 됨, 실연, 어긋남이 많아짐'],
|
||
|
['공정함, 균형잡힘, 중립적 입장을 지킴, 조정역할, 조화잡힌 궁합, 합리화 시킴, 분별력, 올바른, 미덕', '불공평함, 불균형, 불리한 조건, 편파, 선입관, 편견과 독단, 꺼림직한 행동, 도덕을 무시하는 사랑'],
|
||
|
['삶에서의 정지 상태, 일시적인 정지, 과도기, 희생, 시련의 시기, 괴로운 체험으로 교훈을 얻는다.', '열매 맺지 않은 희생, 제멋대로, 필요한 노력을 하지 않는다, 참지 못한다, 이기주의자'],
|
||
|
['예기치 않은 변화와 손실, 과거 자신에 대한 뜻밖의 변화, 익숙한 상황이나 우정 등의 종결, 계속되는 손해', '기사회생의 찬스, 슬럼프 탈출, 이미지 체인지, 기적적인 회생, 방침을 180°바꿈, 포기했던 것이 되돌아옴'],
|
||
|
['중용, 절제, 인내, 자기 통제와 검소한 태도를 통한 목표의 달성, 적응과 조화, 좋은 영향력, 순화', '절도 없음이 악영향을 가져다옴, 불규칙한 일, 조정능력이 없음, 쓸데없는 일이 많음'],
|
||
|
['속박됨, 타락, 비굴해짐, 욕망의 포로, 황폐한 생활, 밤놀이가 과함, 자신을 속이고 있음', '구속에서 도망침, 오랜 고뇌에서 해방됨, 나쁜 인연에서 벗어남, 욕심을 버린다, 나쁜 유혹을 뿌리친다.'],
|
||
|
['결정적 타격, 분쟁, 트러블 속출, 뜻밖의 사고, 급병, 오래된 신념의 파괴, 대격변을 경험함, 우정의 단절', '긴박한 상황, 험악한 공기, 내분, 파멸직전, 우쭐대다가 뼈아픈 대가를 받는다, 불운의 상황'],
|
||
|
['소망이 성취됨, 희망에 넘치는 미래, 미적 생활, 아이디어가 떠오름, 상큼한 창조력, 격려가 됨, 밝은 전망', '걸림, 이상이 너무 높음, 실망함, 좋아하지도 않는 일을 하게 됨, 비관적인 상황, 바램이 너무 높음'],
|
||
|
['속임수, 불분명한 주변의 상황, 위험스러운 요소, 나쁜 영향력, 이기주의, 배신, 숨겨진 적', '위기를 모면함, 조금씩 상황호조, 오해가 풀림, 결심함, 긴 안목으로 봄, 사전에 위험을 알게됨'],
|
||
|
['만족, 성취, 성공, 호의적인 대인관계, 기쁨, 헌신적인 사랑, 생명력, 활기참, 건강상태가 좋음, 활발함', '영속성이 없음, 생산력 저하, 의기소침, 생활불안, 취소됨, 체력부족, 활동력이 쇠약해짐'],
|
||
|
['부활의 기쁨, 운이 열린다, 변혁의 시기, 위기탈출, 결단, 좋은 소식, 재회, 건강회복, 되살아나는 사랑', '재기불능, 불리한 결정, 채용되지 않음, 나쁜 소식, 연기됨, 결정하지 못함, 헤어짐'],
|
||
|
['완성, 성공, 목표달성, 영속성, 전성기, 완벽함, 목적지에 도달함, 정신적 고조, 해피엔드', '미완성, 계획이 성취되지 않음, 준비 부족으로 인한 실패, 도중하차, 슬럼프에 빠짐, 미숙함']
|
||
|
]
|
||
|
|
||
|
class Card:
|
||
|
Name = ''
|
||
|
Is_reversed = False
|
||
|
|
||
|
class Tarot(ModuleInterface):
|
||
|
def __init__(self):
|
||
|
super().__init__()
|
||
|
self.name = "Tarot"
|
||
|
self.regex_pattern = r".*타로.*"
|
||
|
|
||
|
print("[Tarot] Tarot card module, Tarot V1 loaded.")
|
||
|
|
||
|
async def execute_module(self, ctx: Note):
|
||
|
print(f"[Tarot] Got Tarot Related Message : {ctx.content}")
|
||
|
Tarot_list = []
|
||
|
|
||
|
for i in range(len(Card_list)):
|
||
|
made = Card()
|
||
|
made.Name = Card_list[i]
|
||
|
made.Is_reversed = random.randrange(2)==1
|
||
|
Tarot_list.append(made)
|
||
|
|
||
|
random.shuffle(Tarot_list)
|
||
|
|
||
|
Select = random.randrange(22)
|
||
|
name = Tarot_list[Select-1].Name + ('(역)' if Tarot_list[Select-1].Is_reversed else '')
|
||
|
meaning = Card_mean[Card_list.index(Tarot_list[Select-1].Name)][(1 if Tarot_list[Select-1].Is_reversed else 0)]
|
||
|
|
||
|
# 뽑은 타로 카드는 Card.Name (역) 이에요! or 뽑은 타로 카드는 Card.Name 이에요!
|
||
|
# 간단한 의미는 Card_mean[Card_list.index(Card.Name)][0] 이에요! or Card_mean[Card_list.index(Card.Name)][1] 이에요!
|
||
|
|
||
|
await ctx.api.action.reply(f"뽑은 타로 카드는 **{name}** 이에요!\n간단한 의미는 **{meaning}** 이에요!", visibility="home")
|
||
|
|
||
|
|
||
|
|