U
    <"Wb*                     @   s@  d dl Z d dlZd dlZdZdZdZdZdZdZdZ	d Z
d	Zd
Zd	ZdZg addddddgZg ZddddddddddddddgZG d d! d!Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- ZdGd/d0ZdHd1d2ZdId3d4Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$e%dEkr<d dFl&m'Z' e'e$  dS )J    Nz192.168.50.101Z8088   	teamTitlezD:\video_projects\midnightguns\z	blank.pngz	splat.pngz	%23333333z	%23ffffffz	%23ff011dnamekillshealthdeaths	throwable
heldWeapon-ZPISTOLZM4ZMP5ZSNIPERZSHOTGUNZ
HANDCANNONZCARBINEzTHROWING KNIFEzHOCKEY STICKZMOLOTOVZDYNAMITEzFIRE AXEZBOWc                   @   s   e Zd Zdd ZdS )TeamDatac                 C   s   || _ g | _d S N)numberplayers)selfr    r   JC:\Users\jehar\Pictures\MidnightGuns\midnight-guns\utilities\vmixoutput.py__init__   s    zTeamData.__init__N)__name__
__module____qualname__r   r   r   r   r   r      s   r   c                 C   s(   d tt| ||}t| t| d S )NzIhttp://{}:{}/api/?Function=SetText&Input={}&SelectedName={}.Text&Value={}formatvmixHostvmixPortprintrequestsget)titleIdZsubTitledata
requestStrr   r   r   updateTitle    s    r    c                 C   s(   d tt| ||}t| t| d S )NzLhttp://{}:{}/api/?Function=SetImage&Input={}&SelectedName={}.Source&Value={}r   )r   ZimageIdr   r   r   r   r   updateTitleImage%   s    r!   c                 C   s6  t tdkrHt  tD ],}|j| d kr|j|  t| d  qDqd S t| d }|d dkrtD ]0}|j| d krd|j|  t  t	d  qqdn|d | d krt|  nt|d  j|d  }|
|  t|d  jt|d  j|d   t  tD ](}|j| d kr|j|  q,qt  d S )	Nr   teamT	playerNum   Zstopping   )lenteams
setupTeamsr   r   appendupdateAssignedPlayerTitlelookupPlayerNumupdateAllTitlesr   updateremoveclearTitles)
playerDatar"   ZisInTeamZmigratingPlayerr   r   r   setupPlayer*   s8    


&
r2   c                 C   s&   d}t D ]}|j| krt |}q|S )Nr%   )r(   index)ZteamNumreturnValuer"   r   r   r   
lookupTeamM   s
    
r5   c                 C   sp   ddddg}t tD ]V\}}t |jD ]B\}}| |d kr&||d< |j|d< ||d< ||d< |    S q&q|S )Nr%   r#   r   r$   r&      )	enumerater(   r   r   )Z	playernumr4   Z	teamindexr"   r3   playerr   r   r   r,   T   s    
r,   c                  C   s"   t d} t d}| |gat  d S )Nr$   r&   )r   r(   r0   )Zteam1PlayersZteam2Playersr   r   r   r)   a   s    r)   Fc                 C   s   d}t t|d  }dtgdtgdtgg}d| krt| |d}|D ]r}|dksV|dkrB| d dkrt|d }d| d< nt}d	t|d
  |d  }	dtt||	|}
t	|
 t
|
 qBd S )N r$   r   r   
healthIcon	deadFlagsTr   pr&   Ohttp://{}:{}/api/?Function=SetTextColour&Input={}&SelectedName={}.Text&Value={})baseTitleNamestr	deadColorinactiveColorcheckNewData
aliveColorr   r   r   r   r   r   r1   ZteamDataZ
storedDatanewPlayerRegZnewColorr   ZplayerTitles	dataIsNewtitleZplayerTitler   r   r   r   checkDeadNameh   s    
rH   c                 C   s   d}t t|d  }dtgdtgg}d| krt| |d}|D ]j}|dksP|dkr<| d dkrf|d }nt}dt|d	  |d  }	d
tt||	|}
t|
 t	
|
 q<d S )Nr9   r$   r   r:   bleedingAmountTr   r<   r&   r=   )r>   r?   
