Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

Commit

Permalink
Merge branch feature/level-cookies into main (#96)
Browse files Browse the repository at this point in the history
* Cookie Management started

* Implement level cookies

- Implement cookie for solving level 1
- Implement cookie for solving level 2
- Implement cookie for solving level 3
- Implement cookie for solving level 4
- Implement usage of cookies in LevelOverview scene
- Adapted element classes

---------

Co-authored-by: Quadral1403 <[email protected]>
  • Loading branch information
Kitt3120 and Quadral1403 committed Jun 18, 2023
1 parent 1ef1dd6 commit c729d20
Show file tree
Hide file tree
Showing 11 changed files with 233 additions and 78 deletions.
8 changes: 4 additions & 4 deletions src/ts/engine/scene/element.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,31 @@ class Element extends Rectangle {
return this._background;
}

protected set background(value: string | CanvasGradient | CanvasPattern) {
public set background(value: string | CanvasGradient | CanvasPattern) {
this._background = value;
}

public get border(): string | CanvasGradient | CanvasPattern {
return this._border;
}

protected set border(value: string | CanvasGradient | CanvasPattern) {
public set border(value: string | CanvasGradient | CanvasPattern) {
this._border = value;
}

public get borderSize(): number {
return this._borderSize;
}

protected set borderSize(value: number) {
public set borderSize(value: number) {
this._borderSize = value;
}

public get visible(): boolean {
return this._visible;
}

protected set visible(value: boolean) {
public set visible(value: boolean) {
this._visible = value;
}

Expand Down
18 changes: 6 additions & 12 deletions src/ts/engine/scene/elements/button.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class Button extends Label {
return this._backgroundUnhovered;
}

protected set backgroundUnhovered(
public set backgroundUnhovered(
value: string | CanvasGradient | CanvasPattern
) {
this._backgroundUnhovered = value;
Expand All @@ -29,17 +29,15 @@ class Button extends Label {
return this._backgroundHover;
}

protected set backgroundHover(
value: string | CanvasGradient | CanvasPattern
) {
public set backgroundHover(value: string | CanvasGradient | CanvasPattern) {
this._backgroundHover = value;
}

public get foregroundUnhovered(): string | CanvasGradient | CanvasPattern {
return this._foregroundUnhovered;
}

protected set foregroundUnhovered(
public set foregroundUnhovered(
value: string | CanvasGradient | CanvasPattern
) {
this._foregroundUnhovered = value;
Expand All @@ -49,27 +47,23 @@ class Button extends Label {
return this._foregroundHover;
}

protected set foregroundHover(
value: string | CanvasGradient | CanvasPattern
) {
public set foregroundHover(value: string | CanvasGradient | CanvasPattern) {
this._foregroundHover = value;
}

public get borderUnhovered(): string | CanvasGradient | CanvasPattern {
return this._borderUnhovered;
}

protected set borderUnhovered(
value: string | CanvasGradient | CanvasPattern
) {
public set borderUnhovered(value: string | CanvasGradient | CanvasPattern) {
this._borderUnhovered = value;
}

public get borderHover(): string | CanvasGradient | CanvasPattern {
return this._borderHover;
}

protected set borderHover(value: string | CanvasGradient | CanvasPattern) {
public set borderHover(value: string | CanvasGradient | CanvasPattern) {
this._borderHover = value;
}

Expand Down
30 changes: 15 additions & 15 deletions src/ts/engine/scene/elements/checkbox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class CheckBox extends Button {
return this._checked;
}

protected set checked(value: boolean) {
public set checked(value: boolean) {
this._checked = value;
}

Expand All @@ -46,7 +46,7 @@ class CheckBox extends Button {
return this._backgroundUnhoveredUnchecked;
}

protected set backgroundUnhoveredUnchecked(
public set backgroundUnhoveredUnchecked(
value: string | CanvasGradient | CanvasPattern
) {
this._backgroundUnhoveredUnchecked = value;
Expand All @@ -59,7 +59,7 @@ class CheckBox extends Button {
return this._backgroundUnhoveredChecked;
}

protected set backgroundUnhoveredChecked(
public set backgroundUnhoveredChecked(
value: string | CanvasGradient | CanvasPattern
) {
this._backgroundUnhoveredChecked = value;
Expand All @@ -72,7 +72,7 @@ class CheckBox extends Button {
return this._backgroundHoverUnchecked;
}

protected set backgroundHoverUnchecked(
public set backgroundHoverUnchecked(
value: string | CanvasGradient | CanvasPattern
) {
this._backgroundHoverUnchecked = value;
Expand All @@ -82,7 +82,7 @@ class CheckBox extends Button {
return this._backgroundHoverChecked;
}

protected set backgroundHoverChecked(
public set backgroundHoverChecked(
value: string | CanvasGradient | CanvasPattern
) {
this._backgroundHoverChecked = value;
Expand All @@ -95,7 +95,7 @@ class CheckBox extends Button {
return this._foregroundUnhoveredUnchecked;
}

protected set foregroundUnhoveredUnchecked(
public set foregroundUnhoveredUnchecked(
value: string | CanvasGradient | CanvasPattern
) {
this._foregroundUnhoveredUnchecked = value;
Expand All @@ -108,7 +108,7 @@ class CheckBox extends Button {
return this._foregroundUnhoveredChecked;
}

protected set foregroundUnhoveredChecked(
public set foregroundUnhoveredChecked(
value: string | CanvasGradient | CanvasPattern
) {
this._foregroundUnhoveredChecked = value;
Expand All @@ -121,7 +121,7 @@ class CheckBox extends Button {
return this._foregroundHoverUnchecked;
}

protected set foregroundHoverUnchecked(
public set foregroundHoverUnchecked(
value: string | CanvasGradient | CanvasPattern
) {
this._foregroundHoverUnchecked = value;
Expand All @@ -131,7 +131,7 @@ class CheckBox extends Button {
return this._foregroundHoverChecked;
}

protected set foregroundHoverChecked(
public set foregroundHoverChecked(
value: string | CanvasGradient | CanvasPattern
) {
this._foregroundHoverChecked = value;
Expand All @@ -144,7 +144,7 @@ class CheckBox extends Button {
return this._borderUnhoveredUnchecked;
}

protected set borderUnhoveredUnchecked(
public set borderUnhoveredUnchecked(
value: string | CanvasGradient | CanvasPattern
) {
this._borderUnhoveredUnchecked = value;
Expand All @@ -154,7 +154,7 @@ class CheckBox extends Button {
return this._borderUnhoveredChecked;
}

protected set borderUnhoveredChecked(
public set borderUnhoveredChecked(
value: string | CanvasGradient | CanvasPattern
) {
this._borderUnhoveredChecked = value;
Expand All @@ -164,7 +164,7 @@ class CheckBox extends Button {
return this._borderHoverUnchecked;
}

protected set borderHoverUnchecked(
public set borderHoverUnchecked(
value: string | CanvasGradient | CanvasPattern
) {
this._borderHoverUnchecked = value;
Expand All @@ -174,7 +174,7 @@ class CheckBox extends Button {
return this._borderHoverChecked;
}

protected set borderHoverChecked(
public set borderHoverChecked(
value: string | CanvasGradient | CanvasPattern
) {
this._borderHoverChecked = value;
Expand All @@ -184,15 +184,15 @@ class CheckBox extends Button {
return this._textUnchecked;
}

protected set textUnchecked(value: string) {
public set textUnchecked(value: string) {
this._textUnchecked = value;
}

public get textChecked(): string {
return this._textChecked;
}

protected set textChecked(value: string) {
public set textChecked(value: string) {
this._textChecked = value;
}

Expand Down
10 changes: 5 additions & 5 deletions src/ts/engine/scene/elements/label.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,39 @@ class Label extends Element {
return this._foreground;
}

protected set foreground(value: string | CanvasGradient | CanvasPattern) {
public set foreground(value: string | CanvasGradient | CanvasPattern) {
this._foreground = value;
}

public get font(): string {
return this._font;
}

protected set font(value: string) {
public set font(value: string) {
this._font = value;
}

public get textAlign(): CanvasTextAlign {
return this._textAlign;
}

protected set textAlign(value: CanvasTextAlign) {
public set textAlign(value: CanvasTextAlign) {
this._textAlign = value;
}

public get textBaseline(): CanvasTextBaseline {
return this._textBaseline;
}

protected set textBaseline(value: CanvasTextBaseline) {
public set textBaseline(value: CanvasTextBaseline) {
this._textBaseline = value;
}

public get text(): string {
return this._text;
}

protected set text(value: string) {
public set text(value: string) {
this._text = value;
}

Expand Down
2 changes: 1 addition & 1 deletion src/ts/engine/settings/simplesetting.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Setting from "./setting";
import Setting from "./setting.js";

class SimpleSetting<T> extends Setting<T> {
private _value: T;
Expand Down
51 changes: 51 additions & 0 deletions src/ts/engine/time/dateutils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
function addYears(date: Date, years: number): Date {
const newDate = new Date(date);
newDate.setFullYear(newDate.getFullYear() + years);
return newDate;
}

function addMonths(date: Date, months: number): Date {
const newDate = new Date(date);
newDate.setMonth(newDate.getMonth() + months);
return newDate;
}

function addDays(date: Date, days: number): Date {
const newDate = new Date(date);
newDate.setDate(newDate.getDate() + days);
return newDate;
}

function addHours(date: Date, hours: number): Date {
const newDate = new Date(date);
newDate.setHours(newDate.getHours() + hours);
return newDate;
}

function addMinutes(date: Date, minutes: number): Date {
const newDate = new Date(date);
newDate.setMinutes(newDate.getMinutes() + minutes);
return newDate;
}

function addSeconds(date: Date, seconds: number): Date {
const newDate = new Date(date);
newDate.setSeconds(newDate.getSeconds() + seconds);
return newDate;
}

function addMilliseconds(date: Date, milliseconds: number): Date {
const newDate = new Date(date);
newDate.setMilliseconds(newDate.getMilliseconds() + milliseconds);
return newDate;
}

export {
addYears,
addMonths,
addDays,
addHours,
addMinutes,
addSeconds,
addMilliseconds,
};
11 changes: 11 additions & 0 deletions src/ts/game/levels/level1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ import PortalType from "../entities/portaltype.js";
import Vector2D from "../../engine/math/vector2d.js";
import LevelManager from "../../engine/level/levelmanager.js";
import SceneManager from "../../engine/scene/scenemanager.js";
import CookieManager from "../../engine/cookies/cookiemanager.js";
import Cookie from "../../engine/cookies/cookie.js";
import { addYears } from "../../engine/time/dateutils.js";

class Level1 implements Level {
private _entityManager: EntityManager;
private _assetManager: AssetManager;
private _cookieManager: CookieManager;

private _buttonGround!: ButtonGround;
private _buttonStanding!: ButtonStanding;
Expand All @@ -37,6 +41,7 @@ class Level1 implements Level {
constructor() {
this._entityManager = Services.resolve<EntityManager>("EntityManager");
this._assetManager = Services.resolve<AssetManager>("AssetManager");
this._cookieManager = Services.resolve<CookieManager>("CookieManager");
}

public getEntities(): Entity[] {
Expand Down Expand Up @@ -176,6 +181,12 @@ class Level1 implements Level {
);

this._goal.onTouch.subscribe((engineEvent: EngineEvent<Goal>) => {
this._cookieManager.set(
"level1.solved",
new Cookie("true", addYears(new Date(), 1), "Strict", false)
);
this._cookieManager.save();

Services.resolve<SceneManager>("SceneManager").switch("level2Scene");
let levelManager: LevelManager =
Services.resolve<LevelManager>("LevelManager");
Expand Down
Loading

0 comments on commit c729d20

Please sign in to comment.