JavaScript:
class Brain {
constructor() {
this.logicChobit = new Chobits();
this.emotion = "";
this.bodyInfo = "";
this.logicChobitOutput = "";
this.hardwareChobit = new Chobits();
this.ear = new Chobits(); // 120425 upgrade
this.skin = new Chobits();
this.eye = new Chobits();
Brain.imprintSoul(this.logicChobit.getKokoro(), this.hardwareChobit, this.ear, this.skin, this.eye);
}
static imprintSoul(kokoro, ...args) {
args.forEach(arg => {
arg.setKokoro(kokoro);
});
}
getEmotion() {
return this.emotion;
}
getBodyInfo() {
return this.bodyInfo;
}
getLogicChobitOutput() {
return this.logicChobitOutput;
}
doIt(ear, skin, eye) {
if (this.bodyInfo) {
this.logicChobitOutput = this.logicChobit.think(ear, this.bodyInfo, eye);
} else {
this.logicChobitOutput = this.logicChobit.think(ear, skin, eye);
}
this.emotion = this.logicChobit.getSoulEmotion();
this.bodyInfo = this.hardwareChobit.think(this.logicChobitOutput, skin, eye);
}
addLogicalSkill(skill) {
this.logicChobit.addSkill(skill);
}
addHardwareSkill(skill) {
this.hardwareChobit.addSkill(skill);
}
addEarSkill(skill) {
this.ear.addSkill(skill);
}
addSkinSkill(skill) {
this.skin.addSkill(skill);
}
addEyeSkill(skill) {
this.eye.addSkill(skill);
}
think(ear) {
if (ear) {
this.doIt(ear, "", "");
} else {
this.doIt(this.ear.think("", "", ""), this.skin.think("", "", ""), this.eye.think("", "", ""));
}
}
think() {
this.doIt(this.ear.think("", "", ""), this.skin.think("", "", ""), this.eye.think("", "", ""));
}
}