bleedColorrB   rC   r   r   r   r   r   r   rD   r   r   r   checkBleeding{   s    
rK   c           	      C   sL  t | d }|d dkrHt|d  j|d  }|d }t| ||| t| ||| tD ]}|| krX|}| | }t| ||}|dks|dkrX|dkrttt	|d  dt	| | t
t	| d	  nj|d
krt| |}ttt	|d  dt	| | t
t	| d	  n$ttt	|d  dt	| | | | | ||< qX||  d S )Nr#   r   r%   r&   Tr   r$   r<   z.pngr	   )r,   r(   r   rK   rH   
updateKeysrB   r!   r>   r?   imagePathBaseProcessHeldWeaponr    r.   )	r1   rE   ZplayerIndexstoredPlayerDataZpIndexkeyZpTitleZpValuerF   r   r   r   r+      s(    2

2$r+   c                 C   sv   || s| | ||< dS |dkrZ| | || krZ| d |d krT| d |d krTdS dS n| | || krndS dS d S )NTr	   weapon1weapon2Fr   )r1   rO   ZkeyToComparer   r   r   rB      s     rB   c                 C   s   t t|  S r   )weaponStringsint)inputStringr   r   r   ProcessThrowable   s    rV   c                 C   s:   t d|| d | d  t|dkr.| d S | d S d S )Nz/n TRYING TO MAP {} to {} or {}rQ   rR   r   )r   r   rT   )r1   rU   r   r   r   rN      s    rN   c                  C   s$   t D ]} | jD ]}t|d qqd S )NT)r(   r   r+   )r"   r8   r   r   r   r-      s    
r-   c                  C   s   dddddg} t D ]}dttdt|j tt}t| t	| t
d ttD ]H}| D ]>}d	ttdt|j d
t| | t}t| t	| q`qXqt
d d S )Nr   r   r   r   r:   z>http://{}:{}/api/?Function=SelectTitlePreset&Input={}&Value={}r   r&   r=   r<   r$   )r(   r   r   r   r?   r   blankPresetr   r   r   timesleeprangeteamSizerA   )ZresetColorKeysr"   r   irP   r   r   r   r0      s    

(r0   c                 C   s@   | }ddddddddddd
}|  D ]\}}|||}q&|S )Nr9   )
z^1z^2z^3z^4z^5z^6z^7z^8z^9z^0)itemsreplace)rU   ZreturnStringZchar_to_replacerP   valuer   r   r   scrubPlayerName   s
    r`   c                 C   sB   d| krt | d | d< d| kr6| d dkr>t|  nt|  d S )Nr   r"   r   )r`   r2   r+   )r1   r   r   r   processPlayerInputStream   s    
ra   c                  C   sn   g } |  td |  td tD ]@}td|jdt|jd |jD ]}t|d |d |d  qJq(d S )	Na>  {"packetType": "PLAYERINFO", "playerNum": 1, "updateFlags": 65535, "name": "reki", "team": 1, "health": 1, "bleedingAmount": 0, "deadFlags": 0, "selectedWeapon": 0, "weapon1": 4, "weapon2": 1, "throwable": 8, "itemA": 2, "itemB": 20, "ammo1": 11, "ammo2": 8, "mags1": 6, "mags2": 2, "score": 0, "kill": 0, "deaths": 0}aL  {"packetType": "PLAYERINFO", "playerNum": 4, "updateFlags": 65535, "name": "rekis best friend", "team": 1, "health": 19, "bleedingAmount": 0, "deadFlags": 0, "selectedWeapon": 0, "weapon1": 4, "weapon2": 1, "throwable": 8, "itemA": 2, "itemB": 20, "ammo1": 22, "ammo2": 8, "mags1": 6, "mags2": 2, "score": 0, "kill": 0, "deaths": 0}ZTeam,r   r   r#   r"   )r*   jsonloadsr(   r   r   r'   r   )Z	testDictsr"   r8   r   r   r   main   s    
re   __main__)exit)F)F)F)(r   rc   rX   r   r   r[   r>   rM   ZblankImageNameZdeathImageNamerW   r@   rC   rA   rJ   r(   rL   ZimageUpdateKeysrS   r   r    r!   r2   r5   r,   r)   rH   rK   r+   rB   rV   rN   r-   r0   r`   ra   re   r   sysrg   r   r   r   r   <module>   sN    #


	
