Sandbox: Difference between revisions

From TetrisWiki
Jump to navigation Jump to search
(Filling speed timing table, and add level & step formula)
(Update formulas and speed timing table)
Line 18: Line 18:
}}
}}


'''''Tromi''''' is a ''[[TGM]]'' fan game by Mycophobia. Its source code is heavily modified from the ''[[Cambridge]]'' source code.
'''''Tromi''''' is a fan game by Mycophobia. It's inspired by [[TGM1]] and is a heavy modification of ''[[Cambridge]]''. Designed to be an old-school flavour and relaxing game while modernising what is necessary to allow for modern gameplay.


== Gameplay ==
== Gameplay ==
Tromi's gameplay is inspired by [[TGM1#Gameplay|TGM1's one]], but there are noticeable differences in the rotation system and speed timings used.
===[[Gravity]]===
===[[Gravity]]===
Gravity increases uniformly, unlike TGM-series game; however it still depends on the current level.
Gravity increases uniformly, unlike TGM-series games; however, it still depends on the current level.


===Level===
===Level===
Unlike in [[TGM]], where level has [[TGM#Level|a unique implementation]], level in Tromi is based on your current score, and each level has 6 smaller steps.
Unlike in [[TGM]], where level has [[TGM#Level|a unique implementation]], level in Tromi is based on your current score, and each level has 6 smaller steps.


===IRS===
{{main|IRS}}
Abbreviation for Initial Rotation System.


'''''Example:''''' your current score is 250,000, corresponding to current level is 4 and your current step is 2.
Normally a piece will appear in the rotation showed in the [[piece preview]]. With IRS, holding either the left or right rotation button will cause the piece to appear rotated 90 degrees. This allows the player a higher degree of freedom when placing pieces at higher game speeds.


===IRS===
==Formulas==
{{placeholder}}
=== Level and step ===
: <math>\text{Level} = \text{Score} \div 60,000</math>
: <math>\text{Step} = \lfloor(\text{Score}\div 10,0000)\rfloor\bmod(\text{Level} \times 6) </math>
Where:
* <math>\lfloor(\text{Score} \div 10,000)\rfloor</math> is rounded down.
* Level is the current level the player is on (should only be in the range of 0 to 9).
* Score is the current score.
* Step is the remainder, which is the current step they are in at their current level (should only be in the range from 1 to 6).


==Formulas==
=== Scoring ===
=== Level and step===
{| class="wikitable floatright" border="2" cellpadding="2" cellspacing="0" style="margin-left:1em; margin-right:1em; background:#f9f9f9; border:3px #999999 solid; border-collapse:collapse;"
: <math>Level = Score \div 60,000</math>.
|+ Lines Bonus reward
: <math>Step = \lfloor(Score\div 10,0000)\rfloor\bmod(Level \times 6) </math>
|-
! Lines !! Reward (Points)
|-
| Double || 1,667
|-
| Triple || 3,750
|-
| Quad || 6,668
|-
| Pentad || 8,335
|}
: <math>\text{Score} = (\text{Moves} \div \text{[Active frames]}) \times (1666 \times \text{Lines}) + \text{[Lines Bonus]}</math>
Where:
Where:
* <math>\lfloor(Score \div 10,000)\rfloor</math> is rounded down
* Moves is the number of cells the piece moved (including manual moves, manual soft drops, and gravity).
* Level is the current level the player is on (should only be in range from 0 to 9)
* Active frames is the number of frames since the block spawned until the piece locked down.
* Score is the current score
* Lines is the number of lines just cleared by the active player.
* Step is the remainder, which is the current step they are in a level (should be only in range from 1 to 6)
* Lines Bonus is the extra bonus for clearing two or more lines. Look at the table on the right to calculate


==Speed timings==
==Speed timings==
<!--TABLE IN TABLE AHEAD!-->
{|
|-
<td>
{| class="wikitable" border="2" cellpadding="2" cellspacing="0" style="margin-top:1em; margin-bottom:1em; background:#f9f9f9; border:3px #999999 solid; border-collapse:collapse;"
{| class="wikitable" border="2" cellpadding="2" cellspacing="0" style="margin-top:1em; margin-bottom:1em; background:#f9f9f9; border:3px #999999 solid; border-collapse:collapse;"
|+
|+ Dynamic value
! style="background:#0DB2FF; color:black;" |Level
! style="background:#0DB2FF" |Level
! style="background:#00FFB7; color:black;" |Step
! style="background:#00FFB7" |Step
! style="background:#BBBBBB; color:black;" |[[Gravity]]<br>(G)
! style="background:#BBBBBB" |[[Gravity]]<br>(G)
! style="background:#FFA069; color:black;" |[[ARE]]<br>(frame)
! style="background:#FFA069" |[[ARE]]<br>(frame)
! style="background:#CC88FF; color:black;" |[[Lock delay|Lock]]<br>(frame)
! style="background:#CC88FF" |[[Lock delay|Lock]]<br>(frame)
! style="background:#FFFF55; color:black;" |[[DAS]]<br>(frame)
! style="background:#FFFF55" |[[DAS]]<br>(frame)
! style="background:#0DB2FF; color:black;" |Level
! style="background:#0DB2FF" |Level
! style="background:#00FFB7; color:black;" |Step
! style="background:#00FFB7" |Step
! style="background:#BBBBBB; color:black;" |[[Gravity]]<br>(G)
! style="background:#BBBBBB" |[[Gravity]]<br>(G)
! style="background:#FFA069; color:black;" |[[ARE]]<br>(frame)
! style="background:#FFA069" |[[ARE]]<br>(frame)
! style="background:#CC88FF; color:black;" |[[Lock delay|Lock]]<br>(frame)
! style="background:#CC88FF" |[[Lock delay|Lock]]<br>(frame)
! style="background:#FFFF55; color:black;" |[[DAS]]<br>(frame)
! style="background:#FFFF55" |[[DAS]]<br>(frame)
|- align = center
|- align = center
| rowspan="6" bgcolor="#8AD2FF" | 0
| rowspan="6" bgcolor="#8AD2FF" | 0
Line 381: Line 404:
| bgcolor = "#C8FFF6" | 6
| bgcolor = "#C8FFF6" | 6
|}
|}
</td>
<td style="vertical-align: top; border: 3px; padding-left: 1em">
{| class="wikitable"
|+ Fixed value
! style="background:#0DB2FF" align = "center" |'''Mode'''
! style="background:#00FFB7" align = "center" |'''Normal'''
! style="background:#FFA069" align = "center" |'''20G training'''
|-
| ARR || align = "center" colspan="2"| 1
|-
| Drop || align = "center" colspan="2"| 1
|-
| DAS cut || align = "center" colspan="2" | 0
|-
| DAS || || align = "center" | 8
|-
| Lock || || align = "center" | 99999999999
|-
| Gravity || || align = center | 20
|-
| ARE || || align = "center" | 20
|-
! style="background:#BBBBBB" align = "center" |'''NOTE'''
| colspan = "2" |Empty cells mean the value will change depending on the current level<br>If you want to look up these values, please look at the table on the left.
|}
</td>
|}


<!--
<!--

Revision as of 13:30, 30 April 2024

Ambox stub.svg
This article is a stub. You can help TetrisWiki by expanding it.
Sandbox
Developer(s)mycophobia
Platform(s)LÖVE
Release
  • First release / Version 1 : December 26, 2022
  • Official release / Version 2 : April, 08 2024
Latest releaseApril 25, 2024 (Version 2.2)
Gameplay info
Next pieces1
Playfield size20 × 10
Hold pieceNo
Hard dropYes (Sonic Drop)
Rotation systemARS (modified)
Tromi ingame.jpg

Tromi is a fan game by Mycophobia. It's inspired by TGM1 and is a heavy modification of Cambridge. Designed to be an old-school flavour and relaxing game while modernising what is necessary to allow for modern gameplay.

Gameplay

Gravity

Gravity increases uniformly, unlike TGM-series games; however, it still depends on the current level.

Level

Unlike in TGM, where level has a unique implementation, level in Tromi is based on your current score, and each level has 6 smaller steps.

IRS

Main article: IRS

Abbreviation for Initial Rotation System.

Normally a piece will appear in the rotation showed in the piece preview. With IRS, holding either the left or right rotation button will cause the piece to appear rotated 90 degrees. This allows the player a higher degree of freedom when placing pieces at higher game speeds.

Formulas

Level and step

Where:

  • is rounded down.
  • Level is the current level the player is on (should only be in the range of 0 to 9).
  • Score is the current score.
  • Step is the remainder, which is the current step they are in at their current level (should only be in the range from 1 to 6).

Scoring

Lines Bonus reward
Lines Reward (Points)
Double 1,667
Triple 3,750
Quad 6,668
Pentad 8,335

Where:

  • Moves is the number of cells the piece moved (including manual moves, manual soft drops, and gravity).
  • Active frames is the number of frames since the block spawned until the piece locked down.
  • Lines is the number of lines just cleared by the active player.
  • Lines Bonus is the extra bonus for clearing two or more lines. Look at the table on the right to calculate

Speed timings

Dynamic value
Level Step Gravity
(G)
ARE
(frame)
Lock
(frame)
DAS
(frame)
Level Step Gravity
(G)
ARE
(frame)
Lock
(frame)
DAS
(frame)
0 1 0.013 20 30 12 5 1 0.842 20 30 12
2 0.015 20 30 12 2 1.029 20 30 12
3 0.016 20 30 12 3 1.323 20 30 12
4 0.018 20 30 12 4 1.852 20 30 11
5 0.021 20 30 12 5 3.086 20 30 10
6 0.025 20 30 12 6 9.259 20 30 9
1 1 0.027 20 30 12 6 1 20 20 30 8
2 0.030 20 30 12 2 20 20 30 8
3 0.033 20 30 12 3 20 19 28 8
4 0.038 20 30 12 4 20 18 27 8
5 0.043 20 30 12 5 20 17 26 8
6 0.051 20 30 12 6 20 17 25 8
2 1 0.056 20 30 12 7 1 20 16 24 8
2 0.062 20 30 12 2 20 16 23 8
3 0.070 20 30 12 3 20 15 23 8
4 0.079 20 30 12 4 20 15 22 8
5 0.092 20 30 12 5 20 14 21 8
6 0.109 20 30 12 6 20 14 21 8
3 1 0.120 20 30 12 8 1 20 14 20 8
2 0.134 20 30 12 2 20 13 20 8
3 0.152 20 30 12 3 20 13 20 8
4 0.175 20 30 12 4 20 13 19 8
5 0.206 20 30 12 5 20 13 19 8
6 0.250 20 30 12 6 20 13 19 8
4 1 0.281 20 30 12 9 1 20 12 18 8
2 0.319 20 30 12 2
3 0.370 20 30 12 3
4 0.441 20 30 12 4
5 0.545 20 30 12 5
6 0.712 20 30 12 6
Fixed value
Mode Normal 20G training
ARR 1
Drop 1
DAS cut 0
DAS 8
Lock 99999999999
Gravity 20
ARE 20
NOTE Empty cells mean the value will change depending on the current level
If you want to look up these values, please look at the table on the left.


External links