Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class bb_numinterpolator : object
- {
- int mCurrentValue;
- int mMaxChange;
- private bool negative;
- private String numString;
- private String buildingString;
- private int curPlace;
- static bb_numinterpolator Create(int startval, int maxchange)
- {
- let v = new("bb_numinterpolator");
- v.mCurrentValue = startval;
- v.mMaxChange = maxchange;
- return v;
- }
- void Reset(int value)
- {
- mCurrentValue = value;
- }
- void Update(int destvalue)
- {
- numString = String.format("%d", abs(destvalue));
- if (mCurrentValue > destvalue)
- {
- //
- // don't interpolate decrementing values.
- mCurrentValue = destvalue;
- }
- else
- {
- String operatingChar = numString.charAt(curPlace);
- int operatingInt = operatingChar.toInt();
- if (operatingInt <= buildingString.charAt(curPlace).toInt()) curPlace++;
- int buildingInt = buildingString.toInt();
- int intLength = numString.length();
- if (numString.toInt() < 0) intLength--;
- buildingInt += 10 ** (intLength - curPlace - 1);
- mCurrentValue += buildingInt;
- }
- }
- int GetValue()
- {
- return mCurrentValue;
- }
- }
- // defined in the namespace of bb_hud
- bb_numinterpolator bb_echointerpolator;
- // called in Init();
- bb_echointerpolator = bb_numinterpolator.Create(0,1);
- // called in NewGame();
- bb_echointerpolator.Reset(0);
- //called in Tick();
- bb_echointerpolator.Update(CPlayer.mo.CountInv("bb_BloodEchoes"));
- //called in Draw();
- DrawString(bb_numfont, FormatNumber(bb_echointerpolator.GetValue(),9), (-38,26), DI_TEXT_ALIGN_RIGHT|DI_SCREEN_RIGHT_TOP,font.CR_WHITE);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement