Advertisement
Guest User

Capitalis Clicker

a guest
May 14th, 2022
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.32 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #! coding: utf-8
  3. #! python3
  4. # Capitalist Clicker 2022
  5.  
  6. import random
  7. import pygame
  8. import pygame.freetype
  9.  
  10. # Draw text
  11. def draw_text( coords=(0,0), text="None", color=(255,0,255) ) :
  12.     textCanvas = font.render( str( text ), True, color )
  13.     screen.blit( textCanvas, coords )
  14.  
  15.  
  16. # Draw a task
  17. def draw_task( color=(255,0,255), y=30, value=0, advancement=0 ) :
  18.     # Icon
  19.     icon = pygame.draw.circle( screen, color, (30,y), 20,5 )
  20.     draw_text( (16, y-10), str( value ), c_white )
  21.    
  22.     # Bar
  23.     pygame.draw.rect( screen, color, (70,y-15, 200,30) )
  24.     pc = (advancement/100.0)
  25.     pygame.draw.rect( screen, (0,0,0), (75+(190*pc),y-10, 190*(1-pc),20) )
  26.    
  27.     return icon
  28.  
  29.  
  30. # Draw a button
  31. def draw_button( coords=(0,0), text="None", color=(255,0,255), size=(50,30), textColor=(0,255,0) ) :
  32.     button = pygame.draw.rect( screen, color, (coords, size) )
  33.     draw_text( (coords[0]+2, coords[1]+2), str( text ), textColor )
  34.     return button
  35.  
  36.  
  37. # Update a task
  38. def update_task( value=0, working=False, advancement=0, speed=0 ):
  39.     global money
  40.    
  41.     if working :
  42.         advancement += speed
  43.    
  44.     if advancement >= 100 :
  45.         advancement = 0
  46.         working = False
  47.         money += value
  48.    
  49.     return working, advancement
  50.  
  51. # Pico8ish palette
  52. c_white = (255,255,255)
  53. c_gray = (191,191,191)
  54. c_dgray = (127,127,127)
  55. c_black = (0,0,0)
  56. c_purple = (142,68,207)
  57. c_magenta = (207,68,133)
  58. c_red = (219,29,35)
  59. c_orange = (255,168,17)
  60. c_brown = (207,142,68)
  61. c_beige = (255,214,144)
  62. c_yellow = (245,231,0)
  63. c_lgreen = (133,207,68)
  64. c_green = (0,139,80)
  65. c_dblue = (0,67,133)
  66. c_blue = (68,133,207)
  67. c_lblue = (125,187,255)
  68.  
  69.  
  70. # Config window
  71. pygame.init()
  72. screen = pygame.display.set_mode( [300,450] )
  73. pygame.display.set_caption( "Capitalist Clicker" )
  74. framerate = 60
  75. timer = pygame.time.Clock()
  76. font = pygame.font.Font( "ka1.ttf", 16 )
  77. money = 0
  78.  
  79.  
  80. # Game variables
  81. tasks = {}
  82. tasks["green"] = {"color":c_lgreen, "y":60, "value":1, "upgrade":{"cost":10, "button":None}, "working":False, "speed":5, "advancement":0, "buyButton":None}
  83. tasks["red"] = {"color":c_red, "y":120, "value":2, "upgrade":{"cost":20, "button":None}, "working":False, "speed":4, "advancement":0, "buyButton":None}
  84. tasks["orange"] = {"color":c_orange, "y":180, "value":3, "upgrade":{"cost":30, "button":None}, "working":False, "speed":3, "advancement":0, "buyButton":None}
  85. tasks["white"] = {"color":c_gray, "y":240, "value":4, "upgrade":{"cost":40, "button":None}, "working":False, "speed":2, "advancement":0, "buyButton":None}
  86. tasks["purple"] = {"color":c_purple, "y":300, "value":5, "upgrade":{"cost":50, "button":None}, "working":False, "speed":1, "advancement":0, "buyButton":None}
  87.  
  88. managers = {}
  89. managers["green"] = {"owned":False, "cost":100, "buyButton":None}
  90. managers["red"] = {"owned":False, "cost":200, "buyButton":None}
  91. managers["orange"] = {"owned":False, "cost":300, "buyButton":None}
  92. managers["white"] = {"owned":False, "cost":400, "buyButton":None}
  93. managers["purple"] = {"owned":False, "cost":500, "buyButton":None}
  94.  
  95. # Main
  96.  
  97. # Set the game
  98. backgroundColor = c_black
  99. running = True
  100.  
  101. while running :
  102.    
  103.     # Events
  104.     for event in pygame.event.get() :
  105.         if event.type == pygame.QUIT :
  106.             running = False
  107.        
  108.         if event.type == pygame.MOUSEBUTTONDOWN :
  109.             # Buy buttons
  110.             for task in tasks :
  111.                 if tasks[task]["buyButton"] != None :
  112.                     if tasks[task]["buyButton"].collidepoint( event.pos ) :
  113.                         tasks[task]["working"] = True
  114.             # Upgrade buttons
  115.             for task in tasks :
  116.                 if tasks[task]["upgrade"]["button"] != None :
  117.                     if tasks[task]["upgrade"]["button"].collidepoint( event.pos ) :
  118.                         if money >= tasks[task]["upgrade"]["cost"] :
  119.                             money -= tasks[task]["upgrade"]["cost"]
  120.                             tasks[task]["upgrade"]["cost"] = round( tasks[task]["upgrade"]["cost"]*1.1, 1 )
  121.                             tasks[task]["value"] = round( tasks[task]["value"]*1.1, 1 )
  122.             # Managers buttons
  123.             for manager in managers :
  124.                 if managers[manager]["buyButton"] != None :
  125.                     if managers[manager]["buyButton"].collidepoint( event.pos ) :
  126.                         if money >= managers[manager]["cost"] :
  127.                             managers[manager]["owned"] = True
  128.            
  129.    
  130.     # Drawing
  131.     screen.fill( backgroundColor )
  132.    
  133.     # Money
  134.     draw_text( (10,10), "Money "+str( round( money, 2 ) ), c_white )
  135.    
  136.     # Tasks
  137.     for t in tasks :
  138.         task = tasks[t]
  139.         task["working"], task["advancement"] = update_task( task["value"], task["working"], task["advancement"], task["speed"] )
  140.         task["buyButton"] = draw_task( task["color"], task["y"], task["value"], task["advancement"] )
  141.        
  142.         if managers[t]["owned"] :
  143.             task["working"] = True
  144.    
  145.     # Upgrade tasks
  146.     draw_text( (10,320), "Upgrade", c_white )
  147.     x = 5
  148.     for t in tasks :
  149.         task = tasks[t]
  150.         upgrade = task["upgrade"]
  151.        
  152.         if money >= upgrade["cost"] :
  153.             color = task["color"]
  154.         else :
  155.             color = c_dgray
  156.        
  157.         upgrade["button"] = draw_button( (x,345), upgrade["cost"], color, size=(52,30), textColor=c_black )
  158.         x += 59
  159.    
  160.     # Managers buttons
  161.     draw_text( (10,385), "Buy managers", c_white )
  162.     x = 5
  163.     for m in managers :
  164.         manager = managers[m]
  165.        
  166.         if not manager["owned"] :
  167.             if money >= manager["cost"] :
  168.                 color = tasks[m]["color"]
  169.             else :
  170.                 color = c_dgray
  171.            
  172.             manager["buyButton"] = draw_button( (x,410), manager["cost"], color, size=(52,30), textColor=c_black )
  173.        
  174.         x += 59
  175.    
  176.     # Update display
  177.     pygame.display.flip()
  178.    
  179.     # Householding
  180.     timer.tick( framerate )
  181.  
  182. pygame.quit()
  183.  
  184.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement