Update Beta21-p1.4

This commit is contained in:
LingASDJ 2022-09-18 23:39:28 +08:00
parent c235e3384a
commit 4709a3dbed
10 changed files with 108 additions and 46 deletions

View File

@ -94,7 +94,7 @@ items.quest.skeletongold.preventing=这里还没有寻找到强大的魔力流
items.quest.skeletongold.wow=染血金币发出诡异的光芒,你感到下层正在分崩离析……
items.weapon.melee.endingblade.name=终焉
items.weapon.melee.endingblade.desc=不知道从哪来的一个拆开的场记板,貌似沾染了焰之诅咒,有着强大的侵蚀能力。\n\n这个武器在攻击敌人的时候有概率造成_即死_效果,在汲取一定魔力后会产生新的能力。
items.weapon.melee.endingblade.desc=不知道从哪来的一个拆开的场记板,貌似沾染了焰之诅咒,会随机产生_一种诅咒_有着强大的侵蚀能力一旦装备了它就无法脱身了……\n\n这个武器在攻击敌人的时候能吸收一定的浊焰能量,在汲取一定的浊焰能量后会产生新的能力以及自我升级。\n\n当前的浊焰能量:
items.weapon.melee.endingblade.cursed=当你装备上这个武器后,一股无形的力量将你束缚住……
items.weapon.melee.endingblade.donot_eqip=终焉的诅咒已经浸染你的身体,你无力脱下它。
@ -285,7 +285,7 @@ items.weapon.melee.runicblade.desc=这把武器据说曾经是300年前贤者使
\n,
items.weapon.melee.locksword.name=钥匙剑
items.weapon.melee.locksword.desc=来自遥远童话国度的一把失落神剑,形态像是巨大化的钥匙。据说这把剑能够通过战斗的积累而改变外貌,不知道是否真实。
items.weapon.melee.locksword.desc=来自遥远童话国度的一把失落神剑,形态像是巨大化的钥匙。据说这把剑能够通过战斗的积累而改变外貌,不知道是否真实。\n\n武器的战斗经验:
items.weapon.melee.locksword.stats_desc=这把武器会在攻击时不断积累经验,到达一定阶段时会变化造型,并赋予或加强紊乱附魔的效果与增加固定伤害值。
items.weapon.melee.boomsword.name=炸弹匕首
@ -469,10 +469,12 @@ items.artifacts.chaliceofblood.prick_warn=每次使用圣杯都会消耗更多
items.artifacts.chaliceofblood.onprick=你刺破了自己的手指,使你的生命精华流入了圣杯。
items.artifacts.chaliceofblood.ondeath=圣杯将你的生命精华吸噬殆尽了…
items.artifacts.chaliceofblood.desc=这个闪闪发光的银质酒杯在边沿突兀地装饰着几颗造型尖锐的宝石。
items.artifacts.chaliceofblood.desc_cursed=被诅咒的圣杯将自己固定在你手上,抑制着你回复生命的能力。a
items.artifacts.chaliceofblood.desc_cursed=被诅咒的圣杯将自己固定在你手上,抑制着你回复生命的能力。
items.artifacts.chaliceofblood.desc_1=握住圣杯的那一刻,你涌起一股想在那些尖锐宝石上刺伤自己的奇特冲动。
items.artifacts.chaliceofblood.desc_2=你的一些血液汇集到圣杯里,你可以隐约感受到杯子在为你送来生命能量。你还想用圣杯继续割伤自己,即便你知道那很疼。
items.artifacts.chaliceofblood.desc_3=圣杯已经被你的生命精华填满。你可以感觉到圣杯正将生命能量倾泻般回馈给你。
items.artifacts.chaliceofblood.desc_4=\n\n圣杯下次会造成的理论最高伤害为:
items.artifacts.chaliceofblood.desc_5=\n\n圣杯造成的伤害可被各种形式的防御抵消伤害。注0级圣杯造成的伤害为1!
items.artifacts.cloakofshadows.name=暗影斗篷
items.artifacts.cloakofshadows.ac_stealth=潜行
@ -2003,7 +2005,6 @@ items.weapon.weapon.identify=你对手中的武器已经足够熟悉并将其完
items.weapon.weapon.too_heavy=因为你的力量不足,该武器会降低你的攻速和精准,并让你无法偷袭。
items.weapon.weapon.excess_str=你的额外力量让你在使用这件武器时最多能够造成_%d点额外伤害_。
items.weapon.weapon.incompatible=不同属性的魔法相冲突,消除了武器上的附魔!
items.weapon.weapon.nxt_cursed=净化的光芒闪过,但终焉上面的诅咒仍然没有被解除……
items.weapon.weapon.cursed_worn=由于这件武器被诅咒,你无法将其放下。
items.weapon.weapon.cursed=你能感觉到这件武器里潜伏着一股充满恶意的魔力。
items.weapon.weapon.not_cursed=这件武器没有被诅咒。

View File

@ -3,6 +3,12 @@ windows.wndsettings$extendtab.splash_screen=启动界面
windows.wndsettings$extendtab.disable=关闭
windows.wndsettings$extendtab.full=开启
scenes.gamescene.go_here=前往这里
scenes.gamescene.examine=调查这里
scenes.gamescene.interact=与之对话
scenes.gamescene.pick_up=拾取此物
scenes.gamescene.snowcynon=你现在的当前位置:雪凛峡谷
scenes.gamescene.descend=你降入了地牢的第%d层。
scenes.titlescene.spawnerror=楼层生成错误!!!

View File

@ -54,6 +54,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.Waterskin;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.ChaliceOfBlood;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose;
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.EtherealChains;
@ -85,7 +86,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLightningS
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlame;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfLiquidFlameX;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMindVision;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.WaterSoul;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfDragonKingBreath;
@ -119,7 +119,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BlackDog;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.EndingBlade;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.FireFishSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gauntlet;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.GreenSword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.IceFishSword;
@ -180,7 +179,7 @@ public enum HeroClass {
new FireFishSword().quantity(1).identify().collect();
new LaserPython().quantity(100).identify().collect();
new PotionOfInvisibility().quantity(45).identify().collect();
new PotionOfPurity().quantity(45).identify().collect();
new LockSword().quantity(1).identify().collect();
Buff.affect(hero, ChampionHero.AntiMagic.class, 50000f);
new AlchemicalCatalyst().quantity(45).identify().collect();
new EtherealChains().quantity(1).identify().collect();
@ -188,7 +187,7 @@ public enum HeroClass {
new ScrollOfTransmutation().quantity(45).identify().collect();
new BeaconOfReturning().quantity(11).identify().collect();
new WarHammer().quantity(1).identify().collect();
new Gauntlet().quantity(1).identify().collect();
new ChaliceOfBlood().quantity(1).identify().collect();
new Firebloom.Seed().quantity(50).identify().collect();
new Blindweed.Seed().quantity(50).identify().collect();
new StoneOfFlock().quantity(50).identify().collect();
@ -226,7 +225,6 @@ public enum HeroClass {
new RedBloodMoon().quantity(1).identify().collect();
new KingBag().quantity(1).identify().collect();
new PotionOfLiquidFlameX().quantity(100).identify().collect();
new LockSword().quantity(1).identify().collect();
new YellowSunBooks().quantity(1).identify().collect();
new BrokenBooks().quantity(1).identify().collect();
new DeepBloodBooks().quantity(1).identify().collect();
@ -263,6 +261,9 @@ public enum HeroClass {
i = new Food();
//new EndingBlade().quantity(1).identify().collect();
//new ChaliceOfBlood().quantity(1).identify().collect();
new HerbBag().quantity(1).identify().collect();
new PotionOfHealing().quantity(3).identify().collect();

View File

@ -21,6 +21,8 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs;
import static com.shatteredpixel.shatteredpixeldungeon.Dungeon.hero;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
@ -43,6 +45,7 @@ import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest;
@ -67,7 +70,7 @@ public class Ghost extends NPC {
@Override
protected boolean act() {
if (Quest.processed()) {
target = Dungeon.hero.pos;
target = hero.pos;
}
if (Dungeon.level.heroFOV[pos] && !Quest.completed()){
Notes.add( Notes.Landmark.GHOST );
@ -109,7 +112,7 @@ public class Ghost extends NPC {
Sample.INSTANCE.play( Assets.Sounds.GHOST );
if (c != Dungeon.hero){
if (c != hero){
return super.interact(c);
}
@ -164,13 +167,13 @@ public class Ghost extends NPC {
switch (Quest.type){
case 1: default:
questBoss = new FetidRat();
txt_quest = Messages.get(this, "rat_1", Dungeon.hero.name()); break;
txt_quest = Messages.get(this, "rat_1", hero.name()); break;
case 2:
questBoss = new GnollTrickster();
txt_quest = Messages.get(this, "gnoll_1", Dungeon.hero.name()); break;
txt_quest = Messages.get(this, "gnoll_1", hero.name()); break;
case 3:
questBoss = new GreatCrab();
txt_quest = Messages.get(this, "crab_1", Dungeon.hero.name()); break;
txt_quest = Messages.get(this, "crab_1", hero.name()); break;
}
questBoss.pos = Dungeon.level.randomRespawnCell( this );
@ -310,17 +313,24 @@ public class Ghost extends NPC {
Generator.Category c = Generator.wepTiers[wepTier - 1];
weapon = (MeleeWeapon) Reflection.newInstance(c.classes[Random.chances(c.probs)]);
//50%:+0, 30%:+1, 15%:+2, 5%:+3
//30%:+0, 25%:+1, 15%:+2, 10%:+3, 15%:+4, 5%+5
float itemLevelRoll = Random.Float();
int itemLevel;
if (itemLevelRoll < 0.5f){
if (itemLevelRoll < 0.1f){
itemLevel = 0;
} else if (itemLevelRoll < 0.8f){
} else if (itemLevelRoll < 0.75f){
itemLevel = 1;
} else if (itemLevelRoll < 0.95f){
} else if (itemLevelRoll < 0.85f){
itemLevel = 2;
} else {
} else if (itemLevelRoll < 0.90f) {
itemLevel = 3;
hero.sprite.showStatus( CharSprite.NEGATIVE, "+3!!!" );
} else if (itemLevelRoll < 0.95f){
hero.sprite.showStatus( CharSprite.POSITIVE, "+5!!!" );
itemLevel = 5;
} else {
itemLevel = 4;
hero.sprite.showStatus( CharSprite.WARNING, "+4!!!" );
}
weapon.upgrade(itemLevel);
armor.upgrade(itemLevel);

View File

@ -167,8 +167,8 @@ public class ChaliceOfBlood extends Artifact {
desc += Messages.get(this, "desc_2");
else
desc += Messages.get(this, "desc_3");
}
}
desc += Messages.get(this, "desc_4")+"_"+3*(level()*level())+"_"+Messages.get(this, "desc_5");
return desc;
}

View File

@ -5,6 +5,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.bombs.LaserPython;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazing;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Kinetic;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Shocking;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@ -17,6 +22,7 @@ public class EndingBlade extends Weapon {
image = ItemSpriteSheet.ENDDIED;
tier = 4;
cursed = true;
enchant(Enchantment.randomCurse());
}
//三大基础静态固定字节
@ -44,21 +50,24 @@ public class EndingBlade extends Weapon {
private boolean firstx=true;
private static final String FIRST = "first";
private static final String INTRPS = "intrps";
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put(FIRST, firstx);
bundle.put(INTRPS, fireenergy);
}
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
firstx = bundle.getBoolean(FIRST);
fireenergy = bundle.getInt(INTRPS);
}
public String desc() {
return Messages.get(this, "desc")+"\n\n"+fireenergy;
return Messages.get(this, "desc")+"_"+fireenergy+"_";
}
//每100点浊焰能量自动升级
@ -96,24 +105,49 @@ public class EndingBlade extends Weapon {
@Override
public int STRReq(int C) {
return 15+level;
return 15+fireenergy/100;
}
public int proc(Char attacker, Char defender, int damage ) {
//常规加+1浊焰能量
++this.fireenergy;
++fireenergy;
int dmg;
if(level >= 10){
fireenergy += 0;
//武器最高级
} else if(defender.properties().contains(Char.Property.BOSS) && defender.HP <= damage){
//目标Boss血量小于实际伤害判定为死亡,+20浊焰能量
this.fireenergy+=20;
fireenergy+=20;
} else if(defender.properties().contains(Char.Property.MINIBOSS) && defender.HP <= damage){
//目标迷你Boss血量小于实际伤害判定为死亡,+10浊焰能量
this.fireenergy+=10;
fireenergy+=10;
} else if (defender.HP <= damage){
//目标血量小于实际伤害判定为死亡,+5浊焰能量
this.fireenergy+=5;
fireenergy+=5;
}
/*
* 10级 死神附魔
* 8级 紊乱附魔
* 6级 电击附魔
* 4级 烈焰附魔
* 2级 恒动附魔
*/
if(level>= 10){
dmg = (new Grim()).proc(this, attacker, defender, damage) + 5;
damage = dmg;
} else if (level>= 8) {
dmg = (new Unstable()).proc(this, attacker, defender, damage) + 4;
damage = dmg;
} else if (level>= 6){
dmg = (new Shocking()).proc(this, attacker, defender, damage) + 3;
damage = dmg;
} else if (level>= 4){
dmg = (new Blazing()).proc(this, attacker, defender, damage) + 2;
damage = dmg;
} else if (level>= 2){
dmg = (new Kinetic()).proc(this, attacker, defender, damage) + 1;
damage = dmg;
}
return super.proc(attacker, defender, damage);
@ -175,11 +209,15 @@ public class EndingBlade extends Weapon {
@Override
public int min(int lvl) {
return 10;
return 10+(lvl*2)*(Dungeon.hero.lvl/10);
//10+20x3=70
}
@Override
public int max(int lvl) {
return 15;
return 15+(lvl*3)*(Dungeon.hero.lvl/10);
//15+30x3=15+90=105
}
//Max 70~105
}

View File

@ -12,6 +12,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RandomBuff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Unstable;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.utils.Bundle;
@ -31,6 +32,10 @@ public class LockSword extends MeleeWeapon {
}
public String desc() {
return Messages.get(this, "desc")+"_"+lvl+"_";
}
public int image() {
if (this.level() == 3 && Dungeon.hero.buff(RandomBuff.class) != null){
//GLog.n("谢谢你为我升级……");

View File

@ -53,7 +53,7 @@ public class ThanksScene extends PixelScene {
,
null,
null);
mispd.setRect((w - fullWidth)/2f, 120, 120, 0);
mispd.setRect((Camera.main.width - colWidth)/2f-10, 120, colWidth+20, 0);
content.add(mispd);
//*** Musics Used ***
@ -65,7 +65,7 @@ public class ThanksScene extends PixelScene {
,
null,
null);
musicUsed.setRect((w - fullWidth)/2f, mispd.bottom()+6, 120, 0);
musicUsed.setRect((Camera.main.width - colWidth)/2f-10, mispd.bottom()+6, colWidth+20, 0);
content.add(musicUsed);
CreditsBlock ptr = new CreditsBlock(true, 0x39aae5,
@ -74,7 +74,7 @@ public class ThanksScene extends PixelScene {
"Developed by: _Jinkeloid_",
null,
null);
ptr.setRect((w - fullWidth)/2f, musicUsed.bottom()+6, 120, 0);
ptr.setRect((Camera.main.width - colWidth)/2f-10, musicUsed.bottom()+6, colWidth+20, 0);
content.add(ptr);
//*** Special Thanks ***
@ -84,7 +84,7 @@ public class ThanksScene extends PixelScene {
null,
null,
null);
specialThanks.setRect((w - fullWidth)/2f, ptr.bottom()+6, 120, 0);
specialThanks.setRect((Camera.main.width - colWidth)/2f-10, ptr.bottom()+6, colWidth+20, 0);
content.add(specialThanks);
CreditsBlock specialThanksB = new CreditsBlock(true, 0xbe8e6e,
@ -93,7 +93,7 @@ public class ThanksScene extends PixelScene {
null,
null,
null);
specialThanksB.setRect((w - fullWidth)/2f, specialThanks.bottom()+6, 120, 0);
specialThanksB.setRect((Camera.main.width - colWidth)/2f-10, specialThanks.bottom()+6, colWidth+20, 0);
content.add(specialThanksB);
//*** Shattered Pixel Dungeon Credits ***
@ -104,7 +104,7 @@ public class ThanksScene extends PixelScene {
"Developed by: _Evan Debenham_\nBased on Pixel Dungeon's open source",
null,
null);
shpx.setRect((w - fullWidth)/2f, specialThanksB.bottom()+6, 120, 0);
shpx.setRect((Camera.main.width - colWidth)/2f-10, specialThanksB.bottom()+6, colWidth+20, 0);
content.add(shpx);
addLine(shpx.top() - 4, content);
@ -158,9 +158,9 @@ public class ThanksScene extends PixelScene {
"加入碳化总群",
"https://jq.qq.com/?_wv=1027&k=6jAlnlNL");
if (landscape()){
evan.setRect(shpx.left(), reddragon.bottom() + 8, colWidth, 0);
evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0);
} else {
evan.setRect(shpx.left(), reddragon.bottom() + 8, colWidth, 0);
evan.setRect((Camera.main.width - colWidth)/2f-10, reddragon.bottom() + 8, colWidth+20, 0);
}
content.add(evan);
@ -173,9 +173,9 @@ public class ThanksScene extends PixelScene {
null,
null);
if (landscape()){
wata.setRect(shpx.left(), evan.bottom() + 8, colWidth, 0);
wata.setRect((Camera.main.width - colWidth)/2f-10, evan.bottom() + 8, colWidth+20, 0);
} else {
wata.setRect(shpx.left(), evan.bottom() + 8, colWidth, 0);
wata.setRect((Camera.main.width - colWidth)/2f-10, evan.bottom() + 8, colWidth+20, 0);
}
content.add(wata);
@ -187,9 +187,9 @@ public class ThanksScene extends PixelScene {
"加入QQ魔绫开发总群",
"https://jq.qq.com/?_wv=1027&k=wzMjU0f7");
if (landscape()){
wata2.setRect(shpx.left(), wata.bottom() + 20, colWidth, 0);
wata2.setRect((Camera.main.width - colWidth)/2f-10, wata.bottom() + 20, colWidth+20, 0);
} else {
wata2.setRect(shpx.left(), wata.bottom() + 20, colWidth, 0);
wata2.setRect((Camera.main.width - colWidth)/2f-10, wata.bottom() + 20, colWidth+20, 0);
}
content.add(wata2);
@ -203,9 +203,9 @@ public class ThanksScene extends PixelScene {
"Pixel Dungeon Discord Server",
"https://discord.gg/47bguQtcwZ");
if (landscape()){
wata3.setRect(shpx.left(), wata2.bottom() + 18, colWidth, 0);
wata3.setRect((Camera.main.width - colWidth)/2f-10, wata2.bottom() + 18, colWidth+20, 0);
} else {
wata3.setRect(shpx.left(), wata2.bottom() + 18, colWidth, 0);
wata3.setRect((Camera.main.width - colWidth)/2f-10, wata2.bottom() + 18, colWidth+20, 0);
}
content.add(wata3);

View File

@ -225,7 +225,7 @@ public class Toolbar extends Component {
@Override
protected void layout() {
final int maxHorizontalQuickslots = PixelScene.landscape() ? 5 : 3;
final int maxHorizontalQuickslots = PixelScene.landscape() ? 12 : 3;
float right = width;
if (SPDSettings.interfaceSize() > 0){
btnInventory.setPos(right - btnInventory.width(), y);

View File

@ -74,13 +74,14 @@ public class WndTextInput extends Window {
final RenderedTextBlock txtBody = PixelScene.renderTextBlock(body, 6);
txtBody.maxWidth(width);
txtBody.setPos(0, pos);
add(txtBody);
pos = txtBody.bottom() + 2 * MARGIN;
}
int textSize = (int)PixelScene.uiCamera.zoom * (multiLine ? 6 : 9);
textBox = new TextInput(Chrome.get(Chrome.Type.TOAST_WHITE), multiLine, textSize){
textBox = new TextInput(Chrome.get(Chrome.Type.SCROLL), multiLine, textSize){
@Override
public void enterPressed() {
//triggers positive action on enter pressed, only with non-multiline though.
@ -96,7 +97,7 @@ public class WndTextInput extends Window {
if (multiLine) {
inputHeight = 64; //~8 lines of text
} else {
inputHeight = 16;
inputHeight = 36;
}
add(textBox);
textBox.setRect(MARGIN, pos, width-2*MARGIN, inputHeight);